--- a/stif/ConsoleUI/inc/ConsoleMenus.h Mon Jun 28 15:36:07 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1912 +0,0 @@
-/*
-* 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: This file contains the header file of the CMenu
-* derived classes.
-*
-*/
-
-
-#ifndef CONSOLE_MENUS_H
-#define CONSOLE_MENUS_H
-
-
-// INCLUDES
-#include <e32std.h>
-#include <e32base.h>
-#include <stifinternal/UIStoreIf.h>
-#include <stifinternal/UIStoreContainer.h>
-#include <stifinternal/UIEngineContainer.h>
-
-#include "CallBack.h"
-
-// CONSTANTS
-const TInt KMenuOverhead = 4;
-
-// Numeric key ascii code values for ConsoleUI'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'
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-class CMenu;
-class CConsoleMain;
-class CCaseOperationMenu;
-class CCaseExecutionView;
-
-// CLASS DECLARATION
-
-// DESCRIPTION
-// Main menu
-class CMenu
- :public CBase
- {
- public: // Enumerations
- enum TUpdateType
- {
- EMenuPrint,
- EMenuRefresh,
- };
-
- // None
-
- private: // Enumerations
- // None
-
- public: // Constructors and destructor
- // None
-
- /**
- * NewL is first phase of two-phased constructor.
- */
- static CMenu* NewL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName);
-
- /**
- * Destructor of CConsoleMain.
- */
- virtual ~CMenu();
-
- public: // New functions
-
- /**
- * Return menu name
- */
- virtual const TDesC& Name() const;
-
- /**
- * Return item texts.
- */
- virtual TInt ItemTexts( RRefArray<TDesC>& aArray );
-
- /**
- * Prints the menu
- */
- virtual void PrintMenuL( TUpdateType aType );
-
- /**
- * Process keypresses on this menu
- */
- virtual CMenu* SelectL( TKeyCode aSelectLion, TBool& aContinue );
-
- /**
- * Set parent menu
- */
- virtual void SetParent ( CMenu* aMenu );
-
- /**
- * Print line
- */
- virtual void Print( const TDesC& aPrint);
-
- /**
- * Multi line print
- */
- virtual void PrintMulti( const TDesC& aPrint );
-
- /**
- * Add item to menu
- */
- virtual void AddItemL ( CMenu* aItem );
-
- /**
- * Signals test completion
- */
- virtual void SignalL ( CStartedTestCase* /*aContainer*/ ){};
-
- /**
- * 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);
-
- /**
- * Recalculates visible menu elements.
- */
- void Recalculate( TInt aItemCount );
-
- public: // Functions from base classes
- // None
-
- protected: // New functions
- // None
-
- private: // New functions
- /**
- * Changes internal variables to move cursor in the menu.
- */
- void MovePosition(TInt aDelta);
-
- protected: // Functions from base classes
- // None
-
- /**
- * C++ default constructor.
- */
- CMenu();
-
- /**
- * By default Symbian OS constructor is private.
- */
- void ConstructL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName,
- const TDesC& aHeader = KNullDesC);
-
- private: // Functions from base classes
- // None
-
- public: // Data
- // None
-
- protected: // Data
-
- CConsoleBase* iConsole; // Pointer to console
- CConsoleMain* iMain; // Pointer to main console
- CMenu* iParent; // Pointer to parent menu
- TName iName; // Menu name
- TName iHeader; // Used to display STIF version information
-
- RPointerArray<CMenu> iItems; // Menu items
-
- TInt iPosOnScreen; // Position on display
- TInt iPrevPosOnScreen; // Previous position on display
- TInt iMenuItemsListStartIndex; // Y-index of the first line containing menu item
- TInt iMenuItemsListEndIndex; // Y-index of the last line containing menu item
- TInt iFirst; // First displayed item
- TInt iLast; // Last displayed item
- TBool iPreventClearScreen; // In case of moving cursor "in screen" cleaning screen is not needed
- 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)
- // Flags from CUIStoreIf::TUpdateFlags
- TInt iType;
-
- // Update type set from PrintMenuL
- TUpdateType iUpdateType;
-
- private: // Data
- TName iScrolledLine; //Original value of line, that was recently scrolled
-
- public: // Friend classes
- // None
-
- protected: // Friend classes
- // None
-
- private: // Friend classes
- // None
-
- };
-
-
-
-// CONSTANTS
-_LIT( KSelectMenuTxt, "Select module to load, if using ini or test case file use testframework.ini" );
-
-// DESCRIPTION
-// Filename query menu
-class CFileNameQueryView
- :public CMenu
-
- {
- public: // Enumerations
- // None
-
- private: // Enumerations
- // None
-
- public: // Constructors and destructor
- // None
-
- /**
- * NewL is first phase of two-phased constructor.
- */
- static CFileNameQueryView* NewL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName);
-
- ~CFileNameQueryView();
-
- public: // New functions
- // None
-
- public: // Functions from base classes
- /**
- * Return item texts.
- */
- virtual TInt ItemTexts( RRefArray<TDesC>& aArray );
-
- /**
- * Process keypresses on this menu
- */
- virtual CMenu* SelectL( TKeyCode aSelectLion, TBool& aContinue );
-
- protected: // New functions
-
- /**
- * By default Symbian OS constructor is private.
- */
- void ConstructL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName );
-
- protected: // Functions from base classes
- // None
-
- private:
-
- public: // Data
- // None
-
- protected: // Data
- // None
-
- private: // Data
- // List of module names
- RPointerArray<TDesC> iTestModuleNames;
-
- public: // Friend classes
- // None
-
- protected: // Friend classes
- // None
-
- private: // Friend classes
- // None
-
- };
-
-// CONSTANTS
-_LIT( KAddMenuTxt, "Add test module" );
-_LIT( KLoadMenuTxt, "Load all test modules" );
-
-// DESCRIPTION
-// Module list menu
-class CModuleListView
- :public CMenu
-
- {
- public: // Enumerations
- // None
-
- private: // Enumerations
- enum TModuleListMenu
- {
- EAddMenuTxtItem,
- ELoadMenuTxtItem,
- };
-
- public: // Constructors and destructor
-
- /**
- * NewL is first phase of two-phased constructor.
- */
- static CModuleListView* NewL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName );
-
- /**
- * Destructor
- */
- ~CModuleListView();
-
- public: // New functions
- // None
-
- public: // Functions from base classes
-
- /**
- * Return item texts.
- */
- virtual TInt ItemTexts( RRefArray<TDesC>& aArray );
-
- /**
- * Process keypresses on this menu
- */
- virtual CMenu* SelectL( TKeyCode aSelectLion,
- TBool& aContinue );
-
- /**
- * Prints the menu
- */
- virtual void PrintMenuL( TUpdateType aType );
-
- protected: // New functions
- // None
-
- protected: // Functions from base classes
- // None
-
- /**
- * By default Symbian OS constructor is private.
- */
- void ConstructL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName );
-
- private:
-
- public: //Data
- // None
-
- protected: // Data
- // None
-
- private: // Data
- CMenu* iModuleAdd;
-
- public: // Friend classes
- // None
-
- protected: // Friend classes
- // None
-
- private: // Friend classes
- // None
-
- };
-
-// DESCRIPTION
-// Test case starting menu
-class CCaseStartMenu
- :public CMenu
-
- {
- public: // Enumerations
- // None
-
- private: // Enumerations
- // None
-
- public: // Constructors and destructor
- /**
- * NewL is first phase of two-phased constructor.
- */
- static CCaseStartMenu* NewL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName,
- TBool aShowOutput = EFalse);
-
- /**
- * Destructor.
- */
- ~CCaseStartMenu();
-
- public: // New functions
- // None
-
- public: // Functions from base classes
-
- /**
- * Process keypresses on this menu
- */
- virtual CMenu* SelectL( TKeyCode aSelectLion,
- TBool& aContinue );
-
- /**
- * Return item texts.
- */
- virtual TInt ItemTexts( RRefArray<TDesC>& aArray );
-
- protected: // New functions
- // None
-
- protected: // Functions from base classes
-
- /**
- * By default Symbian OS constructor is private.
- */
- void ConstructL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName,
- TBool aShowOutput = EFalse);
-
- private:
- // None
-
- public: // Data
- // None
-
- protected: // Data
- // Test case array
- RRefArray<CTestInfo> iTestCases;
-
- private: // Data
- // Show output automaticly after test case is started
- TBool iShowOutput;
-
- // Map table. Translates indexes from filtered to all loaded from module
- RArray<TInt> iMapFilteredToAll;
-
- // Keeps filter name converted to lower case
- TFileName iFilterLowerCase;
-
- // Keeps title of test case converted to lower case
- TFileName iTitleLowerCase;
-
- public: // Friend classes
- // None
-
- protected: // Friend classes
- // None
-
- private: // Friend classes
- // None
-
- };
-
-// CONSTANTS
-_LIT( KChangeAll, "Change all");
-_LIT( KCancelSet, "Cancel set execution" );
-
-// Test set creation menu
-class CMultipleBaseMenu
- :public CCaseStartMenu
-
- {
- public: // Enumerations
- enum TMenuIndex
- {
- EChangeAll = 0,
- ECancelSet = 0,
- };
- enum TRunType
- {
- ERunSequential,
- ERunParallel,
- ERunRepeatSequential,
- };
-
- protected: // Enumerations
-
- public: // Constructors and destructor
- /**
- * NewL is first phase of two-phased constructor.
- */
- static CMultipleBaseMenu* NewL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName);
-
- /**
- * Destructor.
- */
- ~CMultipleBaseMenu();
-
- public: // New functions
- // None
-
- public: // Functions from base classes
-
- /**
- * Process keypresses on this menu
- */
- virtual CMenu* SelectL( TKeyCode aSelectLion, TBool& aContinue );
-
- /**
- * Return item texts.
- */
- virtual TInt ItemTexts( RRefArray<TDesC>& aArray );
-
- /**
- * Signals test completion
- */
- virtual void SignalL ( CStartedTestCase* aContainer );
-
- /**
- * Append text before line print.
- */
- virtual void AppendBefore( TInt aLineNum, TDes& aLine );
-
- protected: // New functions
-
- //inline void SetRunType( TRunType aRunType )
- // { iRunType = aRunType; };
-
- /**
- * Update iTestCases();
- */
- virtual TInt UpdateTestCases();
- TBool CheckIfAnyCaseIsSelected(TInt aCount);
-
- protected: // Functions from base classes
-
- /**
- * Constructor.
- */
- CMultipleBaseMenu();
-
- /**
- * By default Symbian OS constructor is private.
- */
- void ConstructL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName );
-
- private:
-
- public: // Data
-
- protected: // Data
- RArray<TBool> iSetState;
- TInt iCurrentRunPos;
- TBool iSetFinished;
- CStartedTestCase* iOngoingCaseContainer;
- TRunType iRunType;
-
- // Number of items in "static" menu (including derived classes)
- TInt iMenuTotCount;
-
- private: // Data
- // Number of items in "static" menu of this class
- // (excluding derived classes)
- TInt iMenuCount;
-
- public: // Friend classes
-
- protected: // Friend classes
-
- private: // Friend classes
-
- };
-
-// CONSTANTS
-_LIT( KRunSequentially, "Run selection sequentially");
-_LIT( KRunParallel, "Run selection parallel");
-_LIT( KRepeatRunSequentially, "Repeat run selection sequentially");
-
-_LIT( KSelectFromTo, "Select all between already selected");
-
-// Test set creation menu
-class CMultipleCaseMenu
- :public CMultipleBaseMenu
-
- {
- public: // Enumerations
- // None
-
- private: // Enumerations
- enum TMultipleMenuIndex
- {
- ERunSelection = 0,
- ERunSelectionParaller = 1,
- ERepeatRunSelection = 2,
- ESelectFromTo = 3,
- };
-
- public: // Constructors and destructor
- /**
- * NewL is first phase of two-phased constructor.
- */
- static CMultipleCaseMenu* NewL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName);
-
- /**
- * Destructor.
- */
- ~CMultipleCaseMenu();
-
- public: // New functions
- /**
- * Start running.
- */
- virtual void StartRunningL( TRunType aRunType,
- const TDesC& aModule = KNullDesC,
- const TDesC& aTestCaseFile = KNullDesC );
-
- public: // Functions from base classes
-
- /**
- * Process keypresses on this menu
- */
- virtual CMenu* SelectL( TKeyCode aSelectLion, TBool& aContinue );
-
- /**
- * Return item texts.
- */
- virtual TInt ItemTexts( RRefArray<TDesC>& aArray );
-
- protected: // New functions
- // None
-
- protected: // Functions from base classes
-
- /**
- * Constructor.
- */
- CMultipleCaseMenu();
-
- /**
- * By default Symbian OS constructor is private.
- */
- void ConstructL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName );
-
- private:
-
- public: // Data
- // None
-
- protected: // Data
- // None
-
- private: // Data
- // Number of items in "static" menu of this class
- // (excluding derived classes)
- TInt iMenuItemsCount;
-
- public: // Friend classes
- // None
-
- protected: // Friend classes
- // None
-
- private: // Friend classes
- // None
-
- };
-
-
-// CONSTANTS
-_LIT( KExitTxt, "Exit" );
-
-// DESCRIPTION
-// The main menu class
-class CMainMenu
- :public CMenu
-
- {
- public: // Enumerations
- // None
-
- private: // Enumerations
- // None
-
- public: // Constructors and destructor
-
- /**
- * NewL is first phase of two-phased constructor.
- */
- static CMainMenu* NewL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName,
- const TDesC& aHeader );
-
- /**
- * Destructor
- */
- ~CMainMenu();
-
- public: // New functions
- /**
- * Creates CaseOperationMenu and CaseExecutionView.
- * Used when after test case starting its output view needs to be shown.
- */
- CMenu* CreateOutputViewL(CMenu* aParent);
-
- public: // Functions from base classes
-
- /**
- * Return item texts.
- */
- virtual TInt ItemTexts( RRefArray<TDesC>& aArray );
-
- /**
- * Process keypresses on this menu
- */
- virtual CMenu* SelectL( TKeyCode aSelectLion, TBool& aContinue );
-
-
- protected: // New functions
- // None
-
- protected: // Functions from base classes
-
- /**
- * By default Symbian OS constructor is private.
- */
- void ConstructL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName,
- const TDesC& aHeader );
-
- private:
-
- public: //Data
-
- protected: // Data
-
- private: // Data
- // Menu representing output view, used to show it after test case is started
- CCaseExecutionView* iOutputView;
-
- // Operation menu used to show output view after test case is started
- CCaseOperationMenu* iOperationMenu;
-
- public: // Friend classes
-
- protected: // Friend classes
-
- private: // Friend classes
-
- };
-
-
-// DESCRIPTION
-// The case list (passed/failed/...) menu class
-class CCaseMenu
- :public CMenu
-
- {
- public: // Enumerations
- // None
-
- private: // Enumerations
- // None
-
- public: // Constructors and destructor
- // None
-
- /**
- * NewL is first phase of two-phased constructor.
- */
- static CCaseMenu* NewL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName,
- TInt aType );
-
- /**
- * Destructor
- */
- ~CCaseMenu();
-
- public: // New functions
- // None
-
- public: // Functions from base classes
-
- /**
- * Process keypresses on this menu
- */
- virtual CMenu* SelectL( TKeyCode aSelectLion, TBool& aContinue );
-
- /**
- * Return item texts.
- */
- virtual TInt ItemTexts( RRefArray<TDesC>& aArray );
-
- /**
- * Append text before original text.
- */
- virtual void AppendBefore(TInt aLineNum, TDes& aLine);
-
- protected: // New functions
-
- protected: // Functions from base classes
-
- /**
- * By default Symbian OS constructor is private.
- */
- void ConstructL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName,
- TInt aType );
-
- private: // Data
- // None
-
- public: // Data
- // None
-
- protected: // Data
- CCaseOperationMenu* iCaseOperationMenu; // Submenu
- RRefArray<CStartedTestCase> iTestCases;
-
- private: // Data
-
- public: // Friend classes
- // None
-
- protected: // Friend classes
- // None
-
- private: // Friend classes
- // None
-
- };
-
-// CONSTANTS
-_LIT( KOutputViewDes, "View Output");
-_LIT( KPauseCaseDes, "Pause");
-_LIT( KResumeCaseDes, "Resume");
-_LIT( KAbortCaseDes, "Abort case");
-_LIT( KRestartCaseDes, "Restart");
-
-// DESCRIPTION
-// Case specific operations, like pause, abort etc.
-class CCaseOperationMenu
- :public CMenu
-
- {
- public: // Enumerations
- // None
-
- private: // Enumerations
- enum TCaseOperationMenu
- {
- ERestartCase,
- EOutputView,
- EPauseResume,
- EAbortCase,
- };
-
- public: // Constructors and destructor
- // None
-
- /**
- * NewL is first phase of two-phased constructor.
- */
- static CCaseOperationMenu* NewL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName,
- const CStartedTestCase* aCaseContainer );
-
- /**
- * Destructor.
- */
- ~CCaseOperationMenu();
-
- public: // New functions
-
- public: // Functions from base classes
-
- /**
- * Process keypresses on this menu
- */
- virtual CMenu* SelectL( TKeyCode aSelectLion, TBool& aContinue );
-
- /**
- * Prints the menu
- */
- virtual void PrintMenuL( TUpdateType aType );
-
- /**
- * Return item texts.
- */
- virtual TInt ItemTexts( RRefArray<TDesC>& aArray );
-
- protected: // New functions
- // None
-
- protected: // Functions from base classes
-
- /**
- * By default Symbian OS constructor is private.
- */
- void ConstructL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName,
- const CStartedTestCase* aCaseContainer );
-
- private: // Functions from base classes
- // None
-
- public: //Data
- // None
-
- protected: // Data
- // None
-
- private: // Data
- // Case container
- const CStartedTestCase* iCaseContainer;
- // Execution view
- CCaseExecutionView* iView;
-
- public: // Friend classes
- // None
-
- protected: // Friend classes
- // None
-
- private: // Friend classes
- // None
-
- };
-
-
-class CCaseExecutionView
- :public CMenu
-
- {
- public: // Enumerations
- // None
-
- private: // Enumerations
- // None
-
- public: // Constructors and destructor
- // None
-
- /**
- * NewL is first phase of two-phased constructor.
- */
- static CCaseExecutionView* NewL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName,
- const CStartedTestCase* aCase);
-
- /**
- * Destructor.
- */
- ~CCaseExecutionView();
-
- public: // New functions
- // None
-
- public: // Functions from base classes
-
- /**
- * Prints the menu
- */
- virtual void PrintMenuL( TUpdateType aType );
-
- /**
- * Process keypresses on this menu
- */
- virtual CMenu* SelectL( TKeyCode aSelectLion, TBool& aContinue );
-
- /**
- * Get current testcase info.
- */
- inline const CStartedTestCase* TestCase(){ return iCase; };
-
- protected: // New functions
- // None
-
- protected: // Functions from base classes
-
- /**
- * By default Symbian OS constructor is private.
- */
- void ConstructL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName,
- const CStartedTestCase* aCase );
-
- private: // Functions from base classes
- // None
-
- public: // Data
- // None
-
- protected: // Data
- // None
-
- private: // Data
- const CStartedTestCase* iCase;
-
- /**
- * Indicates current selected line.
- */
- TInt iLine;
- /**
- * Indicates will line show.
- */
- TBool iShowLine;
- /**
- * Line to be show.
- */
- HBufC* iLineTextBuf;
-
- public: // Friend classes
- // None
-
- protected: // Friend classes
- // None
-
- private: // Friend classes
- // None
-
- };
-
-// CMenu notifier class shows dialogs in UI.
-class CMenuNotifier
- :public CBase
- {
- public: // Enumerations
-
- private: // Enumerations
- // None
-
- public: // Constructors and destructor
- // None
-
- /**
- * NewL is first phase of two-phased constructor.
- */
- static CMenuNotifier* NewL( const TDesC& aError,
- CConsoleMain* aMain );
-
- /**
- * Destructor of CConsoleMain.
- */
- virtual ~CMenuNotifier();
-
- public: // New functions
-
- public: // Functions from base classes
- // None
-
- protected: // New functions
- // None
-
- protected: // Functions from base classes
- // None
-
- /**
- * C++ default constructor.
- */
- CMenuNotifier( CConsoleMain* aMain );
-
- /**
- * By default Symbian OS constructor is private.
- */
- void ConstructL( const TDesC& aError );
-
- private: // Functions from base classes
- // None
-
- private: // New functions
- /**
- * C++ default constructor.
- */
- void Run1();
-
- public: // Data
- // None
-
- protected: // Data
-
- private: // Data
- CActiveCallback <CMenuNotifier> iCallBack1;
- CActiveCallback <CMenuNotifier> iCallBack2;
- RTimer iTimer;
- CConsoleBase* iConsole;
- CConsoleMain* iMain;
- TInt iCompletionCode;
-
- public: // Friend classes
- // None
-
- protected: // Friend classes
- // None
-
- private: // Friend classes
- // None
-
- };
-
-// CMenu dialog class shows dialogs in UI and waits for keypress.
-class CMenuDialog
- :public CBase
- {
- public: // Enumerations
-
- private: // Enumerations
- // None
-
- public: // Constructors and destructor
- // None
-
- /**
- * NewL is first phase of two-phased constructor.
- */
- static CMenuDialog* NewL( CConsoleMain* aMain,
- const TDesC& aMessage,
- const TDesC& aInstruction,
- TInt aTimeInSecs );
-
- /**
- * Destructor.
- */
- virtual ~CMenuDialog();
-
- public: // New functions
-
- public: // Functions from base classes
-
- TInt WaitForKeypress( TKeyCode& aKeyCode,
- TRequestStatus& aStatus );
-
- protected: // New functions
- // None
-
- protected: // Functions from base classes
- // None
-
- /**
- * C++ default constructor.
- */
- CMenuDialog( CConsoleMain* aMain );
-
- /**
- * By default Symbian OS constructor is private.
- */
- void ConstructL( const TDesC& aMessage,
- const TDesC& aInstruction,
- TInt aTimeInSecs );
-
- private: // Functions from base classes
- // None
-
- private: // New functions
- /**
- * Handle completions.
- */
- void Run1();
-
- public: // Data
- // None
-
- protected: // Data
-
- private: // Data
- // Backpointer
- CConsoleMain* iMain;
- CConsoleBase* iConsole;
-
- // Timer support
- CActiveCallback <CMenuDialog> iCallBack1;
- RTimer iTimer;
-
- // Reading
- CActiveCallback <CMenuDialog> iCallBack2;
-
- // For reading keys
- TRequestStatus* iStatus;
- TKeyCode* iKeyCode;
-
- public: // Friend classes
- // None
-
- protected: // Friend classes
- // None
-
- private: // Friend classes
- // None
-
- };
-
-// CONSTANTS
-_LIT( KTestSetMenu, "CTestSetMenu" );
-
-_LIT( KDefaultSetName, "ConsoleUI.set" );
-
-_LIT( KSetCreate, "Create test set" );
-_LIT( KSetLoad, "Load test set" );
-
-_LIT( KSetShow, "Show started test sets" );
-_LIT( KSetUnload, "Unload test set" );
-_LIT( KSetRemove, "Remove test set" );
-_LIT( KSetCaseAdd, "Add test case to test set" );
-_LIT( KSetCaseRemove, "Remove test case from test set" );
-_LIT( KSetSave, "Save test set" );
-
-_LIT( KSetStartSeq, "Start sequential test set execution" );
-_LIT( KSetStartPar, "Start parallel test set execution" );
-//_LIT( KSetStartRep, "Start repeating test set execution" );
-
-_LIT( KSetStartSeqNotRun, "Start sequentially not started tests" );
-
-// DESCRIPTION
-// Test set menu
-class CTestSetMenu
- :public CMenu
-
- {
- public: // Enumerations
-
- private: // Enumerations
-
- enum TCreateMenu
- {
- ESetCreate,
- ESetLoad,
- };
-
- enum TEditMenu
- {
- ESetShow,
-
- ESetStartSeq,
- ESetStartPar,
- //ESetStartRep,
-
- ESetUnload,
- ESetRemove,
- ESetSave,
- ESetCaseAdd,
- ESetCaseRemove,
-
- ESetStartSeqNotRun,
-
-
- ESetLAST //This entry must remain LAST in this menu
- };
-
- public: // Constructors and destructor
-
- /**
- * NewL is first phase of two-phased constructor.
- */
- static CTestSetMenu* NewL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName );
-
- /**
- * Destructor
- */
- ~CTestSetMenu();
-
- public: // New functions
- /**
- * Set test set file name.
- */
- void SetTestSetFileName( const TFileName& aTestSetFileName );
-
- /**
- * Set test set state created.
- */
- void SetCreated(){ iTestSetCreated = ETrue; };
-
- public: // Functions from base classes
-
- /**
- * Return item texts.
- */
- virtual TInt ItemTexts( RRefArray<TDesC>& aArray );
-
- /**
- * Process keypresses on this menu
- */
- virtual CMenu* SelectL( TKeyCode aSelectLion,
- TBool& aContinue );
-
- /**
- * Prints the menu
- */
- virtual void PrintMenuL( TUpdateType aType );
-
- protected: // New functions
-
- protected: // Functions from base classes
- /**
- * Constructor
- */
- CTestSetMenu();
-
- /**
- * By default Symbian OS constructor is private.
- */
- void ConstructL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName );
-
- private:
-
- public: //Data
- // None
-
- protected: // Data
- // None
-
- private: // Data
- TBool iTestSetCreated;
- TFileName iTestSetName;
-
- CMenu* iSubMenu;
-
- public: // Friend classes
- // None
-
- protected: // Friend classes
- // None
-
- private: // Friend classes
- // None
-
- };
-
- // CONSTANTS
- _LIT( KTestSetChoice, "CTestSetChoiceMenu" );
- _LIT( KSetSelect, "Select Test Set" );
-
-
- // DESCRIPTION
- // Test set choice menu
- class CTestSetChoiceMenu
- :public CMenu
-
- {
- public: // Enumerations
-
- private: // Enumerations
-
-
-
- public: // Constructors and destructor
-
- /**
- * NewL is first phase of two-phased constructor.
- */
- static CTestSetChoiceMenu* NewL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName );
-
- /**
- * Destructor
- */
- ~CTestSetChoiceMenu();
-
- public: // New functions
-
- public: // Functions from base classes
-
- /**
- * Return item texts.
- */
- virtual TInt ItemTexts( RRefArray<TDesC>& aArray );
-
- /**
- * Process keypresses on this menu
- */
- virtual CMenu* SelectL( TKeyCode aSelectLion,
- TBool& aContinue );
-
- /**
- * Prints the menu
- */
- virtual void PrintMenuL( TUpdateType aType );
-
- protected: // New functions
-
- protected: // Functions from base classes
- /**
- * Constructor
- */
- CTestSetChoiceMenu();
-
- /**
- * By default Symbian OS constructor is private.
- */
- void ConstructL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName );
-
- private:
-
- public: //Data
- // None
-
- protected: // Data
- // None
-
- private: // Data
- TFileName iTestSetName;
- RPointerArray<HBufC> iFileList;
-
- public: // Friend classes
- // None
-
- protected: // Friend classes
- // None
-
- private: // Friend classes
- // None
-
- };
-
-// CONSTANTS
-_LIT( KAddSelected, "Add selected cases");
-
-// Test set case add menu
-class CTestSetAddCaseMenu
- :public CMultipleBaseMenu
-
- {
- public: // Enumerations
- // None
-
- private: // Enumerations
- enum TTestSetAddCaseMenuIndex
- {
- EAddSelected = 0,
- };
-
- public: // Constructors and destructor
- /**
- * NewL is first phase of two-phased constructor.
- */
- static CTestSetAddCaseMenu* NewL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName,
- TDesC& aTestSetName );
-
- /**
- * Destructor.
- */
- ~CTestSetAddCaseMenu();
-
- public: // New functions
- // None
-
- public: // Functions from base classes
-
- /**
- * Process keypresses on this menu
- */
- virtual CMenu* SelectL( TKeyCode aSelectLion, TBool& aContinue );
-
- /**
- * Return item texts.
- */
- virtual TInt ItemTexts( RRefArray<TDesC>& aArray );
-
- protected: // New functions
- // None
-
- protected: // Functions from base classes
-
- /**
- * Constructor.
- */
- CTestSetAddCaseMenu( TDesC& aTestSetName );
-
- /**
- * By default Symbian OS constructor is private.
- */
- void ConstructL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName );
-
- private:
-
- public: // Data
- // None
-
- protected: // Data
- // None
-
- private: // Data
- // Number of items in "static" menu of this class
- // (excluding derived classes)
- TInt iMenuItemsCount;
-
- TPtrC iTestSetName;
-
- public: // Friend classes
- // None
-
- protected: // Friend classes
- // None
-
- private: // Friend classes
- // None
-
- };
-
-// CONSTANTS
-_LIT( KRemoveSelected, "Remove selected cases");
-
-// Test set case add menu
-class CTestSetRemoveCaseMenu
- :public CMultipleBaseMenu
-
- {
- public: // Enumerations
- // None
-
- private: // Enumerations
- enum TTestSetRemoveCaseMenuIndex
- {
- ERemoveSelected = 0,
- };
-
- public: // Constructors and destructor
- /**
- * NewL is first phase of two-phased constructor.
- */
- static CTestSetRemoveCaseMenu* NewL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName,
- TDesC& aTestSetName );
-
- /**
- * Destructor.
- */
- ~CTestSetRemoveCaseMenu();
-
- public: // New functions
- // None
-
- public: // Functions from base classes
-
- /**
- * Process keypresses on this menu
- */
- virtual CMenu* SelectL( TKeyCode aSelectLion, TBool& aContinue );
-
- /**
- * Return item texts.
- */
- virtual TInt ItemTexts( RRefArray<TDesC>& aArray );
-
- /**
- * Update iTestCases;
- */
- virtual TInt UpdateTestCases();
-
- protected: // New functions
- // None
-
- protected: // Functions from base classes
-
- /**
- * Constructor.
- */
- CTestSetRemoveCaseMenu( TDesC& aTestSetName );
-
- /**
- * By default Symbian OS constructor is private.
- */
- void ConstructL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName );
-
- private:
-
- public: // Data
- // None
-
- protected: // Data
- // None
-
- private: // Data
- // Number of items in "static" menu of this class
- // (excluding derived classes)
- TInt iMenuItemsCount;
-
- TPtrC iTestSetName;
-
- public: // Friend classes
- // None
-
- protected: // Friend classes
- // None
-
- private: // Friend classes
- // None
-
- };
-
-// DESCRIPTION
-// The case list (passed/failed/...) menu class
-class CTestSetCaseMenu
- :public CCaseMenu
-
- {
- public: // Enumerations
- // None
-
- private: // Enumerations
- // None
-
- public: // Constructors and destructor
- // None
-
- /**
- * NewL is first phase of two-phased constructor.
- */
- static CTestSetCaseMenu* NewL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName,
- CStartedTestSet& aTestSet );
-
- /**
- * Destructor
- */
- ~CTestSetCaseMenu();
-
- public: // New functions
- // None
-
- public: // Functions from base classes
-
- /**
- * Return item texts.
- */
- virtual TInt ItemTexts( RRefArray<TDesC>& aArray );
-
- /**
- * Prints the menu
- */
- void AppendBefore( TInt aLineNum, TDes& aLine );
-
- /**
- * Process keypresses on this menu
- */
- virtual CMenu* SelectL( TKeyCode aSelectLion, TBool& aContinue );
-
- protected: // New functions
-
- protected: // Functions from base classes
-
-
-
- private: // Data
-
- CTestSetCaseMenu( CStartedTestSet& aTestSet );
-
- /**
- * By default Symbian OS constructor is private.
- */
- void ConstructL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName );
- public: // Data
- // None
-
- protected: // Data
-
- private: // Data
- CStartedTestSet& iTestSet;
-
- public: // Friend classes
- // None
-
- protected: // Friend classes
- // None
-
- private: // Friend classes
- // None
-
- };
-
-// CONSTANTS
-_LIT( KCancelTestSet, "Cancel test set");
-
-// DESCRIPTION
-// Started test sets (passed/failed/...) menu class
-class CStartedTestSetMenu
- :public CMenu
-
- {
- public: // Enumerations
- // None
-
- private: // Enumerations
- // None
-
- public: // Constructors and destructor
- // None
-
- /**
- * NewL is first phase of two-phased constructor.
- */
- static CStartedTestSetMenu* NewL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName );
-
- /**
- * Destructor
- */
- ~CStartedTestSetMenu();
-
- public: // New functions
- // None
-
- public: // Functions from base classes
-
- /**
- * Process keypresses on this menu
- */
- virtual CMenu* SelectL( TKeyCode aSelectLion, TBool& aContinue );
-
- /**
- * Return item texts.
- */
- virtual TInt ItemTexts( RRefArray<TDesC>& aArray );
-
-
- /**
- * Prints the menu
- */
- void AppendBefore( TInt aLineNum, TDes& aLine );
-
-
- protected: // New functions
-
- protected: // Functions from base classes
-
-
-
- private: // Data
-
- CStartedTestSetMenu();
-
- /**
- * By default Symbian OS constructor is private.
- */
- void ConstructL( CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName );
- public: // Data
- // None
-
- protected: // Data
- // None
-
- private: // Data
- CTestSetCaseMenu* iCaseMenu; // Submenu
- RRefArray<CStartedTestSet> iTestSets;
-
- public: // Friend classes
- // None
-
- protected: // Friend classes
- // None
-
- private: // Friend classes
- // None
-
- };
-
-// DESCRIPTION
-// Menu which shows available filters for test case titles
-class CFilterMenu
- :public CMenu
-
- {
- public: // Enumerations
- // None
-
- private: // Enumerations
- // None
-
- public: // Constructors and destructor
- /**
- * NewL is first phase of two-phased constructor.
- */
- static CFilterMenu* NewL(CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName);
-
- /**
- * Destructor.
- */
- ~CFilterMenu();
-
- public: // New functions
- /**
- * Set test case menu, so it can be shown when user selects filter
- */
- void SetTestCaseMenu(CMenu* aTestCaseMenu);
-
- public: // Functions from base classes
-
- /**
- * Process keypresses on this menu
- */
- virtual CMenu* SelectL(TKeyCode aSelectLion,
- TBool& aContinue);
-
- /**
- * Return item texts.
- */
- virtual TInt ItemTexts(RRefArray<TDesC>& aArray);
-
- protected: // New functions
- // None
-
- protected: // Functions from base classes
- /**
- * C++ default constructor.
- */
- CFilterMenu();
-
- /**
- * By default Symbian OS constructor is private.
- */
- void ConstructL(CConsoleMain* aConsole,
- CMenu* aParent,
- const TDesC& aName);
-
- private: // Functions
- // None
-
- public: // Data
- // None
-
- protected: // Data
- // None
-
- private: // Data
- /**
- * Test case menu. It will be shown when user selects filter.
- */
- CMenu *iTestCaseMenu;
-
- public: // Friend classes
- // None
-
- protected: // Friend classes
- // None
-
- private: // Friend classes
- // None
-
- };
-
-#endif // CONSOLE_MENUS_H
-
-// End of File