stif/TouchConsoleUI/inc/ConsoleUI.h
changeset 0 a03f92240627
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stif/TouchConsoleUI/inc/ConsoleUI.h	Tue Feb 02 01:57:15 2010 +0200
@@ -0,0 +1,446 @@
+/*
+* 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 ConsoleUI.
+*
+*/
+
+#ifndef CONSOLE_UI_H
+#define CONSOLE_UI_H
+
+
+//  INCLUDE
+#include <e32std.h>
+#include <e32base.h>
+#include <e32twin.h>
+
+#include <stifinternal/UIStoreIf.h>
+#include <stifinternal/UIStore.h>
+#include <stifinternal/UIEngine.h>
+
+#include "CallBack.h"
+
+#include "TestModuleInfo.h"
+
+#include "ConsoleMenus.h"
+
+// CONSTANTS
+const TInt KMaxLineLength = 80;            // Longest supported line length
+const TInt KScrollPeriod = 300000;		   // Scrolling speed
+
+// MACROS
+
+// DATA TYPES
+
+// Case state
+// Menu update type
+enum TConsoleUIPanic
+    {
+    EInvalidCaseCompletion,
+    };
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+class CMenu;
+class CConsoleMain;
+class CConsoleReader;
+class CMenuDialog;
+
+// CLASS DECLARATION
+
+// DESCRIPTION
+// CModule contains a test module data
+
+class CScrollerTimer
+        :public CActive
+    {
+    public:  // Enumerations
+        // None
+
+    private: // Enumerations
+        
+    public:  // Constructors and destructor
+
+        /**
+        * NewL is first phase of two-phased constructor.
+        */
+        static CScrollerTimer* NewL( CConsoleMain* aMain );
+
+        /**
+        * Destructor of CModule.
+        */
+        ~CScrollerTimer();
+
+    public: // New functions
+
+		/** 
+        * StartL
+        */
+		void StartL();
+
+		/** 
+        * RunL
+        */
+		void RunL();
+
+		/** 
+        * DoCancel
+        */
+		void DoCancel();
+
+		/** 
+        * RunError
+        */
+		TInt RunError ( TInt aError );
+
+    public: // Functions from base classes
+
+    protected:  // New functions
+        // None
+
+    protected:  // Functions from base classes
+        // None
+
+    private:
+
+        /** 
+        * C++ default constructor.
+        */
+        CScrollerTimer();
+
+        /**
+        * By default Symbian OS constructor is private.
+        */
+        void ConstructL( CConsoleMain* aMain );
+
+    public:   //Data
+        // None
+
+    protected:  // Data
+        // None
+
+    private:    // Data
+        CConsoleMain*     iMain;            // Pointer to main console
+		RTimer            iTimer;
+
+    public:     // Friend classes
+        // None
+
+    protected:  // Friend classes
+        // None
+
+    private:    // Friend classes
+        // None
+
+    };
+
+// DESCRIPTION
+// Console UI main class
+class CConsoleMain
+        :public CUIStoreIf
+    {
+    public: // Enumerations
+        // None
+
+    private: // Enumerations
+        enum TStartCasesOnStart
+            {
+            EStartCaseNo = 0,
+            EStartSingleCase,
+            EStartCasesSeq,
+            EStartCasesPar,
+            };
+
+    public:  // Constructors and destructor
+
+        /**
+        * NewL is first phase of two-phased constructor.
+        */
+        static CConsoleMain* NewL();
+
+        /**
+        * Start
+        */
+        TInt StartL();
+
+        /**
+        * Destructor of CConsoleMain.
+        */
+        ~CConsoleMain();
+
+
+    public: // New functions
+    
+    
+        /**
+        * Receives output update notification from CUIStore.
+        */
+        void Update( CStartedTestCase* aTestCase, 
+                     TInt aFlags );
+                                                                      
+        /**
+        * Function is called when test framework prints error.
+        */
+        void Error( TErrorNotification& aError );
+        
+        /**
+        * Function is called when testframework 
+        * wants to print a popup window.
+        */
+        TInt PopupMsg( const TDesC& aLine1, 
+                       const TDesC& aLine2, 
+                       TInt aTimeInSecs );
+        
+        /**
+        * Function is called when testframework 
+        * wants to print a popup window and 
+        * get the key pressed.
+        */
+        TInt PopupMsg( const TDesC& aLine1, 
+                       const TDesC& aLine2, 
+                       TInt aTimeInSecs,
+                       TKeyCode& aKey,
+                       TRequestStatus& aStatus );
+
+        /**
+        * Close instance.
+        */
+        void Close( TInt aHandle );
+                
+        /**
+        * Console UI panic function
+        */
+        static void Panic( TConsoleUIPanic aPanic );
+
+        /**
+        * Return pointer to console
+        */
+        
+        RConsole* GetConsole();
+
+        /**
+        * Called from timer to perform scrolling
+        */
+        void TimerUpdate();
+                
+        /**
+        * Process keystokes.
+        */
+        void KeyPressed();
+        
+        TKeyCode mapKey();
+
+        /**
+         * Displays no memory error message and closes ConsoleUI
+         */
+        void ExitWithNoMemoryErrorMessage();
+        
+        /**
+         * Returns MainMenu of console
+         */
+        CMainMenu* GetMainMenu();
+        
+        /**
+         * Get filter array for reading purpose
+         */
+        const RPointerArray<TDesC>& GetFilterArray(void) const;
+        
+        /**
+         * Set info about which index filter is used
+         */
+        void SetFilterIndex(TInt aFilterIndex);
+
+        /**
+         * Get info about which index filter is used
+         */
+        TInt GetFilterIndex(void);
+        
+    public: // Functions from base classes
+
+    protected:  // New functions
+        // None
+
+    protected:  // Functions from base classes
+        // None
+
+    private:
+
+        /** 
+        * C++ default constructor.
+        */
+        CConsoleMain();
+
+        /**
+        * By default Symbian OS constructor is private.
+        */
+        void ConstructL();
+
+
+        /**
+        * Print error from ConsoleUI.
+        */  
+        void UiError( const TDesC& aInfo );
+        
+        /**
+        * Process command line parameters.
+        */
+        void ProcessCommandlineL( TFileName& aIniFile );
+
+        /**
+        * Parse and search for module info and fill list of modules.
+        */
+        void ParseTestModulesL(CStifParser* aParser, CTestModuleList* aModuleList, const TDesC& aSectionStart, const TDesC& aSectionEnd);
+        
+    public:   //Data
+        RPointerArray<CMenuDialog> iDialogs;
+        
+        TConsoleKey key; 
+        
+    protected:  // Data
+        // None
+
+    private:    // Data
+        //CConsoleBase*       iConsole;       // Pointer to console
+        RConsole iConsole; // Pointer to console
+        TBool 				rConsoleCreated;
+
+        CMenu*              iMainMenu;      // Root menu
+        CMenu*              iCurrentMenu;   // Current menu
+
+        CScrollerTimer*     iScroller;
+        
+        CConsoleReader*     iReader;        // Console reader                   
+    
+        // For starting runnning multiple cases upon start
+        TStartCasesOnStart  iStartCases;
+        HBufC*              iTestModule;
+        HBufC*              iTestModuleIni;
+        HBufC*              iTestCaseFile;
+        TInt                iTestCaseNum;
+        HBufC*              iTestSetName;
+
+        // List of found modules (included from module given in parameters)
+        CTestModuleList*    iModuleList;
+        
+        // List of filters (for test cases title)
+        RPointerArray<TDesC> iFilters;
+        
+        // Chosen filter index
+        TInt iChosenFilterIndex;
+        
+    public:     // Friend classes
+        // None
+
+    protected:  // Friend classes
+        // None
+
+    private:    // Friend classes
+        // None
+
+    };
+    
+// DESCRIPTION
+// Read keystrokes from console
+class CConsoleReader
+    :public CActive
+    {
+    public: // Enumerations
+        // None
+
+    private: // Enumerations
+        // None
+
+    public:  // Constructors and destructor
+
+        /**
+        * NewL is first phase of two-phased constructor.
+        */
+        static CConsoleReader* NewL( CConsoleMain* aMain, 
+                                     //CConsoleBase* aConsole );
+                                     RConsole* aConsole );
+
+        /**
+        * Start
+        */
+        void StartL();
+
+        /**
+        * Destructor of CConsoleReader.
+        */
+        ~CConsoleReader();
+
+
+    public: // New functions
+
+    public: // Functions from base classes
+
+        /**
+        * RunL derived from CActive handles the completed requests.
+        */
+        void RunL();
+
+        /**
+        * DoCancel derived from CActive handles the Cancel
+        */
+        void DoCancel();
+        /**
+        * RunError derived from CActive handles errors from active object
+        */        
+        virtual TInt RunError(TInt aError);
+
+    protected:  // New functions
+        // None
+
+    protected:  // Functions from base classes
+        // None
+
+    private:
+
+        /** 
+        * C++ default constructor.
+        */
+        CConsoleReader( CConsoleMain* aMain, 
+                        //CConsoleBase* iConsole );
+                        RConsole* iConsole );
+
+        /**
+        * By default Symbian OS constructor is private.
+        */
+        void ConstructL();
+
+    public:   //Data
+        // None
+    
+    protected:  // Data
+        // None
+
+    private:    // Data
+        //CConsoleBase*   iConsole;   // Pointer to console
+        RConsole*   iConsole;   // Pointer to console
+        CConsoleMain*   iMain;      // Backpointer
+
+    public:     // Friend classes
+        // None
+
+    protected:  // Friend classes
+        // None
+
+    private:    // Friend classes
+        // None
+
+    };
+
+#endif // CONSOLEUI_H
+
+// End of File