diff -r ab513c8439db -r e8f4211554fb wlanutilities/wlanwizard/inc/wlanwizardpage.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wlanutilities/wlanwizard/inc/wlanwizardpage.h Mon May 24 21:11:39 2010 +0300 @@ -0,0 +1,202 @@ +/* + * Copyright (c) 2010 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: + * WLAN Wizard Plugin API: Interface for wizard pages. + * + */ + +#ifndef WLANWIZARDPAGE_H +#define WLANWIZARDPAGE_H + +// System includes + +// User includes + +// Forward declarations +class HbWidget; + +// External data types + +// Constants + +/*! + @addtogroup group_wlan_wizard_api_internal + @{ + */ + +/*! + Interface for wizard pages. + + Princibles of the interface, see description of the method for detailed + information. + - initializePage() is called at first to create the UI visualizatio + - showPage() is called to detect whether next button should be enabled. This + method is called every time before the current page is displayed. + - requiresStartOperation() is called to check if page needs timer protection. + This is mainly used for pages where are progress bar and some asyncronous + operation with network layer, which commands on success to progress to next + wizard page. + - startOperation() is called to start page operation, this is called if above + method returs true. + - nextId() is called when user presses next toolbar button or when page has + called WlanWizardHelper::nextPage() method, which is used with timer + protected pages. + - previousTriggered() is called when previous toolbar button is pressed. + - cancelTriggered() is called when cancel toolbar button is pressed. + + Wizard Page must implement all pure virtual methods + - initializePage() + - nextId() + + For other methods there is default implementation, which can be overwritten. + */ +class WlanWizardPage +{ +public: + /*! + Defines common page ids for wizard and page id pools for wizard plugins. + + Remember to update trace.properties file upon changes. + */ + enum PageIds { + //! No need to change the wizard page. + PageNone = 0, + //! Process settings. Start connection and runs ict + PageProcessSettings, + //! Generic Error note page + PageGenericError, + //! Starting value for WLAN wizard page ids. Defined by WLAN Wizard. + PageWlanStart = 0x1000, + //! Starting value for EAP wizard page ids. Defined by EAP Wizard. + PageEapStart = 0x2000, + //! Starting value for WPS wizard page ids. Defined by WPS Wizard. + PageWpsStart = 0x3000, + }; + +public: + + /*! + Creates a visualization of the wizard page and returns ownership of the + object to the caller. Wizard framework deletes the visualization at the + desctructor of WlanWizardPrivate implementation. WizardPage control + object can safely use the same pointer during the life time of the + control object. This method is called every time when moving to a new + page, not when user presses "previous" button. showPage() method is + called in both cases. + + @return pointer to a visualization of the page. + */ + virtual HbWidget* initializePage() = 0; + + /*! + This method is called, after a visualization is created with + initializePage() method, to detect whether next button should be enabled + or not. It is up to the policy of the page when next button should be + enabled. This method is called everytime before the current + active page is displayed. In other words this method is "aboutToShow()" + + Default implementation: wizard page is valid and next button is enabled. + + @return validity. + */ + virtual bool showPage() + { + return true; + }; + + /*! + If the wizard page requires timer protection and asyncronous time + lasting operation, return true. This is used in pages e.g. where + progressbar is shown. The whole point is to initialize the UI before + starting the operation, so that the progress bar is painted before the + operation takes place. + + In practise this means that if true is returned by this method. + - WlanWizardPage::startOperation() is called to start the page operation. + - 1.5sec timer is used to protect the page + - wizardPage MUST call WlanWizardHelper::nextPage() to trigger entry to + next wizard page. + + @return true if protection is needed. + */ + + virtual bool requiresStartOperation() + { + return false; + }; + + /*! + In case the wizard page needs timer protection to the page use this + method to start control operation of the page. This method will be called + after requiresStartOperation() if true is returned with different call + stack. + + See requiresStartOperation(), WlanWizardHelper::nextPage(). + */ + virtual void startOperation() {}; + + /*! + Returns id of next page. This method is called when end user has pressed + "next" toolbar button or WlanWizardHelper::nextPage() is called. + + In case the wizard page does not want to make any movement forwards + WlanWizardPage::PageNone MUST be returned. + + @param [out] removeFromStack return value to the caller, if this page + needs to be removed from the stack, which means that this page cannot be + accessible from the next page using "previous" toolbar button. + + @return page identifier of next wizard page + */ + virtual int nextId(bool &removeFromStack) const = 0; + + /*! + This method is called when "previous" button has been pressed. + + Default implementation: one page backwards + + @return how many steps should be gone backwards. + */ + virtual int previousTriggered() + { + return OneStepBackwards; + }; + + /*! + This method is called when "cancel" button has been pressed. + + Default implementation: No actions. + */ + virtual void cancelTriggered() {}; + +signals: + +public slots: + +protected: + //! default value for previousTriggered(), step one step. + static const int OneStepBackwards = 1; + +protected slots: + +private: + +private slots: + +private: // data +}; + +/*! @} */ + +#endif // WLANWIZARDPAGE_H