psln/Inc/PslnUi.h
changeset 37 89c890c70182
parent 34 6b5204869ed5
child 45 667edd0b8678
--- 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 <aknViewAppUi.h>
-#ifndef RD_CONTROL_PANEL
-#include <akntabgrp.h>
-#include <akntabobserver.h>
-#endif //RD_CONTROL_PANEL
-#include <AknsSrvClient.h>
-#include <e32property.h>
-
-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
-