wlanutilities/wlanwizard/inc/wlanwizardpage.h
author hgs
Mon, 24 May 2010 21:11:39 +0300
changeset 31 e8f4211554fb
child 39 7b3e49e4608a
permissions -rw-r--r--
201021
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:
hgs
parents:
diff changeset
    67
    /*!
hgs
parents:
diff changeset
    68
       Defines common page ids for wizard and page id pools for wizard plugins.
hgs
parents:
diff changeset
    69
       
hgs
parents:
diff changeset
    70
       Remember to update trace.properties file upon changes.
hgs
parents:
diff changeset
    71
     */
hgs
parents:
diff changeset
    72
    enum PageIds {
hgs
parents:
diff changeset
    73
        //! No need to change the wizard page.
hgs
parents:
diff changeset
    74
        PageNone = 0,
hgs
parents:
diff changeset
    75
        //! Process settings. Start connection and runs ict
hgs
parents:
diff changeset
    76
        PageProcessSettings,
hgs
parents:
diff changeset
    77
        //! Generic Error note page
hgs
parents:
diff changeset
    78
        PageGenericError,
hgs
parents:
diff changeset
    79
        //! Starting value for WLAN wizard page ids. Defined by WLAN Wizard.
hgs
parents:
diff changeset
    80
        PageWlanStart = 0x1000,
hgs
parents:
diff changeset
    81
        //! Starting value for EAP wizard page ids. Defined by EAP Wizard.
hgs
parents:
diff changeset
    82
        PageEapStart = 0x2000,
hgs
parents:
diff changeset
    83
        //! Starting value for WPS wizard page ids. Defined by WPS Wizard.
hgs
parents:
diff changeset
    84
        PageWpsStart = 0x3000,
hgs
parents:
diff changeset
    85
    };
hgs
parents:
diff changeset
    86
hgs
parents:
diff changeset
    87
public:
hgs
parents:
diff changeset
    88
hgs
parents:
diff changeset
    89
    /*!
hgs
parents:
diff changeset
    90
       Creates a visualization of the wizard page and returns ownership of the
hgs
parents:
diff changeset
    91
       object to the caller. Wizard framework deletes the visualization at the
hgs
parents:
diff changeset
    92
       desctructor of WlanWizardPrivate implementation. WizardPage control
hgs
parents:
diff changeset
    93
       object can safely use the same pointer during the life time of the
hgs
parents:
diff changeset
    94
       control object. This method is called every time when moving to a new
hgs
parents:
diff changeset
    95
       page, not when user presses "previous" button. showPage() method is
hgs
parents:
diff changeset
    96
       called in both cases. 
hgs
parents:
diff changeset
    97
       
hgs
parents:
diff changeset
    98
       @return pointer to a visualization of the page.
hgs
parents:
diff changeset
    99
     */
hgs
parents:
diff changeset
   100
    virtual HbWidget* initializePage() = 0;
hgs
parents:
diff changeset
   101
hgs
parents:
diff changeset
   102
    /*!
hgs
parents:
diff changeset
   103
       This method is called, after a visualization is created with
hgs
parents:
diff changeset
   104
       initializePage() method, to detect whether next button should be enabled
hgs
parents:
diff changeset
   105
       or not. It is up to the policy of the page when next button should be
hgs
parents:
diff changeset
   106
       enabled. This method is called everytime before the current 
hgs
parents:
diff changeset
   107
       active page is displayed. In other words this method is "aboutToShow()"
hgs
parents:
diff changeset
   108
       
hgs
parents:
diff changeset
   109
       Default implementation: wizard page is valid and next button is enabled.
hgs
parents:
diff changeset
   110
       
hgs
parents:
diff changeset
   111
       @return validity.       
hgs
parents:
diff changeset
   112
     */
hgs
parents:
diff changeset
   113
    virtual bool showPage()
hgs
parents:
diff changeset
   114
    {
hgs
parents:
diff changeset
   115
        return true;
hgs
parents:
diff changeset
   116
    };
hgs
parents:
diff changeset
   117
hgs
parents:
diff changeset
   118
    /*!
hgs
parents:
diff changeset
   119
       If the wizard page requires timer protection and asyncronous time
hgs
parents:
diff changeset
   120
       lasting operation, return true. This is used in pages e.g. where
hgs
parents:
diff changeset
   121
       progressbar is shown. The whole point is to initialize the UI before
hgs
parents:
diff changeset
   122
       starting the operation, so that the progress bar is painted before the
hgs
parents:
diff changeset
   123
       operation takes place.
hgs
parents:
diff changeset
   124
       
hgs
parents:
diff changeset
   125
       In practise this means that if true is returned by this method.
hgs
parents:
diff changeset
   126
       - WlanWizardPage::startOperation() is called to start the page operation.
hgs
parents:
diff changeset
   127
       - 1.5sec timer is used to protect the page
hgs
parents:
diff changeset
   128
       - wizardPage MUST call WlanWizardHelper::nextPage() to trigger entry to
hgs
parents:
diff changeset
   129
         next wizard page.
hgs
parents:
diff changeset
   130
       
hgs
parents:
diff changeset
   131
       @return true if protection is needed.
hgs
parents:
diff changeset
   132
     */
hgs
parents:
diff changeset
   133
hgs
parents:
diff changeset
   134
    virtual bool requiresStartOperation()
hgs
parents:
diff changeset
   135
    {
hgs
parents:
diff changeset
   136
        return false;
hgs
parents:
diff changeset
   137
    };
hgs
parents:
diff changeset
   138
hgs
parents:
diff changeset
   139
    /*!
hgs
parents:
diff changeset
   140
       In case the wizard page needs timer protection to the page use this
hgs
parents:
diff changeset
   141
       method to start control operation of the page. This method will be called
hgs
parents:
diff changeset
   142
       after requiresStartOperation() if true is returned with different call
hgs
parents:
diff changeset
   143
       stack.
hgs
parents:
diff changeset
   144
       
hgs
parents:
diff changeset
   145
       See requiresStartOperation(), WlanWizardHelper::nextPage().
hgs
parents:
diff changeset
   146
     */
hgs
parents:
diff changeset
   147
    virtual void startOperation() {};
hgs
parents:
diff changeset
   148
hgs
parents:
diff changeset
   149
    /*!
hgs
parents:
diff changeset
   150
       Returns id of next page. This method is called when end user has pressed
hgs
parents:
diff changeset
   151
       "next" toolbar button or WlanWizardHelper::nextPage() is called.
hgs
parents:
diff changeset
   152
       
hgs
parents:
diff changeset
   153
       In case the wizard page does not want to make any movement forwards
hgs
parents:
diff changeset
   154
       WlanWizardPage::PageNone MUST be returned.
hgs
parents:
diff changeset
   155
       
hgs
parents:
diff changeset
   156
       @param [out] removeFromStack return value to the caller, if this page
hgs
parents:
diff changeset
   157
       needs to be removed from the stack, which means that this page cannot be
hgs
parents:
diff changeset
   158
       accessible from the next page using "previous" toolbar button. 
hgs
parents:
diff changeset
   159
       
hgs
parents:
diff changeset
   160
       @return page identifier of next wizard page
hgs
parents:
diff changeset
   161
     */
hgs
parents:
diff changeset
   162
    virtual int nextId(bool &removeFromStack) const = 0;
hgs
parents:
diff changeset
   163
hgs
parents:
diff changeset
   164
    /*!
hgs
parents:
diff changeset
   165
       This method is called when "previous" button has been pressed.
hgs
parents:
diff changeset
   166
     
hgs
parents:
diff changeset
   167
       Default implementation: one page backwards
hgs
parents:
diff changeset
   168
       
hgs
parents:
diff changeset
   169
       @return how many steps should be gone backwards. 
hgs
parents:
diff changeset
   170
     */
hgs
parents:
diff changeset
   171
    virtual int previousTriggered()
hgs
parents:
diff changeset
   172
    {
hgs
parents:
diff changeset
   173
        return OneStepBackwards;
hgs
parents:
diff changeset
   174
    };
hgs
parents:
diff changeset
   175
hgs
parents:
diff changeset
   176
    /*!
hgs
parents:
diff changeset
   177
       This method is called when "cancel" button has been pressed.
hgs
parents:
diff changeset
   178
       
hgs
parents:
diff changeset
   179
       Default implementation: No actions.
hgs
parents:
diff changeset
   180
     */
hgs
parents:
diff changeset
   181
    virtual void cancelTriggered() {};
hgs
parents:
diff changeset
   182
    
hgs
parents:
diff changeset
   183
signals:
hgs
parents:
diff changeset
   184
    
hgs
parents:
diff changeset
   185
public slots:
hgs
parents:
diff changeset
   186
    
hgs
parents:
diff changeset
   187
protected:
hgs
parents:
diff changeset
   188
    //! default value for previousTriggered(), step one step.
hgs
parents:
diff changeset
   189
    static const int OneStepBackwards = 1;
hgs
parents:
diff changeset
   190
    
hgs
parents:
diff changeset
   191
protected slots:
hgs
parents:
diff changeset
   192
hgs
parents:
diff changeset
   193
private:
hgs
parents:
diff changeset
   194
hgs
parents:
diff changeset
   195
private slots:
hgs
parents:
diff changeset
   196
hgs
parents:
diff changeset
   197
private: // data
hgs
parents:
diff changeset
   198
};
hgs
parents:
diff changeset
   199
hgs
parents:
diff changeset
   200
/*! @} */
hgs
parents:
diff changeset
   201
hgs
parents:
diff changeset
   202
#endif // WLANWIZARDPAGE_H