diff -r 8bda91a87a00 -r 8ee96d21d9bf gsprofilesrv_plat/ftuwizardmodel_api/inc/ftuwizard.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gsprofilesrv_plat/ftuwizardmodel_api/inc/ftuwizard.h Tue Aug 31 15:29:50 2010 +0300 @@ -0,0 +1,245 @@ +/* +* 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: FtuWizard class definition +* +*/ + + +#ifndef FTUWIZARD_H +#define FTUWIZARD_H + +#include "ftuwizardmodellib.h" + +#include +#include +#include +#include +#include + +class QGraphicsWidget; + +/** + * @ingroup group_ftuwizardmodel + * @brief Represents a wizard plugin visualization information. + * + * FtuWizardSetting struct contains the information needed to construct the GUI in + * the FTU fw. + * + * @lib ?library + * @since S60 ?S60_version + */ + +typedef struct { + /** + * The default icon to be shown in table of contents UI component. + */ + QFileInfo mTocDefaultIcon; + /** + * The pressed icon to be shown in table of contents UI component. + */ + QFileInfo mTocPressedIcon; + /** + * The focussed icon to be shown in table of contents UI component. + */ + QFileInfo mTocFocussedIcon; + /** + * The text to be shown in table of contents UI component. + */ + QString mTocLabel; + /** + * Informs Framework whether a plugin is having any ftu view or not. + * It should be set to false by plugin if it has any FTU view to be shown + * when the plugin is activated. It should be set to true if plugin + * is invoking any service/wizard, when plugin is selected/activated. + */ + bool mNoViews; +} FtuWizardSetting; + +/** + * @ingroup group_ftuwizardmodel + * @brief Represents a wizard plugin in the framework. + * + * FtuWizard is an interface through which setting wizard plugin can be + * executed in the FTU fw. + * + * @lib ?library + * @since S60 ?S60_version + */ + +class FTUWIZARDMODEL_EXPORT FtuWizard : public QObject +{ + Q_OBJECT +public: + /** + * The reason why the FTU fw and the wizard plugin is being shut down. + */ + enum ShutdownReason {MemoryLow, GraphicsMemoryLow, NormalBoot}; + +public: + + /** + * Destructor. + * @since S60 ?S60_version. + */ + virtual ~FtuWizard(){} + + /** + * Called by the FTU fw during initialize cycle of the wizard, it is during + * this phase the wizard widget + * usually creates its initial view. + * Once the initialization is done, wizardInitialized signal must be + * emitted. + * @param cenrepOwnerId Id of the owner of Cenrep holding wizard completion Information. + * @param wizardIdx Index of the Cenrep key for a wizard. + * If wizard is invoking another application, it should provide cenrepOwnerId and wizardIdx + * to the application. Application should write 1 into the wizardIdx cenrep on completion. + * @since S60 ?S60_version. + */ + virtual void initializeWizard(qint32 cenrepOwnerId, int wizardIdx) = 0; + + /** + * Called by the FTU fw when the wizard becomes the current wizard. + * @since S60 ?S60_version. + */ + virtual void activateWizard() = 0; + + /** + * Called by the FTU fw when the wizard is no longer being displayed. + */ + virtual void deactivateWizard() = 0; + + /** + * Called by the FTU fw before the wizard destructor is called. + * @param reason The reason why the ftu fw is being killed. + * @return The mode how wizard plugin is shut down. + * true means the wizard can be deleted immediately. + * false means the wizard signals with shutdownDone when it can + * be released. + */ + virtual bool shutdownWizard(ShutdownReason reason) = 0; + + /** + * Called by the FTU fw to set the wizard size. + * @param geometry The rectangle allocated to this wizard. + */ + virtual void resizeWizard(const QRectF& geometry) = 0; + + /** + * This wizard setting values is queryed by the FTU fw to get the display + * properties of the wizard required to be shown in the FTU fw's table of + * contents view and menu strip (e.g the icon & name of the wizard). + * The information must be available once the plugin instance has been + * created. + * @return The plugin wizard gui settings. + */ + virtual const FtuWizardSetting& wizardSettings() = 0; + + /** + * Called by FTU fw when back button is clicked in the plugin view. + * In this method the wizard plugin can implement internally showing and + * hiding GUI elements if the plugin has multiple 'views'. + * @return true if back event is handled internally in wizard plugin + * false if the FTU fw is to handle the event. + */ + virtual bool handleBackEvent() = 0; + + /** + * Called by FTU fw to get the date when the settings have been saved. + * @return The date when wizard settings have been completed. + */ + virtual QDate wizardCompletedDate() = 0; + +protected: + + /** + * Constructor. + * @since S60 ?S60_version. + */ + FtuWizard(){} + + +signals: + /** + * Emit this signal to update the text of the info text widget. + * @param caller The calling wizard plugin instance. + * @param text The info text to be shown. + */ + void infoTextUpdated(FtuWizard *caller, QString text); + + /** + * Emit this signal notify the progress on wizard settings. + * @param caller The calling wizard plugin instance. + * @param showCompleteness True if the progress is being indicated on the + * UI. + * @param completenessPercentage The progress of the settings operation. + */ + void progressUpdated(FtuWizard *caller, bool showProgess, + int progressPercentage); + + /** + * Emit this signal when changing the view inside the wizard plugin. + * @param caller The calling wizard plugin instance. + * @param viewWidget The new plugin view widget to be shown. + */ + void viewChanged(FtuWizard *caller, QGraphicsWidget* viewWidget); + + /** + * Adds an over-lay widget on top of the current view, used to add an + * overlay animation on top of the current view + * @param caller The calling wizard plugin instance. + * @param overlay The overlay widget to be added. + */ + void overlayAdded(FtuWizard *caller, QGraphicsWidget* overlay); + + /** + * Removes the overlay widget added by addOverlay signal. + * @param caller The calling wizard plugin instance. + * @param overlay The overlay widget to be removed. + */ + void overlayRemoved(FtuWizard *caller, QGraphicsWidget* overlay); + + /** + * Emit this signal to indicate initialization is done. + * @param caller The calling wizard plugin instance. + * @param success True if succeeded, false otherwise. + */ + void wizardInitialized(FtuWizard *caller, bool success); + + /** + * Emit this signal to indicate that the wizard plugin can be deleted. + * Note that this signal does not need to be emitted if true is returned + * from shutdownWizard. + * @param caller The calling wizard plugin instance. + */ + void shutdownCompleted(FtuWizard *caller); + + /** + * Emit this signal to indicate that the wizard plugin wants a custom view menu to be shown. + * from shutdownWizard. + * @param caller The calling wizard plugin instance. + * @param menu The HbMenu instance that needs to be shown on the view + */ + void updateMainMenu(FtuWizard *caller, HbMenu * menu); + + /** + * Emit this signal to indicate that the wizard plugin wants to be deactivated. + * Wizard is deactivated and Table of Contents is shown by the application. + * @param caller The calling wizard plugin instance. + */ + void wizardDeactivated(FtuWizard *caller); + +}; + +#endif // FTUWIZARD_H +