stif/TouchConsoleUI/inc/ConsoleMenus.h
changeset 0 a03f92240627
child 18 3406c99bc375
equal deleted inserted replaced
-1:000000000000 0:a03f92240627
       
     1 /*
       
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 * 
       
    14 * Description: This file contains the header file of the CMenu 
       
    15 * derived classes.
       
    16 *
       
    17 */
       
    18 
       
    19 
       
    20 #ifndef CONSOLE_MENUS_H
       
    21 #define CONSOLE_MENUS_H
       
    22 
       
    23 
       
    24 //  INCLUDES
       
    25 #include <e32std.h>
       
    26 #include <e32base.h>
       
    27 #include <stifinternal/UIStoreIf.h>
       
    28 #include <stifinternal/UIStoreContainer.h>
       
    29 #include <stifinternal/UIEngineContainer.h>
       
    30 
       
    31 #include "CallBack.h"
       
    32 
       
    33 // CONSTANTS
       
    34 const TInt KMenuOverhead = 4;
       
    35 
       
    36 // Numeric key ascii code values for ConsoleUI's menu
       
    37 const TInt KMyKeyDownAsciiCode = 56; // Ascii code for number '8'
       
    38 const TInt KMyKeyLeftAsciiCode = 52; // Ascii code for number '4'
       
    39 const TInt KMyKeyRightAsciiCode = 54; // Ascii code for number '6'
       
    40 const TInt KMyKeyUpAsciiCode = 50;  // Ascii code for number '2'
       
    41 
       
    42 // MACROS
       
    43 
       
    44 // DATA TYPES
       
    45 
       
    46 // FUNCTION PROTOTYPES
       
    47 
       
    48 // FORWARD DECLARATIONS
       
    49 class CMenu;
       
    50 class CConsoleMain;
       
    51 class CCaseOperationMenu;
       
    52 class CCaseExecutionView;
       
    53 
       
    54 // CLASS DECLARATION
       
    55 
       
    56 // DESCRIPTION
       
    57 // Main menu
       
    58 class CMenu
       
    59         :public CBase
       
    60     {
       
    61     public:  // Enumerations
       
    62         enum TUpdateType
       
    63             {
       
    64             EMenuPrint,
       
    65             EMenuRefresh,
       
    66             };
       
    67 
       
    68         // None
       
    69 
       
    70     private: // Enumerations
       
    71         // None
       
    72 
       
    73     public:  // Constructors and destructor
       
    74         // None
       
    75 
       
    76         /**
       
    77         * NewL is first phase of two-phased constructor.
       
    78         */
       
    79         static CMenu* NewL( CConsoleMain* aConsole,
       
    80                             CMenu* aParent,
       
    81                             const TDesC& aName);
       
    82 
       
    83        /**
       
    84         * Destructor of CConsoleMain.
       
    85         */
       
    86         virtual ~CMenu();
       
    87 
       
    88     public: // New functions
       
    89     
       
    90         /** 
       
    91         * Return menu name
       
    92         */
       
    93         virtual const TDesC& Name() const;
       
    94 
       
    95         /** 
       
    96         * Return item texts.
       
    97         */
       
    98         virtual TInt ItemTexts( RRefArray<TDesC>& aArray );
       
    99 
       
   100         /** 
       
   101         * Prints the menu
       
   102         */
       
   103         virtual void PrintMenuL( TUpdateType  aType );
       
   104 
       
   105         /** 
       
   106         * Process keypresses on this menu
       
   107         */
       
   108         virtual CMenu* SelectL( TKeyCode aSelectLion, TBool& aContinue );
       
   109 
       
   110         /** 
       
   111         * Set parent menu
       
   112         */
       
   113         virtual void SetParent ( CMenu* aMenu );
       
   114 
       
   115         /** 
       
   116         * Print line
       
   117         */
       
   118         virtual void Print( const TDesC& aPrint);
       
   119 
       
   120         /** 
       
   121         * Multi line print
       
   122         */
       
   123         virtual void PrintMulti( const TDesC& aPrint );
       
   124 
       
   125         /** 
       
   126         * Add item to menu
       
   127         */
       
   128         virtual void AddItemL ( CMenu* aItem );
       
   129         
       
   130         /** 
       
   131         * Signals test completion
       
   132         */
       
   133         virtual void SignalL ( CStartedTestCase* /*aContainer*/ ){};
       
   134 		
       
   135         /** 
       
   136         * Update display from timer
       
   137         */
       
   138 		virtual void TimerUpdate();
       
   139 		
       
   140 		/**
       
   141 		* Append text before original text.
       
   142 		*/
       
   143 		virtual void AppendBefore(  TInt aLineNum, TDes& aLine );
       
   144 		
       
   145 		/**
       
   146 		* Get menu type.
       
   147 		*/
       
   148 		inline TInt Type(){ return iType; };
       
   149 		
       
   150 		/**
       
   151 		* Map KeyCode 
       
   152 		*/
       
   153 		void MapKeyCode(TKeyCode &aSelection);
       
   154 
       
   155 		/**
       
   156 		 * Recalculates visible menu elements.
       
   157 		 */
       
   158 		void Recalculate( TInt aItemCount );
       
   159 		
       
   160     public: // Functions from base classes
       
   161         // None
       
   162 
       
   163     protected:  // New functions
       
   164         // None
       
   165 
       
   166     protected:  // Functions from base classes
       
   167         // None    
       
   168 
       
   169         /** 
       
   170         * C++ default constructor.
       
   171         */
       
   172         CMenu();
       
   173 
       
   174         /**
       
   175         * By default Symbian OS constructor is private.
       
   176         */
       
   177         void ConstructL( CConsoleMain* aConsole,
       
   178                          CMenu* aParent,
       
   179                          const TDesC& aName,
       
   180                          const TDesC& aHeader = KNullDesC);
       
   181     
       
   182     private:   // Functions from base classes
       
   183         // None
       
   184 
       
   185     public:   // Data
       
   186         // None
       
   187 
       
   188     protected:  // Data    
       
   189     
       
   190         //CConsoleBase*           iConsole;      // Pointer to console
       
   191         RConsole*           iConsole;      // Pointer to console
       
   192         CConsoleMain*           iMain;         // Pointer to main console
       
   193         CMenu*                  iParent;       // Pointer to parent menu
       
   194         TName                   iName;         // Menu name
       
   195     	TName					iHeader;	   // Used to display STIF version information
       
   196 
       
   197         RPointerArray<CMenu>    iItems;        // Menu items
       
   198 
       
   199         TInt                    iPosOnScreen;  // Position on display
       
   200         TInt                    iFirst;        // First displayed item
       
   201         TInt                    iLast;         // Last displayed item
       
   202         TInt                    iItemCount;    // Last Item
       
   203         TSize                   iSize;         // Display size
       
   204         TInt                    iScreenSize;   // "Work area" size
       
   205 		TInt                    iDirection;    // Scrolling direction
       
   206 		TInt                    iStart;        // Scrolling position
       
   207 		TInt                    iPrevPos;      // Previous position in scrolling
       
   208 
       
   209         // Menu type (which updates must cause console update) 
       
   210         // Flags from CUIStoreIf::TUpdateFlags 
       
   211         TInt                    iType;
       
   212         
       
   213         // Update type set from PrintMenuL
       
   214 		TUpdateType             iUpdateType;
       
   215 		
       
   216     private:    // Data
       
   217         // None
       
   218 
       
   219     public:     // Friend classes
       
   220         // None
       
   221 
       
   222     protected:  // Friend classes
       
   223         // None
       
   224 
       
   225     private:    // Friend classes
       
   226         // None
       
   227 
       
   228     };
       
   229 
       
   230 
       
   231 
       
   232 // CONSTANTS
       
   233 _LIT( KSelectMenuTxt, "Select module to load, if using ini or test case file use testframework.ini" );
       
   234 
       
   235 // DESCRIPTION
       
   236 // Filename query menu
       
   237 class CFileNameQueryView 
       
   238     :public CMenu
       
   239   
       
   240     {
       
   241     public:  // Enumerations
       
   242         // None
       
   243 
       
   244     private: // Enumerations
       
   245         // None
       
   246 
       
   247     public:  // Constructors and destructor
       
   248         // None
       
   249 
       
   250         /**
       
   251         * NewL is first phase of two-phased constructor.
       
   252         */
       
   253         static CFileNameQueryView* NewL( CConsoleMain* aConsole, 
       
   254                                          CMenu* aParent, 
       
   255                                          const TDesC& aName);
       
   256 
       
   257         ~CFileNameQueryView();
       
   258         
       
   259     public: // New functions
       
   260        // None
       
   261 
       
   262     public: // Functions from base classes
       
   263         /** 
       
   264         * Return item texts.
       
   265         */
       
   266         virtual TInt ItemTexts( RRefArray<TDesC>& aArray );
       
   267         
       
   268         /** 
       
   269         * Process keypresses on this menu
       
   270         */
       
   271         virtual CMenu* SelectL( TKeyCode aSelectLion, TBool& aContinue );
       
   272 
       
   273     protected:  // New functions
       
   274 
       
   275         /**
       
   276         * By default Symbian OS constructor is private.
       
   277         */
       
   278         void ConstructL( CConsoleMain* aConsole, 
       
   279                          CMenu* aParent, 
       
   280                          const TDesC& aName );
       
   281 
       
   282     protected:  // Functions from base classes
       
   283         // None
       
   284 
       
   285     private:
       
   286 
       
   287     public:   // Data
       
   288         // None
       
   289 
       
   290     protected:  // Data
       
   291         // None
       
   292 
       
   293     private:    // Data
       
   294         // List of module names
       
   295         RPointerArray<TDesC>    iTestModuleNames;
       
   296         
       
   297     public:     // Friend classes
       
   298         // None
       
   299 
       
   300     protected:  // Friend classes
       
   301         // None
       
   302 
       
   303     private:    // Friend classes
       
   304         // None
       
   305 
       
   306     };
       
   307 
       
   308 // CONSTANTS
       
   309 _LIT( KAddMenuTxt,  "Add test module" );
       
   310 _LIT( KLoadMenuTxt,  "Load all test modules" );
       
   311 
       
   312 // DESCRIPTION
       
   313 // Module list menu
       
   314 class CModuleListView 
       
   315     :public CMenu
       
   316   
       
   317     {
       
   318     public:  // Enumerations
       
   319         // None
       
   320 
       
   321     private: // Enumerations
       
   322         enum TModuleListMenu
       
   323             {
       
   324             EAddMenuTxtItem,
       
   325             ELoadMenuTxtItem,
       
   326             };
       
   327             
       
   328     public:  // Constructors and destructor
       
   329 
       
   330         /**
       
   331         * NewL is first phase of two-phased constructor.
       
   332         */
       
   333         static CModuleListView* NewL( CConsoleMain* aConsole,
       
   334                                       CMenu* aParent,
       
   335                                       const TDesC& aName );
       
   336 
       
   337        /**
       
   338         * Destructor
       
   339         */
       
   340         ~CModuleListView();
       
   341 
       
   342     public: // New functions
       
   343         // None
       
   344 
       
   345     public: // Functions from base classes
       
   346 
       
   347         /** 
       
   348         * Return item texts.
       
   349         */
       
   350         virtual TInt ItemTexts( RRefArray<TDesC>& aArray );
       
   351         
       
   352         /** 
       
   353         * Process keypresses on this menu
       
   354         */
       
   355         virtual CMenu* SelectL( TKeyCode aSelectLion, 
       
   356                                 TBool& aContinue );
       
   357  
       
   358         /** 
       
   359         * Prints the menu
       
   360         */
       
   361         virtual void PrintMenuL( TUpdateType  aType );
       
   362         
       
   363     protected:  // New functions
       
   364         // None
       
   365 
       
   366     protected:  // Functions from base classes
       
   367         // None
       
   368        
       
   369         /**
       
   370         * By default Symbian OS constructor is private.
       
   371         */
       
   372         void ConstructL( CConsoleMain* aConsole, 
       
   373                          CMenu* aParent,
       
   374                          const TDesC& aName );
       
   375 
       
   376     private:
       
   377 
       
   378     public:   //Data
       
   379         // None
       
   380     
       
   381     protected:  // Data
       
   382         // None
       
   383 
       
   384     private:    // Data
       
   385         CMenu*                     iModuleAdd;
       
   386 
       
   387     public:     // Friend classes
       
   388          // None
       
   389 
       
   390     protected:  // Friend classes
       
   391         // None
       
   392 
       
   393     private:    // Friend classes
       
   394         // None
       
   395 
       
   396     };
       
   397 
       
   398 // DESCRIPTION
       
   399 // Test case starting menu
       
   400 class CCaseStartMenu 
       
   401     :public CMenu
       
   402   
       
   403     {
       
   404     public:  // Enumerations
       
   405         // None
       
   406 
       
   407     private: // Enumerations
       
   408         // None
       
   409 
       
   410     public:  // Constructors and destructor
       
   411         /**
       
   412         * NewL is first phase of two-phased constructor.
       
   413         */
       
   414         static CCaseStartMenu* NewL( CConsoleMain* aConsole, 
       
   415                                      CMenu* aParent, 
       
   416                                      const TDesC& aName,
       
   417                                      TBool aShowOutput = EFalse);
       
   418 
       
   419         /**
       
   420         * Destructor.
       
   421         */
       
   422 		~CCaseStartMenu();
       
   423 
       
   424     public: // New functions
       
   425        // None
       
   426 
       
   427     public: // Functions from base classes
       
   428 
       
   429         /** 
       
   430         * Process keypresses on this menu
       
   431         */
       
   432         virtual CMenu* SelectL( TKeyCode aSelectLion, 
       
   433                                 TBool& aContinue );
       
   434 
       
   435         /** 
       
   436         * Return item texts.
       
   437         */
       
   438         virtual TInt ItemTexts( RRefArray<TDesC>& aArray );
       
   439 
       
   440     protected:  // New functions
       
   441         // None
       
   442 
       
   443     protected:  // Functions from base classes
       
   444 
       
   445         /**
       
   446         * By default Symbian OS constructor is private.
       
   447         */
       
   448         void ConstructL( CConsoleMain* aConsole,
       
   449                          CMenu* aParent,
       
   450                          const TDesC& aName,
       
   451                          TBool aShowOutput = EFalse);
       
   452 
       
   453     private:
       
   454         // None
       
   455 
       
   456     public:     // Data
       
   457         // None
       
   458 
       
   459     protected:  // Data
       
   460         // Test case array
       
   461         RRefArray<CTestInfo> iTestCases;
       
   462 
       
   463     private:    // Data
       
   464         // Show output automaticly after test case is started
       
   465         TBool iShowOutput;
       
   466         
       
   467         // Map table. Translates indexes from filtered to all loaded from module  
       
   468         RArray<TInt> iMapFilteredToAll;
       
   469         
       
   470         // Keeps filter name converted to lower case
       
   471         TFileName iFilterLowerCase;
       
   472         
       
   473         // Keeps title of test case converted to lower case
       
   474         TFileName iTitleLowerCase;
       
   475         
       
   476     public:     // Friend classes
       
   477         // None
       
   478 
       
   479     protected:  // Friend classes
       
   480         // None
       
   481 
       
   482     private:    // Friend classes
       
   483         // None
       
   484 
       
   485     };
       
   486 
       
   487 // CONSTANTS
       
   488 _LIT( KChangeAll, "Change all");
       
   489 _LIT( KCancelSet, "Cancel set execution" );
       
   490 
       
   491 // Test set creation menu
       
   492 class CMultipleBaseMenu 
       
   493     :public CCaseStartMenu
       
   494   
       
   495     {
       
   496     public:  // Enumerations
       
   497          enum TMenuIndex
       
   498 		    {  
       
   499 		    EChangeAll = 0,
       
   500 		    ECancelSet = 0,
       
   501 		    };
       
   502         enum TRunType
       
   503             {
       
   504             ERunSequential,
       
   505             ERunParallel,
       
   506             ERunRepeatSequential,
       
   507             };
       
   508 		    
       
   509     protected: // Enumerations
       
   510 
       
   511     public:  // Constructors and destructor
       
   512         /**
       
   513         * NewL is first phase of two-phased constructor.
       
   514         */
       
   515         static CMultipleBaseMenu* NewL( CConsoleMain* aConsole, 
       
   516                                         CMenu* aParent, 
       
   517                                         const TDesC& aName);
       
   518         
       
   519         /**
       
   520         * Destructor.
       
   521         */
       
   522 		~CMultipleBaseMenu();
       
   523 
       
   524     public: // New functions
       
   525        // None
       
   526 
       
   527     public: // Functions from base classes
       
   528 
       
   529         /** 
       
   530         * Process keypresses on this menu
       
   531         */
       
   532         virtual CMenu* SelectL( TKeyCode aSelectLion, TBool& aContinue );
       
   533 
       
   534         /** 
       
   535         * Return item texts.
       
   536         */
       
   537         virtual TInt ItemTexts( RRefArray<TDesC>& aArray );
       
   538 
       
   539 		/** 
       
   540         * Signals test completion
       
   541         */
       
   542         virtual void SignalL ( CStartedTestCase* aContainer );
       
   543         
       
   544         /** 
       
   545         * Append text before line print.
       
   546         */
       
   547         virtual void AppendBefore( TInt aLineNum, TDes& aLine );
       
   548         
       
   549     protected:  // New functions
       
   550 
       
   551         //inline void SetRunType( TRunType aRunType )
       
   552         //    { iRunType = aRunType; };
       
   553             
       
   554         /**
       
   555         * Update iTestCases();
       
   556         */ 
       
   557         virtual TInt UpdateTestCases();
       
   558         TBool CheckIfAnyCaseIsSelected(TInt aCount);
       
   559                       
       
   560     protected:  // Functions from base classes
       
   561 
       
   562         /**
       
   563         * Constructor.
       
   564         */
       
   565 		CMultipleBaseMenu();
       
   566         
       
   567         /**
       
   568         * By default Symbian OS constructor is private.
       
   569         */
       
   570         void ConstructL( CConsoleMain* aConsole,
       
   571                          CMenu* aParent,
       
   572                          const TDesC& aName );
       
   573 
       
   574     private:
       
   575        
       
   576     public:     // Data
       
   577 
       
   578     protected:  // Data
       
   579 		RArray<TBool>       iSetState;
       
   580 		TInt                iCurrentRunPos;
       
   581 		TBool               iSetFinished;
       
   582 		CStartedTestCase*   iOngoingCaseContainer;
       
   583 		TRunType            iRunType;
       
   584 				
       
   585 		// Number of items in "static" menu (including derived classes)
       
   586 		TInt                iMenuTotCount;
       
   587 
       
   588     private:    // Data
       
   589 		// Number of items in "static" menu of this class
       
   590 		// (excluding derived classes)  
       
   591 		TInt                iMenuCount;
       
   592 
       
   593     public:     // Friend classes
       
   594 
       
   595     protected:  // Friend classes
       
   596 
       
   597     private:    // Friend classes
       
   598 
       
   599     };
       
   600 
       
   601 // CONSTANTS
       
   602 _LIT( KRunSequentially, "Run selection sequentially");
       
   603 _LIT( KRunParallel, "Run selection parallel");
       
   604 _LIT( KRepeatRunSequentially, "Repeat run selection sequentially");
       
   605 
       
   606 _LIT( KSelectFromTo, "Select all between already selected"); 
       
   607 
       
   608 // Test set creation menu
       
   609 class CMultipleCaseMenu 
       
   610     :public CMultipleBaseMenu
       
   611   
       
   612     {
       
   613     public:  // Enumerations
       
   614         // None
       
   615 
       
   616     private: // Enumerations
       
   617         enum TMultipleMenuIndex
       
   618 		    {  
       
   619 		    ERunSelection = 0,
       
   620 		    ERunSelectionParaller = 1,
       
   621 		    ERepeatRunSelection = 2,
       
   622 		    ESelectFromTo = 3,
       
   623 		    };
       
   624 		    
       
   625     public:  // Constructors and destructor
       
   626         /**
       
   627         * NewL is first phase of two-phased constructor.
       
   628         */
       
   629         static CMultipleCaseMenu* NewL( CConsoleMain* aConsole, 
       
   630                                         CMenu* aParent, 
       
   631                                         const TDesC& aName);
       
   632         
       
   633         /**
       
   634         * Destructor.
       
   635         */
       
   636 		~CMultipleCaseMenu();
       
   637 
       
   638     public: // New functions
       
   639        /**
       
   640        * Start running.
       
   641        */
       
   642        virtual void StartRunningL( TRunType aRunType, 
       
   643                                    const TDesC& aModule = KNullDesC, 
       
   644                                    const TDesC& aTestCaseFile = KNullDesC );
       
   645 
       
   646     public: // Functions from base classes
       
   647 
       
   648         /** 
       
   649         * Process keypresses on this menu
       
   650         */
       
   651         virtual CMenu* SelectL( TKeyCode aSelectLion, TBool& aContinue );
       
   652 
       
   653         /** 
       
   654         * Return item texts.
       
   655         */
       
   656         virtual TInt ItemTexts( RRefArray<TDesC>& aArray );
       
   657 
       
   658     protected:  // New functions
       
   659         // None
       
   660 
       
   661     protected:  // Functions from base classes
       
   662     
       
   663         /**
       
   664         * Constructor.
       
   665         */
       
   666 		CMultipleCaseMenu();
       
   667 
       
   668         /**
       
   669         * By default Symbian OS constructor is private.
       
   670         */
       
   671         void ConstructL( CConsoleMain* aConsole,
       
   672                          CMenu* aParent,
       
   673                          const TDesC& aName );
       
   674 
       
   675     private:
       
   676        
       
   677     public:     // Data
       
   678         // None
       
   679 
       
   680     protected:  // Data
       
   681         // None
       
   682 
       
   683     private:    // Data
       
   684         // Number of items in "static" menu of this class
       
   685 		// (excluding derived classes)  
       
   686 		TInt                iMenuItemsCount;
       
   687 		
       
   688     public:     // Friend classes
       
   689         // None
       
   690 
       
   691     protected:  // Friend classes
       
   692         // None
       
   693 
       
   694     private:    // Friend classes
       
   695         // None
       
   696 
       
   697     };
       
   698 
       
   699 
       
   700 // CONSTANTS
       
   701 _LIT( KExitTxt,     "Exit" );
       
   702 
       
   703 // DESCRIPTION
       
   704 // The main menu class
       
   705 class CMainMenu 
       
   706     :public CMenu
       
   707   
       
   708     {
       
   709     public:  // Enumerations
       
   710         // None
       
   711 
       
   712     private: // Enumerations
       
   713         // None
       
   714 
       
   715     public:  // Constructors and destructor
       
   716 
       
   717         /**
       
   718         * NewL is first phase of two-phased constructor.
       
   719         */
       
   720         static CMainMenu* NewL( CConsoleMain* aConsole, 
       
   721                                 CMenu* aParent, 
       
   722                                 const TDesC& aName,
       
   723                                 const TDesC& aHeader );
       
   724 
       
   725         /**
       
   726         * Destructor
       
   727         */
       
   728         ~CMainMenu();
       
   729 
       
   730     public: // New functions
       
   731         /**
       
   732         * Creates CaseOperationMenu and CaseExecutionView.
       
   733         * Used when after test case starting its output view needs to be shown.
       
   734         */
       
   735         CMenu* CreateOutputViewL(CMenu* aParent);
       
   736 
       
   737     public: // Functions from base classes    
       
   738 
       
   739         /** 
       
   740         * Return item texts.
       
   741         */
       
   742         virtual TInt ItemTexts( RRefArray<TDesC>& aArray );
       
   743 
       
   744         /** 
       
   745         * Process keypresses on this menu
       
   746         */
       
   747         virtual CMenu* SelectL( TKeyCode aSelectLion, TBool& aContinue );
       
   748 
       
   749 
       
   750     protected:  // New functions
       
   751         // None
       
   752 
       
   753     protected:  // Functions from base classes
       
   754 
       
   755         /**
       
   756         * By default Symbian OS constructor is private.
       
   757         */
       
   758         void ConstructL( CConsoleMain* aConsole, 
       
   759                          CMenu* aParent,
       
   760                          const TDesC& aName,
       
   761                          const TDesC& aHeader );
       
   762 
       
   763     private:
       
   764 
       
   765     public:   //Data
       
   766 
       
   767     protected:  // Data
       
   768 
       
   769     private:    // Data
       
   770         // Menu representing output view, used to show it after test case is started
       
   771         CCaseExecutionView* iOutputView;
       
   772 
       
   773         // Operation menu used to show output view after test case is started
       
   774         CCaseOperationMenu* iOperationMenu;
       
   775 		
       
   776     public:     // Friend classes
       
   777 
       
   778     protected:  // Friend classes
       
   779 
       
   780     private:    // Friend classes
       
   781 
       
   782     };
       
   783 
       
   784 
       
   785 // DESCRIPTION
       
   786 // The case list (passed/failed/...) menu class
       
   787 class CCaseMenu 
       
   788     :public CMenu
       
   789   
       
   790     {
       
   791     public:  // Enumerations
       
   792         // None
       
   793 
       
   794     private: // Enumerations
       
   795         // None
       
   796 
       
   797     public:  // Constructors and destructor
       
   798         // None
       
   799 
       
   800         /**
       
   801         * NewL is first phase of two-phased constructor.
       
   802         */
       
   803         static CCaseMenu* NewL( CConsoleMain* aConsole, 
       
   804                                 CMenu* aParent, 
       
   805                                 const TDesC& aName, 
       
   806                                 TInt aType );
       
   807 
       
   808         /**
       
   809         * Destructor
       
   810         */
       
   811         ~CCaseMenu();
       
   812 
       
   813     public: // New functions
       
   814         // None
       
   815 
       
   816     public: // Functions from base classes    
       
   817 
       
   818         /** 
       
   819         * Process keypresses on this menu
       
   820         */
       
   821         virtual CMenu* SelectL( TKeyCode aSelectLion, TBool& aContinue );
       
   822         
       
   823         /** 
       
   824         * Return item texts.
       
   825         */
       
   826         virtual TInt ItemTexts( RRefArray<TDesC>& aArray );
       
   827 
       
   828         /**
       
   829         * Append text before original text.
       
   830         */
       
   831         virtual void AppendBefore(TInt aLineNum, TDes& aLine);
       
   832 
       
   833     protected:  // New functions
       
   834 
       
   835     protected:  // Functions from base classes
       
   836 
       
   837         /**
       
   838         * By default Symbian OS constructor is private.
       
   839         */
       
   840         void ConstructL( CConsoleMain* aConsole, 
       
   841                          CMenu* aParent, 
       
   842                          const TDesC& aName, 
       
   843                          TInt aType );
       
   844 
       
   845     private:    // Data
       
   846         // None
       
   847 
       
   848     public:     // Data
       
   849         // None
       
   850 
       
   851     protected:  // Data
       
   852         CCaseOperationMenu*             iCaseOperationMenu;    // Submenu
       
   853         RRefArray<CStartedTestCase>     iTestCases;
       
   854 
       
   855     private:    // Data
       
   856         
       
   857     public:     // Friend classes
       
   858         // None
       
   859 
       
   860     protected:  // Friend classes
       
   861         // None
       
   862 
       
   863     private:    // Friend classes
       
   864         // None
       
   865 
       
   866     };
       
   867 
       
   868 // CONSTANTS
       
   869 _LIT( KOutputViewDes,   "View Output");
       
   870 _LIT( KPauseCaseDes,    "Pause");
       
   871 _LIT( KResumeCaseDes,   "Resume");
       
   872 _LIT( KAbortCaseDes,    "Abort case");
       
   873 _LIT( KRestartCaseDes,  "Restart");
       
   874 
       
   875 // DESCRIPTION
       
   876 // Case specific operations, like pause, abort etc.
       
   877 class CCaseOperationMenu 
       
   878     :public CMenu
       
   879   
       
   880     {
       
   881     public:  // Enumerations
       
   882         // None
       
   883 
       
   884     private: // Enumerations
       
   885         enum TCaseOperationMenu
       
   886             {
       
   887             ERestartCase,
       
   888             EOutputView,
       
   889             EPauseResume,
       
   890             EAbortCase,   
       
   891             };
       
   892 
       
   893     public:  // Constructors and destructor
       
   894         // None
       
   895 
       
   896         /**
       
   897         * NewL is first phase of two-phased constructor.
       
   898         */
       
   899         static CCaseOperationMenu* NewL( CConsoleMain* aConsole, 
       
   900                             CMenu* aParent, 
       
   901                             const TDesC& aName, 
       
   902                             const CStartedTestCase* aCaseContainer );
       
   903         
       
   904         /**
       
   905         * Destructor.
       
   906         */
       
   907         ~CCaseOperationMenu();
       
   908         
       
   909     public: // New functions
       
   910 
       
   911     public: // Functions from base classes
       
   912 
       
   913         /** 
       
   914         * Process keypresses on this menu
       
   915         */
       
   916         virtual CMenu* SelectL( TKeyCode aSelectLion, TBool& aContinue );
       
   917 
       
   918         /** 
       
   919         * Prints the menu
       
   920         */
       
   921         virtual void PrintMenuL( TUpdateType  aType );
       
   922 
       
   923         /** 
       
   924         * Return item texts.
       
   925         */
       
   926         virtual TInt ItemTexts( RRefArray<TDesC>& aArray );
       
   927 
       
   928     protected:  // New functions
       
   929         // None
       
   930 
       
   931     protected:  // Functions from base classes
       
   932 
       
   933         /**
       
   934         * By default Symbian OS constructor is private.
       
   935         */
       
   936         void ConstructL( CConsoleMain* aConsole, 
       
   937                          CMenu* aParent,
       
   938                          const TDesC& aName,
       
   939                          const CStartedTestCase* aCaseContainer );
       
   940 
       
   941     private:    // Functions from base classes
       
   942         // None
       
   943 
       
   944     public:   //Data
       
   945         // None
       
   946     
       
   947     protected:  // Data
       
   948         // None
       
   949 
       
   950     private:    // Data
       
   951         // Case container
       
   952         const CStartedTestCase* iCaseContainer; 
       
   953         // Execution view                       
       
   954         CCaseExecutionView*     iView;
       
   955         
       
   956     public:     // Friend classes
       
   957         // None        
       
   958 
       
   959     protected:  // Friend classes
       
   960         // None
       
   961 
       
   962     private:    // Friend classes
       
   963         // None
       
   964 
       
   965     };
       
   966 
       
   967 
       
   968 class CCaseExecutionView 
       
   969     :public CMenu
       
   970   
       
   971     {
       
   972     public:  // Enumerations
       
   973         // None
       
   974 
       
   975     private: // Enumerations
       
   976         // None
       
   977 
       
   978     public:  // Constructors and destructor
       
   979         // None
       
   980 
       
   981         /**
       
   982         * NewL is first phase of two-phased constructor.
       
   983         */
       
   984         static CCaseExecutionView* NewL( CConsoleMain* aConsole, 
       
   985                                          CMenu* aParent, 
       
   986                                          const TDesC& aName, 
       
   987                                          const CStartedTestCase* aCase);
       
   988 
       
   989          /**
       
   990         * Destructor.
       
   991         */
       
   992         ~CCaseExecutionView();
       
   993 
       
   994     public: // New functions
       
   995         // None
       
   996 
       
   997     public: // Functions from base classes
       
   998 
       
   999         /** 
       
  1000         * Prints the menu
       
  1001         */
       
  1002         virtual void PrintMenuL( TUpdateType  aType );
       
  1003 
       
  1004         /** 
       
  1005         * Process keypresses on this menu
       
  1006         */
       
  1007         virtual CMenu* SelectL( TKeyCode aSelectLion, TBool& aContinue );
       
  1008         
       
  1009         /**
       
  1010         * Get current testcase info.
       
  1011         */ 
       
  1012         inline const CStartedTestCase* TestCase(){ return iCase; };
       
  1013 
       
  1014     protected:  // New functions
       
  1015         // None
       
  1016 
       
  1017     protected:  // Functions from base classes
       
  1018 
       
  1019         /**
       
  1020         * By default Symbian OS constructor is private.
       
  1021         */
       
  1022         void ConstructL( CConsoleMain* aConsole, 
       
  1023                          CMenu* aParent,
       
  1024                          const TDesC& aName,
       
  1025                          const CStartedTestCase* aCase );
       
  1026 
       
  1027     private:   // Functions from base classes
       
  1028         // None
       
  1029 
       
  1030     public:     // Data
       
  1031         // None
       
  1032 
       
  1033     protected:  // Data
       
  1034         // None
       
  1035 
       
  1036     private:    // Data
       
  1037         const CStartedTestCase* iCase;
       
  1038 
       
  1039         /**
       
  1040         * Indicates current selected line.
       
  1041         */
       
  1042         TInt                    iLine;
       
  1043         /**
       
  1044         * Indicates will line show.
       
  1045         */
       
  1046         TBool                   iShowLine;
       
  1047         /**
       
  1048         * Line to be show.
       
  1049         */
       
  1050         HBufC*                  iLineTextBuf;
       
  1051 
       
  1052     public:     // Friend classes
       
  1053         // None
       
  1054 
       
  1055     protected:  // Friend classes
       
  1056         // None
       
  1057 
       
  1058     private:    // Friend classes
       
  1059         // None
       
  1060 
       
  1061     };
       
  1062 
       
  1063 // CMenu notifier class shows dialogs in UI.
       
  1064 class CMenuNotifier
       
  1065         :public CBase
       
  1066     {
       
  1067     public:  // Enumerations
       
  1068 
       
  1069     private: // Enumerations
       
  1070         // None
       
  1071 
       
  1072     public:  // Constructors and destructor
       
  1073         // None
       
  1074 
       
  1075         /**
       
  1076         * NewL is first phase of two-phased constructor.
       
  1077         */
       
  1078         static CMenuNotifier* NewL( const TDesC& aError, 
       
  1079                                     CConsoleMain* aMain );
       
  1080 
       
  1081        /**
       
  1082         * Destructor of CConsoleMain.
       
  1083         */
       
  1084         virtual ~CMenuNotifier();
       
  1085 
       
  1086     public: // New functions  
       
  1087             
       
  1088     public: // Functions from base classes
       
  1089         // None
       
  1090 
       
  1091     protected:  // New functions
       
  1092         // None
       
  1093 
       
  1094     protected:  // Functions from base classes
       
  1095         // None    
       
  1096 
       
  1097         /** 
       
  1098         * C++ default constructor.
       
  1099         */
       
  1100         CMenuNotifier( CConsoleMain* aMain );
       
  1101 
       
  1102         /**
       
  1103         * By default Symbian OS constructor is private.
       
  1104         */
       
  1105         void ConstructL( const TDesC& aError );
       
  1106     
       
  1107     private:   // Functions from base classes
       
  1108         // None
       
  1109 
       
  1110     private:   // New functions
       
  1111         /** 
       
  1112         * C++ default constructor.
       
  1113         */
       
  1114         void Run1();	
       
  1115 
       
  1116     public:   // Data
       
  1117         // None
       
  1118 
       
  1119     protected:  // Data      
       
  1120 
       
  1121     private:    // Data
       
  1122         CActiveCallback <CMenuNotifier> iCallBack1;
       
  1123         CActiveCallback <CMenuNotifier> iCallBack2;
       
  1124         RTimer iTimer;
       
  1125         CConsoleBase* iConsole;
       
  1126         CConsoleMain* iMain;        
       
  1127         TInt iCompletionCode; 
       
  1128 
       
  1129     public:     // Friend classes
       
  1130         // None
       
  1131 
       
  1132     protected:  // Friend classes
       
  1133         // None
       
  1134 
       
  1135     private:    // Friend classes
       
  1136         // None
       
  1137 
       
  1138     };
       
  1139 
       
  1140 // CMenu dialog class shows dialogs in UI and waits for keypress.
       
  1141 class CMenuDialog
       
  1142     :public CBase
       
  1143     {
       
  1144     public:  // Enumerations
       
  1145 
       
  1146     private: // Enumerations
       
  1147         // None
       
  1148 
       
  1149     public:  // Constructors and destructor
       
  1150         // None
       
  1151 
       
  1152         /**
       
  1153         * NewL is first phase of two-phased constructor.
       
  1154         */
       
  1155         static CMenuDialog* NewL( CConsoleMain* aMain, 
       
  1156                                   const TDesC& aMessage, 
       
  1157                                   const TDesC& aInstruction,
       
  1158                                   TInt aTimeInSecs );
       
  1159 
       
  1160        /**
       
  1161         * Destructor.
       
  1162         */
       
  1163         virtual ~CMenuDialog();
       
  1164 
       
  1165     public: // New functions  
       
  1166             
       
  1167     public: // Functions from base classes
       
  1168         
       
  1169         TInt WaitForKeypress( TKeyCode& aKeyCode, 
       
  1170                               TRequestStatus& aStatus  );
       
  1171 
       
  1172     protected:  // New functions
       
  1173         // None
       
  1174 
       
  1175     protected:  // Functions from base classes
       
  1176         // None    
       
  1177 
       
  1178         /** 
       
  1179         * C++ default constructor.
       
  1180         */
       
  1181         CMenuDialog( CConsoleMain* aMain );
       
  1182 
       
  1183         /**
       
  1184         * By default Symbian OS constructor is private.
       
  1185         */
       
  1186         void ConstructL( const TDesC& aMessage, 
       
  1187                          const TDesC& aInstruction, 
       
  1188                          TInt aTimeInSecs );
       
  1189     
       
  1190     private:   // Functions from base classes
       
  1191         // None
       
  1192 
       
  1193     private:   // New functions
       
  1194         /**
       
  1195         * Handle completions.
       
  1196         */
       
  1197         void Run1();	
       
  1198 
       
  1199     public:   // Data
       
  1200         // None
       
  1201 
       
  1202     protected:  // Data      
       
  1203 
       
  1204     private:    // Data
       
  1205         // Backpointer
       
  1206         CConsoleMain* iMain;        
       
  1207         CConsoleBase* iConsole;
       
  1208 
       
  1209         // Timer support
       
  1210         CActiveCallback <CMenuDialog> iCallBack1;
       
  1211         RTimer iTimer;
       
  1212         
       
  1213         // Reading
       
  1214         CActiveCallback <CMenuDialog> iCallBack2;
       
  1215         
       
  1216         // For reading keys        
       
  1217         TRequestStatus* iStatus;
       
  1218         TKeyCode*     iKeyCode;
       
  1219     
       
  1220     public:     // Friend classes
       
  1221         // None
       
  1222 
       
  1223     protected:  // Friend classes
       
  1224         // None
       
  1225 
       
  1226     private:    // Friend classes
       
  1227         // None
       
  1228 
       
  1229     };
       
  1230 
       
  1231 // CONSTANTS
       
  1232 _LIT( KTestSetMenu,     "CTestSetMenu" );
       
  1233 
       
  1234 _LIT( KDefaultSetName,  "ConsoleUI.set" );
       
  1235 
       
  1236 _LIT( KSetCreate,       "Create test set" );
       
  1237 _LIT( KSetLoad,         "Load test set" );
       
  1238 
       
  1239 _LIT( KSetShow,         "Show started test sets" );
       
  1240 _LIT( KSetRemove,       "Remove test set" );
       
  1241 _LIT( KSetCaseAdd,      "Add test case to test set" );
       
  1242 _LIT( KSetCaseRemove,   "Remove test case from test set" );
       
  1243 _LIT( KSetSave,         "Save test set" );
       
  1244 
       
  1245 _LIT( KSetStartSeq,     "Start sequential test set execution" );
       
  1246 _LIT( KSetStartPar,     "Start parallel test set execution" );
       
  1247 //_LIT( KSetStartRep,     "Start repeating test set execution" );
       
  1248 
       
  1249 _LIT( KSetStartSeqNotRun, "Start sequentially not started tests" );
       
  1250 
       
  1251 // DESCRIPTION
       
  1252 // Test set menu
       
  1253 class CTestSetMenu 
       
  1254     :public CMenu
       
  1255   
       
  1256     {
       
  1257     public:  // Enumerations
       
  1258         
       
  1259     private: // Enumerations
       
  1260         
       
  1261         enum TCreateMenu
       
  1262             {
       
  1263             ESetCreate,
       
  1264             ESetLoad,    
       
  1265             };
       
  1266             
       
  1267         enum TEditMenu
       
  1268             {
       
  1269             ESetShow,
       
  1270  
       
  1271             ESetStartSeq,
       
  1272             ESetStartPar,
       
  1273             //ESetStartRep,
       
  1274  
       
  1275             ESetRemove,
       
  1276             ESetSave,
       
  1277             ESetCaseAdd,
       
  1278             ESetCaseRemove,
       
  1279             
       
  1280             ESetStartSeqNotRun,
       
  1281             
       
  1282 
       
  1283             ESetLAST //This entry must remain LAST in this menu
       
  1284             };
       
  1285             
       
  1286     public:  // Constructors and destructor
       
  1287 
       
  1288         /**
       
  1289         * NewL is first phase of two-phased constructor.
       
  1290         */
       
  1291         static CTestSetMenu* NewL( CConsoleMain* aConsole,
       
  1292                                    CMenu* aParent,
       
  1293                                    const TDesC& aName );
       
  1294 
       
  1295        /**
       
  1296         * Destructor
       
  1297         */
       
  1298         ~CTestSetMenu();
       
  1299 
       
  1300     public: // New functions
       
  1301         /**
       
  1302         * Set test set file name.
       
  1303         */
       
  1304         void SetTestSetFileName( const TFileName& aTestSetFileName ); 
       
  1305         
       
  1306         /**
       
  1307         * Set test set state created.
       
  1308         */
       
  1309         void SetCreated(){ iTestSetCreated = ETrue; };
       
  1310          
       
  1311     public: // Functions from base classes
       
  1312 
       
  1313         /** 
       
  1314         * Return item texts.
       
  1315         */
       
  1316         virtual TInt ItemTexts( RRefArray<TDesC>& aArray );
       
  1317         
       
  1318         /** 
       
  1319         * Process keypresses on this menu
       
  1320         */
       
  1321         virtual CMenu* SelectL( TKeyCode aSelectLion, 
       
  1322                                 TBool& aContinue );
       
  1323  
       
  1324         /** 
       
  1325         * Prints the menu
       
  1326         */
       
  1327         virtual void PrintMenuL( TUpdateType  aType );
       
  1328         
       
  1329     protected:  // New functions
       
  1330 
       
  1331     protected:  // Functions from base classes
       
  1332         /**
       
  1333         * Constructor
       
  1334         */
       
  1335         CTestSetMenu();
       
  1336        
       
  1337         /**
       
  1338         * By default Symbian OS constructor is private.
       
  1339         */
       
  1340         void ConstructL( CConsoleMain* aConsole, 
       
  1341                          CMenu* aParent,
       
  1342                          const TDesC& aName );
       
  1343 
       
  1344     private:
       
  1345 
       
  1346     public:   //Data
       
  1347         // None
       
  1348     
       
  1349     protected:  // Data
       
  1350         // None
       
  1351 
       
  1352     private:    // Data
       
  1353         TBool               iTestSetCreated;
       
  1354         TFileName           iTestSetName;
       
  1355         
       
  1356         CMenu*              iSubMenu;
       
  1357         
       
  1358     public:     // Friend classes
       
  1359          // None
       
  1360 
       
  1361     protected:  // Friend classes
       
  1362         // None
       
  1363 
       
  1364     private:    // Friend classes
       
  1365         // None
       
  1366 
       
  1367     };
       
  1368 
       
  1369     // CONSTANTS
       
  1370     _LIT( KTestSetChoice,     "CTestSetChoiceMenu" );
       
  1371     _LIT( KSetSelect,       "Select Test Set" );
       
  1372 
       
  1373 
       
  1374     // DESCRIPTION
       
  1375     // Test set choice menu
       
  1376     class CTestSetChoiceMenu 
       
  1377         :public CMenu
       
  1378 
       
  1379         {
       
  1380         public:  // Enumerations
       
  1381             
       
  1382         private: // Enumerations
       
  1383             
       
  1384             
       
  1385                 
       
  1386         public:  // Constructors and destructor
       
  1387 
       
  1388             /**
       
  1389             * NewL is first phase of two-phased constructor.
       
  1390             */
       
  1391             static CTestSetChoiceMenu* NewL( CConsoleMain* aConsole,
       
  1392                                        CMenu* aParent,
       
  1393                                        const TDesC& aName );
       
  1394 
       
  1395            /**
       
  1396             * Destructor
       
  1397             */
       
  1398             ~CTestSetChoiceMenu();
       
  1399 
       
  1400         public: // New functions
       
  1401              
       
  1402         public: // Functions from base classes
       
  1403 
       
  1404             /** 
       
  1405             * Return item texts.
       
  1406             */
       
  1407            virtual TInt ItemTexts( RRefArray<TDesC>& aArray );
       
  1408             
       
  1409             /** 
       
  1410             * Process keypresses on this menu
       
  1411             */
       
  1412             virtual CMenu* SelectL( TKeyCode aSelectLion, 
       
  1413                                     TBool& aContinue );
       
  1414      
       
  1415             /** 
       
  1416             * Prints the menu
       
  1417             */
       
  1418             virtual void PrintMenuL( TUpdateType  aType );
       
  1419             
       
  1420         protected:  // New functions
       
  1421 
       
  1422         protected:  // Functions from base classes
       
  1423             /**
       
  1424             * Constructor
       
  1425             */
       
  1426             CTestSetChoiceMenu();
       
  1427            
       
  1428             /**
       
  1429             * By default Symbian OS constructor is private.
       
  1430             */
       
  1431             void ConstructL( CConsoleMain* aConsole, 
       
  1432                              CMenu* aParent,
       
  1433                              const TDesC& aName );
       
  1434 
       
  1435         private:
       
  1436 
       
  1437         public:   //Data
       
  1438             // None
       
  1439 
       
  1440         protected:  // Data
       
  1441             // None
       
  1442 
       
  1443         private:    // Data
       
  1444             TFileName           iTestSetName;
       
  1445             RPointerArray<HBufC> iFileList;
       
  1446             
       
  1447         public:     // Friend classes
       
  1448              // None
       
  1449 
       
  1450         protected:  // Friend classes
       
  1451             // None
       
  1452 
       
  1453         private:    // Friend classes
       
  1454             // None
       
  1455 
       
  1456         };
       
  1457     
       
  1458 // CONSTANTS
       
  1459 _LIT( KAddSelected, "Add selected cases");
       
  1460 
       
  1461 // Test set case add menu
       
  1462 class CTestSetAddCaseMenu 
       
  1463     :public CMultipleBaseMenu
       
  1464   
       
  1465     {
       
  1466     public:  // Enumerations
       
  1467         // None
       
  1468 
       
  1469     private: // Enumerations
       
  1470         enum TTestSetAddCaseMenuIndex
       
  1471 		    {  
       
  1472 		    EAddSelected = 0,
       
  1473 		    };
       
  1474 		    
       
  1475     public:  // Constructors and destructor
       
  1476         /**
       
  1477         * NewL is first phase of two-phased constructor.
       
  1478         */
       
  1479         static CTestSetAddCaseMenu* NewL( CConsoleMain* aConsole, 
       
  1480                                          CMenu* aParent, 
       
  1481                                          const TDesC& aName,
       
  1482                                          TDesC& aTestSetName );
       
  1483         
       
  1484         /**
       
  1485         * Destructor.
       
  1486         */
       
  1487 		~CTestSetAddCaseMenu();
       
  1488 
       
  1489     public: // New functions
       
  1490        // None
       
  1491 
       
  1492     public: // Functions from base classes
       
  1493 
       
  1494         /** 
       
  1495         * Process keypresses on this menu
       
  1496         */
       
  1497         virtual CMenu* SelectL( TKeyCode aSelectLion, TBool& aContinue );
       
  1498 
       
  1499         /** 
       
  1500         * Return item texts.
       
  1501         */
       
  1502         virtual TInt ItemTexts( RRefArray<TDesC>& aArray );
       
  1503 
       
  1504     protected:  // New functions
       
  1505         // None
       
  1506 
       
  1507     protected:  // Functions from base classes
       
  1508     
       
  1509         /**
       
  1510         * Constructor.
       
  1511         */
       
  1512 		CTestSetAddCaseMenu( TDesC& aTestSetName );
       
  1513 
       
  1514         /**
       
  1515         * By default Symbian OS constructor is private.
       
  1516         */
       
  1517         void ConstructL( CConsoleMain* aConsole,
       
  1518                          CMenu* aParent,
       
  1519                          const TDesC& aName );
       
  1520 
       
  1521     private:
       
  1522        
       
  1523     public:     // Data
       
  1524         // None
       
  1525 
       
  1526     protected:  // Data
       
  1527         // None
       
  1528 
       
  1529     private:    // Data
       
  1530         // Number of items in "static" menu of this class
       
  1531 		// (excluding derived classes)  
       
  1532 		TInt    iMenuItemsCount;
       
  1533 		
       
  1534         TPtrC   iTestSetName;
       
  1535 
       
  1536     public:     // Friend classes
       
  1537         // None
       
  1538 
       
  1539     protected:  // Friend classes
       
  1540         // None
       
  1541 
       
  1542     private:    // Friend classes
       
  1543         // None
       
  1544 
       
  1545     };
       
  1546 
       
  1547 // CONSTANTS
       
  1548 _LIT( KRemoveSelected, "Remove selected cases");
       
  1549 
       
  1550 // Test set case add menu
       
  1551 class CTestSetRemoveCaseMenu 
       
  1552     :public CMultipleBaseMenu
       
  1553   
       
  1554     {
       
  1555     public:  // Enumerations
       
  1556         // None
       
  1557 
       
  1558     private: // Enumerations
       
  1559         enum TTestSetRemoveCaseMenuIndex
       
  1560 		    {  
       
  1561 		    ERemoveSelected = 0,
       
  1562 		    };
       
  1563 		    
       
  1564     public:  // Constructors and destructor
       
  1565         /**
       
  1566         * NewL is first phase of two-phased constructor.
       
  1567         */
       
  1568         static CTestSetRemoveCaseMenu* NewL( CConsoleMain* aConsole, 
       
  1569                                              CMenu* aParent, 
       
  1570                                              const TDesC& aName,
       
  1571                                              TDesC& aTestSetName );
       
  1572         
       
  1573         /**
       
  1574         * Destructor.
       
  1575         */
       
  1576 		~CTestSetRemoveCaseMenu();
       
  1577 
       
  1578     public: // New functions
       
  1579        // None
       
  1580 
       
  1581     public: // Functions from base classes
       
  1582 
       
  1583         /** 
       
  1584         * Process keypresses on this menu
       
  1585         */
       
  1586         virtual CMenu* SelectL( TKeyCode aSelectLion, TBool& aContinue );
       
  1587 
       
  1588         /** 
       
  1589         * Return item texts.
       
  1590         */
       
  1591         virtual TInt ItemTexts( RRefArray<TDesC>& aArray );
       
  1592         
       
  1593         /**
       
  1594         * Update iTestCases;
       
  1595         */ 
       
  1596         virtual TInt UpdateTestCases();
       
  1597 
       
  1598     protected:  // New functions
       
  1599         // None
       
  1600 
       
  1601     protected:  // Functions from base classes
       
  1602     
       
  1603         /**
       
  1604         * Constructor.
       
  1605         */
       
  1606 		CTestSetRemoveCaseMenu( TDesC& aTestSetName );
       
  1607 
       
  1608         /**
       
  1609         * By default Symbian OS constructor is private.
       
  1610         */
       
  1611         void ConstructL( CConsoleMain* aConsole,
       
  1612                          CMenu* aParent,
       
  1613                          const TDesC& aName );
       
  1614 
       
  1615     private:
       
  1616        
       
  1617     public:     // Data
       
  1618         // None
       
  1619 
       
  1620     protected:  // Data
       
  1621         // None
       
  1622 
       
  1623     private:    // Data
       
  1624         // Number of items in "static" menu of this class
       
  1625 		// (excluding derived classes)  
       
  1626 		TInt        iMenuItemsCount;
       
  1627 		
       
  1628         TPtrC       iTestSetName;
       
  1629 
       
  1630     public:     // Friend classes
       
  1631         // None
       
  1632 
       
  1633     protected:  // Friend classes
       
  1634         // None
       
  1635 
       
  1636     private:    // Friend classes
       
  1637         // None
       
  1638 
       
  1639     };    
       
  1640 
       
  1641 // DESCRIPTION
       
  1642 // The case list (passed/failed/...) menu class
       
  1643 class CTestSetCaseMenu  
       
  1644     :public CCaseMenu
       
  1645   
       
  1646     {
       
  1647     public:  // Enumerations
       
  1648         // None
       
  1649 
       
  1650     private: // Enumerations
       
  1651         // None
       
  1652 
       
  1653     public:  // Constructors and destructor
       
  1654         // None
       
  1655 
       
  1656         /**
       
  1657         * NewL is first phase of two-phased constructor.
       
  1658         */
       
  1659         static CTestSetCaseMenu* NewL( CConsoleMain* aConsole, 
       
  1660                                        CMenu* aParent, 
       
  1661                                        const TDesC& aName,
       
  1662                                        CStartedTestSet& aTestSet );
       
  1663 
       
  1664         /**
       
  1665         * Destructor
       
  1666         */
       
  1667         ~CTestSetCaseMenu();
       
  1668 
       
  1669     public: // New functions
       
  1670         // None
       
  1671 
       
  1672     public: // Functions from base classes    
       
  1673 
       
  1674         /** 
       
  1675         * Return item texts.
       
  1676         */
       
  1677         virtual TInt ItemTexts( RRefArray<TDesC>& aArray );
       
  1678 
       
  1679         /** 
       
  1680         * Prints the menu
       
  1681         */
       
  1682         void AppendBefore( TInt aLineNum, TDes& aLine );
       
  1683         
       
  1684         /** 
       
  1685         * Process keypresses on this menu
       
  1686         */
       
  1687         virtual CMenu* SelectL( TKeyCode aSelectLion, TBool& aContinue );     
       
  1688         
       
  1689     protected:  // New functions
       
  1690 
       
  1691     protected:  // Functions from base classes
       
  1692 
       
  1693        
       
  1694 
       
  1695     private:    // Data
       
  1696     
       
  1697         CTestSetCaseMenu( CStartedTestSet& aTestSet );
       
  1698         
       
  1699         /**
       
  1700         * By default Symbian OS constructor is private.
       
  1701         */
       
  1702         void ConstructL( CConsoleMain* aConsole, 
       
  1703                          CMenu* aParent, 
       
  1704                          const TDesC& aName );
       
  1705     public:     // Data
       
  1706         // None
       
  1707 
       
  1708     protected:  // Data
       
  1709 
       
  1710     private:    // Data
       
  1711         CStartedTestSet& iTestSet;
       
  1712         
       
  1713     public:     // Friend classes
       
  1714         // None
       
  1715 
       
  1716     protected:  // Friend classes
       
  1717         // None
       
  1718 
       
  1719     private:    // Friend classes
       
  1720         // None
       
  1721 
       
  1722     };
       
  1723 
       
  1724 // CONSTANTS
       
  1725 _LIT( KCancelTestSet, "Cancel test set");
       
  1726         
       
  1727 // DESCRIPTION
       
  1728 // Started test sets (passed/failed/...) menu class
       
  1729 class CStartedTestSetMenu 
       
  1730     :public CMenu
       
  1731   
       
  1732     {
       
  1733     public:  // Enumerations
       
  1734         // None
       
  1735 
       
  1736     private: // Enumerations
       
  1737         // None
       
  1738 
       
  1739     public:  // Constructors and destructor
       
  1740         // None
       
  1741 
       
  1742         /**
       
  1743         * NewL is first phase of two-phased constructor.
       
  1744         */
       
  1745         static CStartedTestSetMenu* NewL( CConsoleMain* aConsole, 
       
  1746                                           CMenu* aParent, 
       
  1747                                           const TDesC& aName );
       
  1748 
       
  1749         /**
       
  1750         * Destructor
       
  1751         */
       
  1752         ~CStartedTestSetMenu();
       
  1753 
       
  1754     public: // New functions
       
  1755         // None
       
  1756 
       
  1757     public: // Functions from base classes    
       
  1758 
       
  1759         /** 
       
  1760         * Process keypresses on this menu
       
  1761         */
       
  1762         virtual CMenu* SelectL( TKeyCode aSelectLion, TBool& aContinue );
       
  1763         
       
  1764         /** 
       
  1765         * Return item texts.
       
  1766         */
       
  1767         virtual TInt ItemTexts( RRefArray<TDesC>& aArray );
       
  1768 
       
  1769 
       
  1770         /** 
       
  1771         * Prints the menu
       
  1772         */
       
  1773         void AppendBefore( TInt aLineNum, TDes& aLine );
       
  1774         
       
  1775         
       
  1776     protected:  // New functions
       
  1777 
       
  1778     protected:  // Functions from base classes
       
  1779 
       
  1780        
       
  1781 
       
  1782     private:    // Data
       
  1783     
       
  1784         CStartedTestSetMenu();
       
  1785 
       
  1786         /**
       
  1787         * By default Symbian OS constructor is private.
       
  1788         */
       
  1789         void ConstructL( CConsoleMain* aConsole, 
       
  1790                          CMenu* aParent, 
       
  1791                          const TDesC& aName );
       
  1792     public:     // Data
       
  1793         // None
       
  1794 
       
  1795     protected:  // Data
       
  1796         // None
       
  1797 
       
  1798     private:    // Data
       
  1799         CTestSetCaseMenu*           iCaseMenu;    // Submenu
       
  1800         RRefArray<CStartedTestSet>  iTestSets;
       
  1801         
       
  1802     public:     // Friend classes
       
  1803         // None
       
  1804 
       
  1805     protected:  // Friend classes
       
  1806         // None
       
  1807 
       
  1808     private:    // Friend classes
       
  1809         // None
       
  1810 
       
  1811     };
       
  1812 
       
  1813 // DESCRIPTION
       
  1814 // Menu which shows available filters for test case titles
       
  1815 class CFilterMenu 
       
  1816     :public CMenu
       
  1817   
       
  1818     {
       
  1819     public:  // Enumerations
       
  1820         // None
       
  1821 
       
  1822     private: // Enumerations
       
  1823         // None
       
  1824 
       
  1825     public:  // Constructors and destructor
       
  1826         /**
       
  1827         * NewL is first phase of two-phased constructor.
       
  1828         */
       
  1829         static CFilterMenu* NewL(CConsoleMain* aConsole, 
       
  1830                                  CMenu* aParent, 
       
  1831                                  const TDesC& aName);
       
  1832 
       
  1833         /**
       
  1834         * Destructor.
       
  1835         */
       
  1836         ~CFilterMenu();
       
  1837 
       
  1838     public: // New functions
       
  1839         /**
       
  1840         * Set test case menu, so it can be shown when user selects filter
       
  1841         */
       
  1842         void SetTestCaseMenu(CMenu* aTestCaseMenu);
       
  1843 
       
  1844     public: // Functions from base classes
       
  1845 
       
  1846         /** 
       
  1847         * Process keypresses on this menu
       
  1848         */
       
  1849         virtual CMenu* SelectL(TKeyCode aSelectLion, 
       
  1850                                TBool& aContinue);
       
  1851 
       
  1852         /** 
       
  1853         * Return item texts.
       
  1854         */
       
  1855         virtual TInt ItemTexts(RRefArray<TDesC>& aArray);
       
  1856 
       
  1857     protected:  // New functions
       
  1858         // None
       
  1859 
       
  1860     protected:  // Functions from base classes
       
  1861         /** 
       
  1862         * C++ default constructor.
       
  1863         */
       
  1864         CFilterMenu();
       
  1865         
       
  1866         /**
       
  1867         * By default Symbian OS constructor is private.
       
  1868         */
       
  1869         void ConstructL(CConsoleMain* aConsole,
       
  1870                         CMenu* aParent,
       
  1871                         const TDesC& aName);
       
  1872 
       
  1873     private:    // Functions
       
  1874         // None
       
  1875 
       
  1876     public:     // Data
       
  1877         // None
       
  1878 
       
  1879     protected:  // Data
       
  1880         // None
       
  1881         
       
  1882     private:    // Data
       
  1883         /**
       
  1884         * Test case menu. It will be shown when user selects filter.
       
  1885         */
       
  1886         CMenu *iTestCaseMenu;
       
  1887 
       
  1888     public:     // Friend classes
       
  1889         // None
       
  1890 
       
  1891     protected:  // Friend classes
       
  1892         // None
       
  1893 
       
  1894     private:    // Friend classes
       
  1895         // None
       
  1896 
       
  1897     };
       
  1898    
       
  1899 #endif // CONSOLE_MENUS_H
       
  1900 
       
  1901 // End of File