wlanutilities/wlanwizard/inc/wlanwizardpage.h
author hgs
Thu, 24 Jun 2010 10:49:51 +0300
changeset 39 7b3e49e4608a
parent 31 e8f4211554fb
permissions -rw-r--r--
201025
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
31
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
 * Copyright (c) 2010 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: 
hgs
parents:
diff changeset
    15
 *   WLAN Wizard Plugin API: Interface for wizard pages.
hgs
parents:
diff changeset
    16
 *
hgs
parents:
diff changeset
    17
 */
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
#ifndef WLANWIZARDPAGE_H
hgs
parents:
diff changeset
    20
#define WLANWIZARDPAGE_H
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
// System includes
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
// User includes
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
// Forward declarations
hgs
parents:
diff changeset
    27
class HbWidget;
hgs
parents:
diff changeset
    28
hgs
parents:
diff changeset
    29
// External data types
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
// Constants
hgs
parents:
diff changeset
    32
hgs
parents:
diff changeset
    33
/*!
hgs
parents:
diff changeset
    34
   @addtogroup group_wlan_wizard_api_internal
hgs
parents:
diff changeset
    35
   @{
hgs
parents:
diff changeset
    36
 */
hgs
parents:
diff changeset
    37
hgs
parents:
diff changeset
    38
/*!
hgs
parents:
diff changeset
    39
   Interface for wizard pages.
hgs
parents:
diff changeset
    40
   
hgs
parents:
diff changeset
    41
   Princibles of the interface, see description of the method for detailed
hgs
parents:
diff changeset
    42
   information.
hgs
parents:
diff changeset
    43
   - initializePage() is called at first to create the UI visualizatio
hgs
parents:
diff changeset
    44
   - showPage() is called to detect whether next button should be enabled. This 
hgs
parents:
diff changeset
    45
     method is called every time before the current page is displayed.
hgs
parents:
diff changeset
    46
   - requiresStartOperation() is called to check if page needs timer protection.
hgs
parents:
diff changeset
    47
     This is mainly used for pages where are progress bar and some asyncronous 
hgs
parents:
diff changeset
    48
     operation with network layer, which commands on success to progress to next
hgs
parents:
diff changeset
    49
     wizard page.
hgs
parents:
diff changeset
    50
   - startOperation() is called to start page operation, this is called if above 
hgs
parents:
diff changeset
    51
     method returs true.
hgs
parents:
diff changeset
    52
   - nextId() is called when user presses next toolbar button or when page has
hgs
parents:
diff changeset
    53
     called WlanWizardHelper::nextPage() method, which is used with timer
hgs
parents:
diff changeset
    54
     protected pages.
hgs
parents:
diff changeset
    55
   - previousTriggered() is called when previous toolbar button is pressed.
hgs
parents:
diff changeset
    56
   - cancelTriggered() is called when cancel toolbar button is pressed.
hgs
parents:
diff changeset
    57
   
hgs
parents:
diff changeset
    58
   Wizard Page must implement all pure virtual methods
hgs
parents:
diff changeset
    59
   - initializePage()
hgs
parents:
diff changeset
    60
   - nextId()
hgs
parents:
diff changeset
    61
   
hgs
parents:
diff changeset
    62
   For other methods there is default implementation, which can be overwritten.
hgs
parents:
diff changeset
    63
 */
hgs
parents:
diff changeset
    64
class WlanWizardPage
hgs
parents:
diff changeset
    65
{
hgs
parents:
diff changeset
    66
public:
39
hgs
parents: 31
diff changeset
    67
    //! default value for previousTriggered(), step one step.
hgs
parents: 31
diff changeset
    68
    static const int OneStepBackwards = 1;
hgs
parents: 31
diff changeset
    69
    static const int SingleResult = 1;
hgs
parents: 31
diff changeset
    70
    
31
hgs
parents:
diff changeset
    71
    /*!
hgs
parents:
diff changeset
    72
       Defines common page ids for wizard and page id pools for wizard plugins.
hgs
parents:
diff changeset
    73
       
hgs
parents:
diff changeset
    74
       Remember to update trace.properties file upon changes.
hgs
parents:
diff changeset
    75
     */
hgs
parents:
diff changeset
    76
    enum PageIds {
hgs
parents:
diff changeset
    77
        //! No need to change the wizard page.
hgs
parents:
diff changeset
    78
        PageNone = 0,
hgs
parents:
diff changeset
    79
        //! Process settings. Start connection and runs ict
hgs
parents:
diff changeset
    80
        PageProcessSettings,
hgs
parents:
diff changeset
    81
        //! Generic Error note page
hgs
parents:
diff changeset
    82
        PageGenericError,
hgs
parents:
diff changeset
    83
        //! Starting value for WLAN wizard page ids. Defined by WLAN Wizard.
hgs
parents:
diff changeset
    84
        PageWlanStart = 0x1000,
hgs
parents:
diff changeset
    85
        //! Starting value for EAP wizard page ids. Defined by EAP Wizard.
hgs
parents:
diff changeset
    86
        PageEapStart = 0x2000,
hgs
parents:
diff changeset
    87
        //! Starting value for WPS wizard page ids. Defined by WPS Wizard.
hgs
parents:
diff changeset
    88
        PageWpsStart = 0x3000,
hgs
parents:
diff changeset
    89
    };
hgs
parents:
diff changeset
    90
hgs
parents:
diff changeset
    91
public:
hgs
parents:
diff changeset
    92
hgs
parents:
diff changeset
    93
    /*!
hgs
parents:
diff changeset
    94
       Creates a visualization of the wizard page and returns ownership of the
hgs
parents:
diff changeset
    95
       object to the caller. Wizard framework deletes the visualization at the
hgs
parents:
diff changeset
    96
       desctructor of WlanWizardPrivate implementation. WizardPage control
hgs
parents:
diff changeset
    97
       object can safely use the same pointer during the life time of the
hgs
parents:
diff changeset
    98
       control object. This method is called every time when moving to a new
hgs
parents:
diff changeset
    99
       page, not when user presses "previous" button. showPage() method is
hgs
parents:
diff changeset
   100
       called in both cases. 
hgs
parents:
diff changeset
   101
       
hgs
parents:
diff changeset
   102
       @return pointer to a visualization of the page.
hgs
parents:
diff changeset
   103
     */
hgs
parents:
diff changeset
   104
    virtual HbWidget* initializePage() = 0;
hgs
parents:
diff changeset
   105
hgs
parents:
diff changeset
   106
    /*!
hgs
parents:
diff changeset
   107
       This method is called, after a visualization is created with
hgs
parents:
diff changeset
   108
       initializePage() method, to detect whether next button should be enabled
hgs
parents:
diff changeset
   109
       or not. It is up to the policy of the page when next button should be
hgs
parents:
diff changeset
   110
       enabled. This method is called everytime before the current 
hgs
parents:
diff changeset
   111
       active page is displayed. In other words this method is "aboutToShow()"
hgs
parents:
diff changeset
   112
       
hgs
parents:
diff changeset
   113
       Default implementation: wizard page is valid and next button is enabled.
hgs
parents:
diff changeset
   114
       
hgs
parents:
diff changeset
   115
       @return validity.       
hgs
parents:
diff changeset
   116
     */
hgs
parents:
diff changeset
   117
    virtual bool showPage()
hgs
parents:
diff changeset
   118
    {
hgs
parents:
diff changeset
   119
        return true;
hgs
parents:
diff changeset
   120
    };
hgs
parents:
diff changeset
   121
hgs
parents:
diff changeset
   122
    /*!
hgs
parents:
diff changeset
   123
       If the wizard page requires timer protection and asyncronous time
hgs
parents:
diff changeset
   124
       lasting operation, return true. This is used in pages e.g. where
hgs
parents:
diff changeset
   125
       progressbar is shown. The whole point is to initialize the UI before
hgs
parents:
diff changeset
   126
       starting the operation, so that the progress bar is painted before the
hgs
parents:
diff changeset
   127
       operation takes place.
hgs
parents:
diff changeset
   128
       
hgs
parents:
diff changeset
   129
       In practise this means that if true is returned by this method.
hgs
parents:
diff changeset
   130
       - WlanWizardPage::startOperation() is called to start the page operation.
hgs
parents:
diff changeset
   131
       - 1.5sec timer is used to protect the page
hgs
parents:
diff changeset
   132
       - wizardPage MUST call WlanWizardHelper::nextPage() to trigger entry to
hgs
parents:
diff changeset
   133
         next wizard page.
hgs
parents:
diff changeset
   134
       
hgs
parents:
diff changeset
   135
       @return true if protection is needed.
hgs
parents:
diff changeset
   136
     */
hgs
parents:
diff changeset
   137
hgs
parents:
diff changeset
   138
    virtual bool requiresStartOperation()
hgs
parents:
diff changeset
   139
    {
hgs
parents:
diff changeset
   140
        return false;
hgs
parents:
diff changeset
   141
    };
hgs
parents:
diff changeset
   142
hgs
parents:
diff changeset
   143
    /*!
hgs
parents:
diff changeset
   144
       In case the wizard page needs timer protection to the page use this
hgs
parents:
diff changeset
   145
       method to start control operation of the page. This method will be called
hgs
parents:
diff changeset
   146
       after requiresStartOperation() if true is returned with different call
hgs
parents:
diff changeset
   147
       stack.
hgs
parents:
diff changeset
   148
       
hgs
parents:
diff changeset
   149
       See requiresStartOperation(), WlanWizardHelper::nextPage().
hgs
parents:
diff changeset
   150
     */
hgs
parents:
diff changeset
   151
    virtual void startOperation() {};
hgs
parents:
diff changeset
   152
hgs
parents:
diff changeset
   153
    /*!
hgs
parents:
diff changeset
   154
       Returns id of next page. This method is called when end user has pressed
hgs
parents:
diff changeset
   155
       "next" toolbar button or WlanWizardHelper::nextPage() is called.
hgs
parents:
diff changeset
   156
       
hgs
parents:
diff changeset
   157
       In case the wizard page does not want to make any movement forwards
hgs
parents:
diff changeset
   158
       WlanWizardPage::PageNone MUST be returned.
hgs
parents:
diff changeset
   159
       
39
hgs
parents: 31
diff changeset
   160
       Default implementation: Page ID WlanWizardPage::PageNone is retuned and
hgs
parents: 31
diff changeset
   161
       removeFromStack is false.
hgs
parents: 31
diff changeset
   162
       
31
hgs
parents:
diff changeset
   163
       @param [out] removeFromStack return value to the caller, if this page
hgs
parents:
diff changeset
   164
       needs to be removed from the stack, which means that this page cannot be
hgs
parents:
diff changeset
   165
       accessible from the next page using "previous" toolbar button. 
hgs
parents:
diff changeset
   166
       
hgs
parents:
diff changeset
   167
       @return page identifier of next wizard page
hgs
parents:
diff changeset
   168
     */
39
hgs
parents: 31
diff changeset
   169
    virtual int nextId(bool &removeFromStack) const
hgs
parents: 31
diff changeset
   170
    {
hgs
parents: 31
diff changeset
   171
        removeFromStack = false;
hgs
parents: 31
diff changeset
   172
        return WlanWizardPage::PageNone;
hgs
parents: 31
diff changeset
   173
    }
31
hgs
parents:
diff changeset
   174
hgs
parents:
diff changeset
   175
    /*!
hgs
parents:
diff changeset
   176
       This method is called when "previous" button has been pressed.
hgs
parents:
diff changeset
   177
     
hgs
parents:
diff changeset
   178
       Default implementation: one page backwards
hgs
parents:
diff changeset
   179
       
hgs
parents:
diff changeset
   180
       @return how many steps should be gone backwards. 
hgs
parents:
diff changeset
   181
     */
hgs
parents:
diff changeset
   182
    virtual int previousTriggered()
hgs
parents:
diff changeset
   183
    {
hgs
parents:
diff changeset
   184
        return OneStepBackwards;
hgs
parents:
diff changeset
   185
    };
hgs
parents:
diff changeset
   186
hgs
parents:
diff changeset
   187
    /*!
hgs
parents:
diff changeset
   188
       This method is called when "cancel" button has been pressed.
hgs
parents:
diff changeset
   189
       
hgs
parents:
diff changeset
   190
       Default implementation: No actions.
hgs
parents:
diff changeset
   191
     */
hgs
parents:
diff changeset
   192
    virtual void cancelTriggered() {};
hgs
parents:
diff changeset
   193
    
hgs
parents:
diff changeset
   194
signals:
hgs
parents:
diff changeset
   195
    
hgs
parents:
diff changeset
   196
public slots:
hgs
parents:
diff changeset
   197
    
hgs
parents:
diff changeset
   198
protected:
hgs
parents:
diff changeset
   199
    
hgs
parents:
diff changeset
   200
protected slots:
hgs
parents:
diff changeset
   201
hgs
parents:
diff changeset
   202
private:
hgs
parents:
diff changeset
   203
hgs
parents:
diff changeset
   204
private slots:
hgs
parents:
diff changeset
   205
hgs
parents:
diff changeset
   206
private: // data
hgs
parents:
diff changeset
   207
};
hgs
parents:
diff changeset
   208
hgs
parents:
diff changeset
   209
/*! @} */
hgs
parents:
diff changeset
   210
hgs
parents:
diff changeset
   211
#endif // WLANWIZARDPAGE_H