plugins/consoles/common/consoleextensions.h
changeset 0 7f656887cf89
child 30 35cb3fe43f60
--- /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 <e32base.h>
+
+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 <fshell/consoleextensions.inl>
+	
+#endif //__CONSOLEEXTENSIONS_H__