plugins/consoles/win32cons/src/win32cons.h
changeset 0 7f656887cf89
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/consoles/win32cons/src/win32cons.h	Wed Jun 23 15:52:26 2010 +0100
@@ -0,0 +1,86 @@
+// win32cons.h
+// 
+// Copyright (c) 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 __win32cons_h__
+#define __win32cons_h__
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <e32keys.h>
+
+class TWin32Console
+	{
+public:	
+	/**
+	Return non-zero on success.
+	*/
+	int AttachConsole();
+	void FreeConsole();
+	int Write(const char* aText, int aLen);
+	int Write(const WCHAR* aText, int aLen);
+	int WriteStdErr(const char* aText, int aLen);
+	int WriteStdErr(const WCHAR* aText, int aLen);
+	int Read(void* buf, int len, int& bytesRead);
+	int ReadKey(TKeyCode& aCode, TUint& aModifiers);
+	int GetCursorPos(int& aX, int& aY) const;
+	int SetCursorPos(int aX, int aY);
+	int SetCursorPosRel(int aX, int aY);
+	int SetCursorHeight(int aPercentage);
+	int SetTitle(const char* aTitle);
+	int ClearScreen();
+	int ClearToEndOfLine();
+	int GetScreenSize(int& aWidth, int& aHeight) const;
+
+	// Copied from consoleextensions.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
+		};
+	int SetAttributes(unsigned aAttributes, TWin32Console::TColor aForegroundColor, TWin32Console::TColor aBackgroundColor);
+
+private:
+	int AttachOrAllocConsole();
+private:
+	bool iHaveConsole;
+	void* iStdOutHandle;
+	void* iStdErrHandle;
+	void* iStdinHandle;
+	unsigned long iOldConsMode;
+	bool iConsModeSet;
+	KEY_EVENT_RECORD iCachedKey;
+	WORD iOrigAttributes;
+	};
+	
+void DebugMsg(const char* aMsg, ...);
+void DebugMsg(const unsigned short int* aMsg, ...);
+
+#endif //__win32cons_h__
+
+