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