diff -r 6b5204869ed5 -r 89c890c70182 psln/Inc/PslnUi.h --- a/psln/Inc/PslnUi.h Fri Jun 25 18:53:58 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,555 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Personalisation application UI class. -* -*/ - - -#ifndef C_PSLNUI_H -#define C_PSLNUI_H - -#include -#ifndef RD_CONTROL_PANEL -#include -#include -#endif //RD_CONTROL_PANEL -#include -#include - -class CAknNavigationControlContainer; -class CAknNavigationDecorator; -class MAknBackgroundProcess; -#ifndef RD_CONTROL_PANEL -class CAknTabGroup; -#endif //RD_CONTROL_PANEL -class CPslnMainView; -class CPslnPluginHandler; -class CPslnFWPluginInterface; -class CPslnIdleTaskCreateViews; -class CPslnModel; -class CPslnPropertySubscriber; -class CPslnGeneralThemeView; - - -/** - * 'AppUi' class. - * - * @since S60 v2.0 - */ -class CPslnUi : public CAknViewAppUi, - public MAknsSkinChangeObserver -#ifndef RD_CONTROL_PANEL - ,public MAknTabObserver -#endif //RD_CONTROL_PANEL - { - -public: - - /** - * C++ default constructor - */ - CPslnUi(); - - /** - * Symbian default constructor. - */ - void ConstructL(); - - /** - * Destructor. - */ - ~CPslnUi(); - - /** - * From CEikAppUi. - * Takes care of command handling. - * @param aCommand command to be handled - */ - void HandleCommandL( TInt aCommand ); - - /** - * From CEikAppUi. - * Handles a change to the application's resources - * which are shared across the environment. - * @param aType type of resources that have changed. - */ - void HandleResourceChangeL( TInt aType ); - - /** - * From CAknViewAppUi. - * Activates a specified application view, without passing any message. - * The function leaves if activation of the view fails. - * @param aViewId Identifier of the view to activate. - */ - void ActivateLocalViewL( TUid aViewId ); - - /** - * From MAknsSkinChangeObserver. - * Called by the skin server when skin content is changed and the - * connected client wants to be informed. - * - * @since 2.0 - */ - void SkinContentChanged(); - - /** - * From MAknsSkinChangeObserver. - * Called by the skin server to indicate that the current skin - * configuration has changed. - * - * @param aReason Reason code. - * - * @since 2.5 - */ - void SkinConfigurationChanged( - const TAknsSkinStatusConfigurationChangeReason aReason ); - - /** - * From MAknsSkinChangeObserver. - * Called by the skin server to indicate that the available - * skin packages have changed. - * - * @param aReason Reason code. - * - * @since 2.5 - */ - void SkinPackageChanged( - const TAknsSkinStatusPackageChangeReason aReason ); - - /** - * Returns pointer to Psln model which is owned by the AppUi. - * - * @return Psln model. - */ - CPslnModel* Model() const; - - /** - * Updates Tab index. If the parameters are not given, tab is set - * according to active selection in Main View. - * - * @param aMyId Uid of the active view. - * @param aMyTabIndex Index of the active tab. - * @since 3.1 - */ - void UpdateTabIndex( const TInt aMyId = KErrNotFound, - const TInt aMyTabIndex = KErrNotFound ); - - /** - * Creates the given view. - * @since 3.1 - * @param aViewUid Uid of view to be created. - */ - void CreateViewL( TUid aViewUid ); - - /** - * Returns application's CAknNavigationControlContainer. - * @since 3.1 - * @return CAknNavigationControlContainer. - */ - CAknNavigationControlContainer* NaviContainer() const; - - /** - * Returns tab group. - * @since 3.1 - * @return CAknNavigationDecorator. - */ - CAknNavigationDecorator* PslnTabGroup(); - - /** - * Returns pointer to ECOM plugin handler which is owned by the AppUi. - * @since 3.1 - * @return ECOM plugin handler. - */ - CPslnPluginHandler* PluginHandler() const; - - /** - * Add new view to Ui Class. - * @since 3.1 - * @param aNewView new view to add to Ui class. - */ - void AddNewViewL( CAknView* aNewView ); - - /** - * Indicate from caller class that Ui-class has now all the applicable views. - * @since 3.1 - */ - void AllViewsDone(); - - /** - * Handles errors when settings wallpapers. - * @param aError error code received from WallpaperUtils API. - */ - void HandleImageErrorsL( TInt aError ); - -#ifndef RD_CONTROL_PANEL - /** - * From MAknTabObserver. - * Takes care of tab handling. - * @since 3.1 - * @param aIndex tab to be handled - */ - void TabChangedL( TInt aIndex ); -#endif //RD_CONTROL_PANEL - - /** - * Create views when application is idle. - * @since 3.1 - */ - void LoadViewsWhenIdleL(); - - /** - * Constructs tab group, containing all static views and - * ECOM plugin views. - * @since 3.1 - */ - void ConstructTabGroupL(); - - /** - * Toggles screen blanker on/off. - * @param aToggleValue ETrue activates screen blanker; EFalse removes it. - * @param aStatusPaneVisible indicates if the blanker should cover the - * statuspane as well. This is irrelevant, when removing the blanker. - * @since 3.1 - */ - void ToggleScreenBlankerL( - const TBool& aToggleValue, - const TBool& aStatusPaneVisible, - const TBool& aRealAct = ETrue ); - - /** - * Indicates if the UI class has deployed the skin already and is ready to - * receive further skin activation related commands. - * @return ETrue when UI class can handle a new skin activation related - * command, otherwise EFalse, - */ - TBool IsReadyToHandleCommands(); - - /** - * Handles exit command correctly when leave occurs in application exit. - */ - void HandleCmdExitLeave(); - - /** - * Sets title back to default (application name). - */ - void SetTitleToDefaultL(); - - /** - * Binary flags to indicate if view is going to be created. - * Statuses are valid irregardless if view has, or has not - * been already created. These values cannot change dynamically. - * - */ - enum TPslnViewSupport - { - EPslnScreensaverView = 0x00000001, - EPslnWallpaperView = 0x00000002 - }; - - /** - * Gets view creation statuses as a bitmask. - * See TPslnViewSupport for optional views whose statuses - * can be inquiried. - * To check if a view is supported, check flag value. - * E.g. TBitflags views = ViewSupport(); - * if ( views.IsSet( EPslnScreensaverView ) ) - * { - * // Screensaver view is supported - * ... - * - * @return bitmask containing view support status. - */ - TBitFlags ViewSupport(); - - void SetDRMProtectedSkinInSkinList( - const TBool& aProtectedSkinInList ); - - /** - * USB Callback. - */ - static TInt USBCallBackL(TAny* aPtr); - - /** - * USB Attach State. - * @return ETrue when USB already attached, otherwise EFalse, - */ - TBool USBAttachState(); - -private: - - /** - * From CCoeAppUi. - * Handles events sent to the application by the window server. - * @param The event that occurred. - * @param The control that the event occurred in. - * (For key events this is the applications window group.) - */ - void HandleWsEventL( - const TWsEvent& aEvent, - CCoeControl* aDestination ); - - /** - * From CEikAppUi. - * Key event handler. - */ - virtual TKeyResponse HandleKeyEventL( - const TKeyEvent& aKeyEvent, - TEventCode aType ); - - /** - * @see SkinConfigurationChanged, same functionality, but - * leaving internal method. - */ - void SkinConfigurationChangedL( - const TAknsSkinStatusConfigurationChangeReason aReason ); - - /* Activates skin. */ - void ActivateSkinL(); - - /* Activates sounds in skin. */ - void ActivateSoundsL(); - - /* Downloads skin. */ - void DownloadSkinL(); - - /* Creates wait dialog and shows it */ - void CreateAndShowWaitWrapperL( - MAknBackgroundProcess& aTask, - const TInt aResourceID, const TDesC& aString, - const TBool aShowImmediately = ETrue ); - -#ifndef RD_CONTROL_PANEL - /* Adds given view plugin to TabGrp */ - void AddPluginToTabL( CPslnFWPluginInterface& aPlugin ); -#endif //!RD_CONTROL_PANEL - - /* Handles exit command. */ - void HandleCmdExitL(); - - /* Shows error note. */ - void ShowErrorNoteL( HBufC& aErrorBuf ) const; - - /** - * Callback when idle time occurs. - */ - static TInt DoCreateWaitNoteL( TAny* aAny ); - - /* Creates and shows wait note. */ - void DoCreateWaitNoteL(); - - /* Activates skin, cannot leave. */ - TInt ActivateSkin( const TInt aPslnStatus ); - -#ifndef RD_CONTROL_PANEL - /* Non-leaving version of AddPluginToTabL. */ - TInt AddPluginToTab( CPslnFWPluginInterface& aPlugin ); -#endif //!RD_CONTROL_PANEL - - /* Set internal state to post-skin-deployment.*/ - void SkinDeployedL(); - - /** - * Creates model instance. - * @since 3.1 - */ - void CreateModelL(); - - /** - * Callback when idle time occurs for skin activation. - */ - static TInt DoActivateSkinL( TAny* aAny ); - - /** - * Activates skin - */ - void DoActivateSkinL(); - -// INLINE METHODS - - /* Checks if internal state is on or off. */ - inline TBool GetStatus( TInt aInternalState ) const; - - /* Sets internal state on. Includes check that state is now off. */ - inline void SetStateOn( TInt aInternalState ); - - /* Sets internal state off. Includes check that state is now on. */ - inline void SetStateOff( TInt aInternalState ); - - /** - * Handle USB Callback. - */ - void HandleUSBCallBackL(); - -private: // data - - /** - * Psln Model. - * Own. - */ - CPslnModel* iModel; - - /** - * Navigation Pane. - * Not own. - */ - CAknNavigationControlContainer* iNaviPane; - - /** - * Frame for tabgroup. - * Own. - */ - CAknNavigationDecorator* iDecoratedTabGroup; - - /** - * Main view. - * Not own (application framework 'owns' this). - */ - CPslnMainView* iMainView; - - /** - * ECOM view plugin handler. - * Own. - */ - CPslnPluginHandler* iPluginHandler; - - /** - * Internal status of Psln. The specific states are: - * - * EPslnCreated - * Psln has this status when default constructor - * has been called. It's set off, once all views - * have been added. - * EPslnSoundActivationPending - * Psln has this status when skin server about to activate - * sounds included in skin package. It is set off when - * activation is finished. - * EPslnListUpdateNeeded - * Psln has this status when skin list needs updating. - * EPslnWallpaperViewCreated - * This state is active when wallpaper view has been created. - * It is initially off and set on when either view is loaded - * due to idle activity, or when needed. - * EPslnScreenSaverViewCreated - * This state is active when screensaver view has been created. - * It is initially off and set on when either view is loaded - * due to idle activity, or when needed. - * EPslnGeneralViewCreated - * This state is active when general theme view has been created. - * It is initially off and set on when either view is loaded - * due to idle activity, or when needed. - * EPslnSkinActivated - * User has opted to activate a skin. This state prevails until - * skin server indicates that skin changes has been deployed. - * EPslnTabGroupCreated - * This state is active when tab group has been created. - * It is initially off and set on when either any other view is - * activated (other than main) or with time due to idle activity. - * EPslnModelCreated - * This state is active when model has been created. - * It is initially off and set on when either any other view is - * activated (other than main) or with time due to idle activity. - * EPslnSkinChangeRequested - * This state is active when user has indicated that he/she would - * would like to change the active skin (i.e. preview or actual - * activation). It is initially off and is set on when user selects - * Apply for the skin from General Theme view. - * It is again set off when skin server indicates that skin was - * either activated, or there was an error. - * This differs from EPslnSkinActivated in that this is purely tied - * to user activity. - * EPslnViewSupportChecked - * This state indicates that the view support has been checked. - * It is set active once, the view support status has been checked - * for the first time. - * EPslnNoScreenSaverView - * This state indicates that there is no Screensaver view in the - * application. View statuses are set when ViewSupport is called. - * EPslnNoWallpaperView - * This state indicates that there is no Wallpaper view in the - * application. View statuses are set when ViewSupport is called. - */ - enum TPslnStatus { - EPslnCreated = 0x00000001, - EPslnProtectedSkinInList = 0x00000002, - //Not used = 0x00000004, - EPslnSoundActivationPending = 0x00000008, - EPslnListUpdateNeeded = 0x00000010, - EPslnWallpaperViewCreated = 0x00000020, - EPslnScreenSaverViewCreated = 0x00000040, - EPslnGeneralViewCreated = 0x00000080, - EPslnSkinActivated = 0x00000200, - EPslnTabGroupCreated = 0x00000400, - EPslnModelCreated = 0x00000800, - EPslnSkinChangeRequested = 0x00001000, - EPslnViewSupportChecked = 0x00002000, - EPslnNoScreenSaverView = 0x00004000, - EPslnNoWallpaperView = 0x00008000 - }; - TInt iPslnUiStatus; - -#ifndef RD_CONTROL_PANEL - /** - * Tab group. - * Not own - owned by iDecoratedTabGroup. - */ - CAknTabGroup* iTabGroup; -#endif //RD_CONTROL_PANEL - - /** - * Creates views when application is idle. - * Own. - */ - CPslnIdleTaskCreateViews* iIdleTask; - /** - * - */ - CIdle* iIdleActivateSkin; - - /** - * - */ - CIdle* iIdleUpdateSkin; - - /** - * USB Watch Property. - */ - RProperty iEnableUSBWatchProperty; - - - /** - * USB Watch Property Subscriber. - * Own. - */ - CPslnPropertySubscriber* iUSBWatchSubscriber; - - /** - * USB Attached. - */ - TBool iUSBAttached; - - /** - * General Theme view. - * Not own (application framework 'owns' this). - */ - CPslnGeneralThemeView* iGeneralThemeView; - - }; - -// Inline methods. -#include "pslnui.inl" - -#endif // C_PSLNUI_H - -// End of File -