--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/kernel/eka/include/e32cons.h Mon Oct 19 15:55:17 2009 +0100
@@ -0,0 +1,243 @@
+// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "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:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// e32\include\e32cons.h
+//
+//
+
+#ifndef __E32CONS_H__
+#define __E32CONS_H__
+#include <e32base.h>
+#include <e32keys.h>
+//
+
+/**
+@publishedAll
+@released
+
+Defines a default console width that can be used when creating a console.
+
+@see CConsoleBase::Create()
+*/
+const TInt KDefaultConsWidth=78;
+
+/**
+@publishedAll
+@released
+
+Defines a default console height that can be used when creating a console.
+
+@see CConsoleBase::Create()
+*/
+const TInt KDefaultConsHeight=18;
+
+/**
+@publishedAll
+@released
+
+Implies a full size screen console when passed as the width and height
+values when creating a console.
+
+@see CConsoleBase::Create()
+*/
+const TInt KConsFullScreen=-1;
+
+
+/**
+@publishedAll
+@released
+
+Defines a set of text attributes used for consoles that support colour.
+
+@see CColorConsoleBase::SetTextAttribute().
+*/
+enum TTextAttribute
+ {
+ ETextAttributeNormal, /**< Defines the normal text attribute. */
+ ETextAttributeBold, /**< Defines the bold text attribute. */
+ ETextAttributeInverse, /**< Defines the inverse text attribute. */
+ ETextAttributeHighlight/**< Defines the highlight text attribute.*/
+ };
+
+
+/**
+@publishedAll
+@released
+
+A base class that defines a console interface.
+*/
+class CConsoleBase : public CBase
+ {
+public:
+ IMPORT_C virtual ~CConsoleBase();
+ IMPORT_C TKeyCode Getch();
+ IMPORT_C void Printf(TRefByValue<const TDesC> aFmt,...);
+ IMPORT_C void SetPos(TInt aX);
+ IMPORT_C void SetPos(TInt aX,TInt aY);
+ IMPORT_C TInt WhereX() const;
+ IMPORT_C TInt WhereY() const;
+// Pure virtual
+
+
+ /**
+ Creates a new console window.
+
+ @param aTitle The title text for the console.
+ This should not be longer than 256 characters.
+ @param aSize The size of the console window.
+
+ @return KErrNone, if successful; otherwise one of the other
+ system wide error codes.
+ */
+ virtual TInt Create(const TDesC &aTitle,TSize aSize) =0;
+
+
+ /**
+ Gets a keystroke from the console window, asynchronously.
+
+ @param aStatus The request status object.
+ */
+ virtual void Read(TRequestStatus &aStatus) =0;
+
+
+ /**
+ Cancels any outstanding request to get a keystroke from the console window.
+ */
+ virtual void ReadCancel() =0;
+
+
+ /**
+ Writes the content of the specified descriptor to the console window.
+
+ @param aDes Descriptor containing the characters to be written to
+ the console window.
+ */
+ virtual void Write(const TDesC &aDes) =0;
+
+
+ /**
+ Gets the current cursor position relative to the console window.
+
+ @return The current cursor position.
+ */
+ virtual TPoint CursorPos() const =0;
+
+
+ /**
+ Puts the cursor at the absolute position in the window.
+
+ @param aPoint The cursor position.
+ */
+ virtual void SetCursorPosAbs(const TPoint &aPoint) =0;
+
+
+ /**
+ Puts the cursor at the specified position relative
+ to the current cursor position.
+
+ @param aPoint The cursor position.
+ */
+ virtual void SetCursorPosRel(const TPoint &aPoint) =0;
+
+
+ /**
+ Sets the percentage height of the cursor.
+
+ @param aPercentage The percentage height. This is a value from 0 to 100.
+ If 0 is specified, then no cursor is displayed.
+ */
+ virtual void SetCursorHeight(TInt aPercentage) =0;
+
+
+ /**
+ Sets a new console title.
+
+ @param aTitle The title text for the console.
+ This should not be longer than 256 characters.
+ */
+ virtual void SetTitle(const TDesC &aTitle) =0;
+
+
+ /**
+ Clears the console.
+ */
+ virtual void ClearScreen() =0;
+
+
+ /**
+ Clears the console from the current cursor position to
+ the end of the line.
+ */
+ virtual void ClearToEndOfLine() =0;
+
+
+ /**
+ Gets the size of the console.
+ */
+ virtual TSize ScreenSize() const =0;
+
+
+ /**
+ Gets the current key code value.
+
+ @return The key code value.
+ */
+ virtual TKeyCode KeyCode() const =0;
+
+ /**
+ Gets the current key modifiers.
+
+ @return The key modifiers.
+ */
+ virtual TUint KeyModifiers() const =0;
+protected:
+ IMPORT_C CConsoleBase();
+protected:
+ IMPORT_C virtual TInt Extension_(TUint aExtensionId, TAny*& a0, TAny* a1);
+ };
+
+
+class CProxyConsole;
+
+/**
+@publishedAll
+@released
+
+Adds colour support to the basic console interface.
+*/
+class CColorConsoleBase : public CConsoleBase
+ {
+public:
+
+ /**
+ Sets the text attribute as defined by TTextAttribute.
+
+ @param anAttribute The text attribute to be set.
+ */
+ virtual void SetTextAttribute(TTextAttribute /*anAttribute*/);
+protected:
+ IMPORT_C virtual TInt Extension_(TUint aExtensionId, TAny*& a0, TAny* a1);
+
+ friend class CProxyConsole;
+ };
+//
+
+/**
+@publishedAll
+@released
+*/
+extern "C" {
+IMPORT_C TAny *NewConsole();
+}
+#endif
+