diff -r 000000000000 -r 7f656887cf89 plugins/consoles/common/consoleextensions.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/plugins/consoles/common/consoleextensions.h Wed Jun 23 15:52:26 2010 +0100 @@ -0,0 +1,125 @@ +// consoleextensions.h +// +// Copyright (c) 2008 - 2010 Accenture. All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Accenture - Initial contribution +// + +#ifndef __CONSOLEEXTENSIONS_H__ +#define __CONSOLEEXTENSIONS_H__ + +#include + +class ConsoleMode + { +public: + enum TMode + { + EBinary, + EText, + }; + static const TUint KSetConsoleModeExtension = 0x10285e15; +public: + /** + A console implementation that does not support different mode or a CBase derived class + that does not derive from CConsoleBase will return KErrExtensionNotSupported if passed + into this function. + */ + static inline TInt Set(CBase* aConsole, TMode aMode); + }; + +class UnderlyingConsole + { +public: + static const TUint KSetUnderlyingConsoleExtension = 0x10287199; +public: + /** + Set the underlying console of another console. The underlying console may be used during construction + of the actual console to display information or error messages, such as the IP address to connect to + in the case of a TCP console implementation. + + Note, for consoles loaded within the IO server, the underlying console is write only. Attempting to + read from it will cause a panic. + */ + static inline TInt Set(CBase* aConsole, CConsoleBase* aUnderlyingConsole); + }; + +class ConsoleAttributes + { +public: + // Note these are also defined in win32cons.h + enum TAttribute + { + ENone = 0x0001, + EBold = 0x0002, + EUnderscore = 0x0004, + EBlink = 0x0008, + EInverse = 0x0010, + EConceal = 0x0020 + }; + enum TColor + { + EBlack, + ERed, + EGreen, + EYellow, + EBlue, + EMagenta, + ECyan, + EWhite, + EReset, + EUnchanged + }; + class TAttributes + { + public: + inline TAttributes(TUint aAttributes, TColor aForegroundColor = EUnchanged, TColor aBackgroundColor = EUnchanged); + public: + TUint iAttributes; + TColor iForegroundColor; + TColor iBackgroundColor; + }; + static const TUint KSetConsoleAttributesExtension = 0x10286B6E; +public: + /** + A console implementation that does not support different mode or a CBase derived class + that does not derive from CConsoleBase will return KErrExtensionNotSupported if passed + into this function. + */ + static inline TInt Set(CBase* aConsole, const TAttributes& aAttributes); + }; + +class LazyConsole + { +public: + static const TUint KLazyConsoleExtension = 0x1028719e; +public: + /** + Returns true if the console is lazy. + */ + static inline TBool IsLazy(CBase* aConsole); + /** + Returns true if he console is lazy, AND it's been constructed. + */ + static inline TBool IsConstructed(CBase* aConsole); + }; + +class ConsoleStdErr + { +public: + static const TInt KWriteStdErrConsoleExtension = 0x10286aaa; +public: + /** + Write to StdErr of the underlying console if the console supports this. + */ + static inline TInt Write(CBase* aConsole, const TDesC& aDes); + }; + +#include + +#endif //__CONSOLEEXTENSIONS_H__