mpx/tsrc/public/basic/common/testviewframework/inc/testbaseview.h
author hgs
Tue, 21 Sep 2010 11:25:55 -0500
changeset 62 b276843a15ba
permissions -rw-r--r--
201037
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
62
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  A console for menu selection
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#ifndef TESTBASEVIEW_H
hgs
parents:
diff changeset
    19
#define TESTBASEVIEW_H
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
// INCLUDE FILES
hgs
parents:
diff changeset
    22
#include <aknlists.h>
hgs
parents:
diff changeset
    23
#include <badesca.h>
hgs
parents:
diff changeset
    24
#include <e32cons.h>
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
// FORWARD DECLARATION
hgs
parents:
diff changeset
    27
template <class T> class RRefArray;
hgs
parents:
diff changeset
    28
class CConsoleMain;
hgs
parents:
diff changeset
    29
hgs
parents:
diff changeset
    30
// CLASS DECLARATION
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
/**
hgs
parents:
diff changeset
    33
*  Abstract View class - contains functions which must be derived
hgs
parents:
diff changeset
    34
*
hgs
parents:
diff changeset
    35
*  @lib TestViewFramework.lib
hgs
parents:
diff changeset
    36
*/
hgs
parents:
diff changeset
    37
class MTestBaseView
hgs
parents:
diff changeset
    38
    {
hgs
parents:
diff changeset
    39
    public:
hgs
parents:
diff changeset
    40
    
hgs
parents:
diff changeset
    41
        /**
hgs
parents:
diff changeset
    42
        * Initialize the view before display view
hgs
parents:
diff changeset
    43
        * NOTE: Must be derived
hgs
parents:
diff changeset
    44
        */
hgs
parents:
diff changeset
    45
        virtual void InitializeViewL() = 0;
hgs
parents:
diff changeset
    46
        
hgs
parents:
diff changeset
    47
        /**
hgs
parents:
diff changeset
    48
        * Cleanup the child view before deactivate/destroy view
hgs
parents:
diff changeset
    49
        * NOTE: Must be derived
hgs
parents:
diff changeset
    50
        */
hgs
parents:
diff changeset
    51
        virtual void CleanupViewL() = 0;
hgs
parents:
diff changeset
    52
        
hgs
parents:
diff changeset
    53
        /**
hgs
parents:
diff changeset
    54
        * Display this view 
hgs
parents:
diff changeset
    55
        * NOTE: Must be derived
hgs
parents:
diff changeset
    56
        */
hgs
parents:
diff changeset
    57
        virtual void DisplayViewL() = 0;
hgs
parents:
diff changeset
    58
        
hgs
parents:
diff changeset
    59
        /** 
hgs
parents:
diff changeset
    60
        * Process keypresses on this view - called by ConsoleMain
hgs
parents:
diff changeset
    61
        * @param aSelection, key pressed
hgs
parents:
diff changeset
    62
        * @param aContinue, whether to continue or stop scheduler
hgs
parents:
diff changeset
    63
        * NOTE: Must be derived
hgs
parents:
diff changeset
    64
        */
hgs
parents:
diff changeset
    65
        virtual void SelectL( TKeyCode aSelection, TBool& aContinue ) = 0;
hgs
parents:
diff changeset
    66
        
hgs
parents:
diff changeset
    67
        /** 
hgs
parents:
diff changeset
    68
        * Update display from timer - called by ConsoleMain
hgs
parents:
diff changeset
    69
        * NOTE: Must be derived
hgs
parents:
diff changeset
    70
        */
hgs
parents:
diff changeset
    71
        virtual void TimerUpdate() = 0;
hgs
parents:
diff changeset
    72
        
hgs
parents:
diff changeset
    73
    };
hgs
parents:
diff changeset
    74
hgs
parents:
diff changeset
    75
hgs
parents:
diff changeset
    76
/**
hgs
parents:
diff changeset
    77
*  View class - Console base
hgs
parents:
diff changeset
    78
*
hgs
parents:
diff changeset
    79
*  @lib TestViewFramework.lib
hgs
parents:
diff changeset
    80
*/
hgs
parents:
diff changeset
    81
class CTestBaseView :public CBase, public MTestBaseView
hgs
parents:
diff changeset
    82
    {
hgs
parents:
diff changeset
    83
    public:
hgs
parents:
diff changeset
    84
        /**
hgs
parents:
diff changeset
    85
        * Destructor
hgs
parents:
diff changeset
    86
        */
hgs
parents:
diff changeset
    87
        IMPORT_C virtual ~CTestBaseView();
hgs
parents:
diff changeset
    88
hgs
parents:
diff changeset
    89
        /** 
hgs
parents:
diff changeset
    90
        * Return menu name
hgs
parents:
diff changeset
    91
        * @return descriptor of current menu's name
hgs
parents:
diff changeset
    92
        */
hgs
parents:
diff changeset
    93
        IMPORT_C const TDesC& Name() const;
hgs
parents:
diff changeset
    94
hgs
parents:
diff changeset
    95
        /** 
hgs
parents:
diff changeset
    96
        * Set the menu name
hgs
parents:
diff changeset
    97
        * @param aName, menu name to be set
hgs
parents:
diff changeset
    98
        */
hgs
parents:
diff changeset
    99
        IMPORT_C void SetName( const TDesC& aName );
hgs
parents:
diff changeset
   100
hgs
parents:
diff changeset
   101
        /** 
hgs
parents:
diff changeset
   102
        * Set parent menu
hgs
parents:
diff changeset
   103
        * @param aMenu, parent menu of current menu
hgs
parents:
diff changeset
   104
        */
hgs
parents:
diff changeset
   105
        IMPORT_C void SetParent( CTestBaseView* aView );
hgs
parents:
diff changeset
   106
        
hgs
parents:
diff changeset
   107
        /**
hgs
parents:
diff changeset
   108
        * Get the parent view
hgs
parents:
diff changeset
   109
        * @return reference of parent view
hgs
parents:
diff changeset
   110
        */
hgs
parents:
diff changeset
   111
        IMPORT_C CTestBaseView* Parent();
hgs
parents:
diff changeset
   112
        
hgs
parents:
diff changeset
   113
        
hgs
parents:
diff changeset
   114
    protected:
hgs
parents:
diff changeset
   115
        /**
hgs
parents:
diff changeset
   116
        * Make sure DisplayViewBase() is call in the beginning
hgs
parents:
diff changeset
   117
        * of DisplayViewL() call
hgs
parents:
diff changeset
   118
        */
hgs
parents:
diff changeset
   119
        void DisplayViewBase()
hgs
parents:
diff changeset
   120
            { if(iChild) { CleanupViewL(); delete iChild; iChild = NULL; }};
hgs
parents:
diff changeset
   121
        
hgs
parents:
diff changeset
   122
        /**
hgs
parents:
diff changeset
   123
        * C++ default constructor
hgs
parents:
diff changeset
   124
        */
hgs
parents:
diff changeset
   125
        IMPORT_C CTestBaseView(CConsoleMain* aConsoleMain,
hgs
parents:
diff changeset
   126
                               CTestBaseView* aParent,
hgs
parents:
diff changeset
   127
                               const TDesC& aName);
hgs
parents:
diff changeset
   128
hgs
parents:
diff changeset
   129
        /**
hgs
parents:
diff changeset
   130
        * Signal CConsoleMain that a new child view is created
hgs
parents:
diff changeset
   131
        */
hgs
parents:
diff changeset
   132
        IMPORT_C void NextViewL(CTestBaseView* aChild);
hgs
parents:
diff changeset
   133
        
hgs
parents:
diff changeset
   134
        /**
hgs
parents:
diff changeset
   135
        * Signal CConsoleMain that current view is done, go back parent
hgs
parents:
diff changeset
   136
        */
hgs
parents:
diff changeset
   137
        IMPORT_C void CurrentViewDoneL();
hgs
parents:
diff changeset
   138
hgs
parents:
diff changeset
   139
    protected:  // Data
hgs
parents:
diff changeset
   140
        CConsoleBase*           iConsole;      // Pointer to console
hgs
parents:
diff changeset
   141
        CConsoleMain*           iConsoleMain;  // Pointer to console main
hgs
parents:
diff changeset
   142
        CTestBaseView*          iParent;       // Pointer to parent view
hgs
parents:
diff changeset
   143
        CTestBaseView*          iChild;         //Pointer to child view
hgs
parents:
diff changeset
   144
        TName                   iName;         // View name
hgs
parents:
diff changeset
   145
hgs
parents:
diff changeset
   146
    };
hgs
parents:
diff changeset
   147
hgs
parents:
diff changeset
   148
#endif  //TESTVIEW_H