diff -r 000000000000 -r f0f2b8682603 memana/analyzetoolclient/consoleui/inc/atconsoleviews.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/memana/analyzetoolclient/consoleui/inc/atconsoleviews.h Thu Feb 11 15:51:35 2010 +0200 @@ -0,0 +1,316 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "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: +* +*/ + +#ifndef ATCONSOLE_VIEWS_H +#define ATCONSOLE_VIEWS_H + + +// INCLUDES +#include +#include + +// CONSTANTS +const TInt KViewOverhead = 4; + +// Numeric key ascii code values for ATConsoleUI's menu +const TInt KMyKeyDownAsciiCode = 56; // Ascii code for number '8' +const TInt KMyKeyLeftAsciiCode = 52; // Ascii code for number '4' +const TInt KMyKeyRightAsciiCode = 54; // Ascii code for number '6' +const TInt KMyKeyUpAsciiCode = 50; // Ascii code for number '2' + +// FORWARD DECLARATIONS +class CView; +class CConsoleMain; + +// CLASS DECLARATION + +/** + * @class CView atconsoleviews.h + * @brief The CView is used for making views needed in the console + * application. + */ +class CView + :public CBase + { + public: // Enumerations + enum TUpdateType + { + EViewPrint, + EViewRefresh, + }; + + public: // Constructors and destructor + // None + + /** + * NewL is first phase of two-phased constructor. + */ + static CView* NewL( CConsoleMain* aConsole, + CView* aParent, + const TDesC& aName, TInt64 aProcessId ); + + /** + * Destructor of CConsoleMain. + */ + virtual ~CView(); + + public: // New functions + + /** + * Return menu name + */ + virtual const TDesC& Name() const; + + /** + * Return item texts. + */ + virtual TInt ItemTexts( RArray& aArray ); + + /** + * Prints the view + */ + virtual void PrintViewL( TUpdateType aType ); + + /** + * Process keypresses on this menu + */ + virtual CView* SelectL( TKeyCode aSelection, TBool& aContinue ); + + /** + * Set parent menu + */ + virtual void SetParent ( CView* aMenu ); + + /** + * Print line + */ + virtual void Print( const TDesC& aPrint ); + + /** + * Add item to menu + */ + virtual void AddItemL ( CView* aItem ); + + /** + * Resets the item list + */ + virtual void ResetItems(); + + /** + * Update display from timer + */ + virtual void TimerUpdate(); + + /** + * Append text before original text. + */ + virtual void AppendBefore( TInt aLineNum, TDes& aLine ); + + /** + * Get menu type. + */ + inline TInt Type(){ return iType; }; + + /** + * Map KeyCode + */ + void MapKeyCode( TKeyCode &aSelection ); + + protected: // Functions from base classes + // None + + /** + * C++ default constructor. + */ + CView(); + + /** + * By default Symbian OS constructor is private. + */ + void ConstructL( CConsoleMain* aConsole, + CView* aParent, + const TDesC& aName, TInt64 aProcessId ); + + protected: // Data + + CConsoleBase* iConsole; // Pointer to console + CConsoleMain* iMain; // Pointer to main console + CView* iParent; // Pointer to parent menu + TName iViewName; // Menu name + TInt64 iProcessId; // Process id of the menu + + RPointerArray iItems; // Menu items + + TInt iPositionOnScreen; // Position on display + TInt iFirstItem; // First displayed item + TInt iLastItem; // Last displayed item + TInt iItemCount; // Last Item + TSize iSize; // Display size + TInt iScreenSize; // "Work area" size + TInt iDirection; // Scrolling direction + TInt iStart; // Scrolling position + TInt iPrevPos; // Previous position in scrolling + // Menu type (which updates must cause console update) + TInt iType; + TUpdateType iUpdateType; + // Determines if libraries are to be shown + TBool iShowLibraries; + // Determines if set logging mode query is to be shown + TBool iSetLoggingMode; + }; + +/** + * @class CProcessInfoView atconsoleviews.h + * @brief The CProcessInfoView is used for showing information about + * some process and starting/stopping subtests. + */ +class CProcessInfoView + :public CView + + { + + private: // Enumerations + enum TProcessInfoView + { + EStartSubtestTxtItem, + EStopSubtestTxtItem, + EViewLibrariesTxtItem, + EEndProcessTxtItem, + EKillProcessTxtItem, + ECancelLoggingTxtItem + }; + + enum TProcessEnds + { + ETryToEnd, + ETryToKill + }; + + public: // Constructors and destructor + + /** + * NewL is first phase of two-phased constructor. + */ + static CProcessInfoView* NewL( CConsoleMain* aConsole, + CView* aParent, + const TDesC& aName, TInt64 aProcessId ); + + /** + * Destructor + */ + ~CProcessInfoView(); + + public: // Functions from base classes + + /** + * Return item texts. + */ + virtual TInt ItemTexts( RArray& aArray ); + + /** + * Process keypresses on this menu + */ + virtual CView* SelectL( TKeyCode aSelectLion, + TBool& aContinue ); + + /** + * Prints the view + */ + virtual void PrintViewL( TUpdateType aType ); + + /** + * Prints libraries + */ + void ViewLibrariesL(); + + /** + * Prints logging modes + */ + void SetLoggingModeL(); + + /** + * Ends a process with a certain method. + * @param aCommand command id + */ + void EndProcessL( TInt aCommand ); + + protected: // New functions + // None + + protected: // Functions from base classes + // None + + /** + * By default Symbian OS constructor is private. + */ + void ConstructL( CConsoleMain* aConsole, + CView* aParent, + const TDesC& aName, TInt64 aProcessId ); + + private: // Data + // Current opened process's info + TATProcessInfo iCurrentProcessInfo; + + }; + +// CONSTANTS +_LIT( KExitTxt, "Exit" ); + +/** + * @class CMainView atconsoleviews.h + * @brief The CMainView is used for showing all the processes + * currently under testing. + */ +class CMainView + :public CView + + { + public: // Constructors and destructor + + /** + * NewL is first phase of two-phased constructor. + */ + static CMainView* NewL( CConsoleMain* aConsole, + CView* aParent, + const TDesC& aName ); + + public: // Functions from base classes + + /** + * Return item texts. + */ + virtual TInt ItemTexts( RArray& aArray ); + + /** + * Process keypresses on this menu + */ + virtual CView* SelectL( TKeyCode aSelectLion, TBool& aContinue ); + + protected: // Functions from base classes + + /** + * By default Symbian OS constructor is private. + */ + void ConstructL( CConsoleMain* aConsole, + CView* aParent, + const TDesC& aName ); + + }; + +#endif // ATCONSOLE_VIEWS_H + +// End of File