uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomnotifier/inc/PslnModel.h
changeset 21 558113899881
parent 14 3320e4e6e8bb
child 22 75713bee6484
child 33 b3425bf29f82
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomnotifier/inc/PslnModel.h	Fri Apr 16 15:13:44 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,736 +0,0 @@
-/*
-* Copyright (c) 2004-2006 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:  Model class for Psln application.
-*
-*/
-
-
-#ifndef C_PSLNMODEL_H
-#define C_PSLNMODEL_H
-
-#include <downloadedcontenthandler.h>
-#include <AknServerApp.h>
-#include <aknssrvclient.h>
-#include <Babitflags.h>
-
-// Screen saver plugin capabilities
-enum TScPluginCaps
-    {
-    // Plugin has no special capabilities
-    EScpCapsNone = 0x00,
-    // Plugin implements the configure function
-    EScpCapsConfigure = 0x01,
-    // Plugin wants to be notified when selected as the active screensaver
-    EScpCapsSelectionNotification = 0x02,
-    // Plugin wants to be notified when preview command is selected
-    EScpCapsPreviewNotification = 0x04
-    };
-// Determines the type of skin list.
-enum TPslnSkinNameType
-    {
-    // list name
-    EPslnSkinNameTypeList = 0,
-    // title name
-    EPslnSkinNameTypeTitle
-    };
-    
-// What kind of scren saver activation it is.
-enum TPslnScreenSaverActivation
-    {
-    // Preview is activated.
-    EPslnScreenSaverPreviewActivation = 0,
-    // Preview is deactivated, and "real" screen saver is activated,
-    EPslnScreenSaverPreviewDeactivation,
-    // Real screen saver is activated straight away.
-    EPslnScreenSaverActivation
-    };
-    
-// Defines actions for a transtion effects
-enum TPslnTransitionEffectAction
-    {
-    // Used only for enum range validation 
-    EPslnTransitionEffectDummyFirst = -1,
-    
-    // -- begin of real values --
-    
-    // Start theme preview transtion effect
-    EPslnTransitionEffectStartPreview,    
-    // Start theme activation transtion effect
-    EPslnTransitionEffectStartThemeActivation,
-    // Stop the current transition effect
-    EPslnTransitionEffectStop,
-    
-    // -- end of real values --
-    
-    // Used only for enum range validation 
-    EPslnTransitionEffectDummyLast
-    };
-
-class MAknsSkinChangeObserver;
-class MPslnScreenSaverECOMObserver;
-class CEikonEnv;
-class CPslnSkinStore;
-class CRepository;
-class CPslnSkinEntry;
-class CPslnSkinNameEntry;
-class TAknsPkgID;
-class CPslnWallpaperUtilsLoader;
-class CPslnEcomListener;
-class CPslnBrowserLaunchLoader;
-
-// Maximum number of characters in Screen saver txt.
-const TInt KPslnMaxLengthOfScreenSaverText = 15;
-
-// CLASS DEFINITIONS
-
-// Inner class for skin name entry.
-class TPslnSkinNameEntry
-    {
-    public:
-        // Package ID.
-        TAknsPkgID iPid;
-        // Skin list name.
-        HBufC* iListName;
-        // Skin title name.
-        HBufC* iTitleName;
-    };
-
-// Auxiliary class for screen saver info.
-class CPslnScreenSaverInfo : public CBase
-    {
-    public:
-
-        // Symbian OS two-phased constructor.
-        static CPslnScreenSaverInfo* NewL() 
-            {
-            CPslnScreenSaverInfo* self = new (ELeave) CPslnScreenSaverInfo;
-            CleanupStack::PushL( self );
-            self->ConstructL();
-            CleanupStack::Pop( self );
-            return self;
-            };
-
-        // Destructor.
-         ~CPslnScreenSaverInfo()
-             {
-             delete iScreenSaverTxt;
-             iScreenSaverTxt = NULL;
-             delete iFileName;
-             iFileName = NULL;
-             }
-    private:
-
-        // Symbian OS second phase constructor.
-        void ConstructL()
-            {
-            iScreenSaverTxt = HBufC::NewL( KPslnMaxLengthOfScreenSaverText );
-            iFileName = HBufC::NewL( KMaxFileName );
-            };
-
-        // C++ default constructor.
-        CPslnScreenSaverInfo() 
-            {
-            iScreenSaverType = 1; // magic, default value
-            };
-
-    public:
-        // Filename for screensaver, if applicable.
-        HBufC* iFileName;
-        // Text, if any, shown in the screensaver.
-        HBufC* iScreenSaverTxt;
-        // Type of screen saver.
-        TInt iScreenSaverType;
-    };
-
-/**
-* CPslnModel is the model class of Psln app.
-* It provides functions to get and set setting values.
-*/
-NONSHARABLE_CLASS( CPslnModel ): 
-    public CBase, 
-    public MDownloadedContentHandler, 
-    public MAknServerAppExitObserver
-    {
-    public:
-
-        /**
-        * Two-phased constructor.
-        * @param aObserver observer for skin changes.
-        * @return new instance of CPslnModel.
-        */
-        IMPORT_C static CPslnModel* NewL( MAknsSkinChangeObserver* aObserver );
-
-        /**
-        * Deprecated.
-        * @return NULL.
-        */
-        IMPORT_C static CPslnModel* NewL();
-
-        /**
-        * Destructor
-        */
-        IMPORT_C ~CPslnModel();
-
-        /**
-        * Deprecated.
-        */
-        IMPORT_C TBool ActivateSkinL( const TDesC8& aPreviewType,
-            const TInt aActiveSkinIndex );
-
-        /**
-        * Activates screen saver as set by user.
-        * @param aItemIndex screensaver to activate.
-        * @param aActivationType screensaver activation type 
-        *       (activation/deactivation/preview).
-        * @return error code, or KErrNone on success.
-        */
-        IMPORT_C TInt ActivateScreenSaver( 
-            const TInt aItemIndex,
-            TPslnScreenSaverActivation aActivationType );
-
-        /**
-        * Disables skin notify changes.
-        *
-        * Creates and pushes internal class CPslnActivationGuard to the
-        * stack. When CPslnActivationGuard is constructed, SkinSrvSession's 
-        * DisableSkinChangeNotify is called, and thus skin notify changes are 
-        * disabled. When CPslnActivationGuard is popped from stack, 
-        * SkinSrvSession's EnableSkinChangeNotify is called automatically and thus,
-        * skin notify changes are again active. 
-        */
-        IMPORT_C void GuardActivationLC();
-
-        /**
-        * Starts skin download.
-        */
-        IMPORT_C void DownloadSkinL();
-
-        /**
-        * Sets Idle Wallpaper.
-        * @param aImagePath Path and filename of new wallpaper.
-        * @return error code, or KErrNone on success.
-        */
-        IMPORT_C TInt SetBackgroundImagePath( const TDesC& aImagePath );
-
-        /**
-        * Invokes screensaver plugins PluginFunction for e.g. configuring
-        * the screensaver.
-        * @param aIndex screensaver index to use.
-        * @param aFunction screensaver function to call.
-        */
-        IMPORT_C void InvokeSSPluginFunctionL( 
-            TInt aIndex, 
-            TScPluginCaps aFunction );
-
-        /**
-        * Updates skins from server, UI skins list, and screensaver array.
-        */
-        IMPORT_C void PerformCompleteUpdateL();
-
-        /**
-        * Creates screen saver array.
-        */
-        IMPORT_C void LoadScreensaverArrayL();
-
-        /**
-        * Gets the visible skin by its UI index.
-        * Ownership is not transferred.
-        * @param aIndex skin index.
-        * @return pointer to skin entry.
-        */
-        IMPORT_C CPslnSkinEntry* VisibleSkin( const TInt aIndex );
-
-        /**
-        * Gets the name of the skin.
-        * @param aIndex skin index to use.
-        * @param aSkinName localized skin name.
-        * @param aType which skin name to fetch (list/title name).
-        */
-        IMPORT_C void GetSkinNameByIndex( const TInt aIndex, TDes& aSkinName, 
-            const TPslnSkinNameType aType ) const;
-
-        /**
-        * Checks whether the current (or given) skin is active.
-        * @param aSkinIndex skin index to use.
-        * @return ETrue is given skin index is currently active skin.
-        */
-        IMPORT_C TBool IsActiveSkinSelected ( 
-            TInt aSkinIndex = KErrNotFound ) const;
-
-        /**
-        * Deprecated since 5.0.
-        */
-        IMPORT_C TAknSkinSrvSkinPackageLocation LocationOfSkin( const TInt aIndex );
-
-        /**
-        * Returns skin index of active skin.
-        * @return skin index of active skin.
-        */
-        IMPORT_C TInt ActiveSkinIndex() const;
-
-        /**
-        * Returns skin index of currently highlighted skin.
-        * @return skin index of highlighted skin.
-        */
-        IMPORT_C TInt CurrentSelectedSkinIndex() const;
-
-        /**
-        * Returns number of found skins.
-        * @return number of found skins.
-        */
-        IMPORT_C TInt NumberOfSkins() const;
-
-        /**
-        * Returns screensaver name array.
-        * @return screensaver name array.
-        */
-        IMPORT_C const MDesC16Array& ScreensaverNames() const;
-
-        /**
-        * Checks if selected screensaver has the requested capability
-        * @param aIndex index of screensaver in screensaver array.
-        * @param aCapability requested capability.
-        * @return ETrue if screensaver has the capability, EFalse otherwise.
-        */
-        IMPORT_C TBool ScreensaverHasCapability(
-            const TInt aIndex,
-            const TScPluginCaps aCapability ) const;
-
-        /**
-        * Returns protection type of skin.
-        * @param aIndex skin index to use.
-        * @return protection type of skin.
-        */
-        IMPORT_C TAknsSkinSrvSkinProtectionType ProtectionOfSkin(
-            const TInt aIndex );
-
-        /**
-        * Checks if the skin can be activated.
-        * @param aItemIndex skin index to use.
-        * @return ETrue, if skin can be activated.
-        */
-        IMPORT_C TBool IsValidForActivation( const TInt aItemIndex );
-
-        /**
-        * Checks if the skin can be previewed.
-        * @param aItemIndex skin index to use.
-        * @return ETrue, if skin can be previewed.
-        */
-        IMPORT_C TBool IsValidForPreview( const TInt aItemIndex );
-
-        /**
-        * Sets the given skin index as currently highlighted one.
-        * @param aCurrentSkinIndex skin index.
-        */
-        IMPORT_C void SetCurrentSelectedSkinIndex(
-            const TInt aCurrentSkinIndex );
-
-        /**
-        * Deprecated.
-        */
-        IMPORT_C TInt SetCurrentPropertyType( const TInt aProperty,
-            const TInt aCurItemIndex );
-
-        /**
-        * Gets currently active index of given property.
-        * @param aProperty property type - either wallpaper or screensaver.
-        * @return index of currently active property, or error code.
-        */
-        IMPORT_C TInt CurrentPropertyIndex( const TInt aProperty );
-
-        /**
-        * Enables (or disables) notifications from ECOM framework.
-        * When ECOM state is changed, PslnModel will check that it's 
-        * screensaver list is up to date. Changes in the list are 
-        * indicated to observer class.
-        * @param aActive if ETrue, notifications are subscribed, otherwise
-        *                subscription is terminated.
-        * @param aObserver observer for notifications.
-        */
-        IMPORT_C void EnableScreenSaverNotifications( 
-            const TBool& aActive, 
-            MPslnScreenSaverECOMObserver& aObserver );
-
-        /**
-        * Deprecated.
-        */
-        IMPORT_C TBool ActivateSkinL(
-            const TDesC8& aPreviewType,
-            const TInt aActiveSkinIndex, 
-            const TBool& aActivateFromPreview );
-            
-        /**
-        * Activates the entire skin.
-        * @since 3.2
-        * @param aActiveSkinIndex skin index of active skin.
-        * @return ETrue, if skin activation is successful.
-        */    
-        IMPORT_C TBool ActivateSkinL( const TInt aActiveSkinIndex );            
-
-        /**
-        * Gets currently active index of given property. 
-        * This is leaving version of CurrentPropertyIndex (see above).
-        * @param aProperty property type - either wallpaper or screensaver.
-        * @return index of currently active property, or error code.
-        */
-        IMPORT_C TInt CurrentPropertyIndexL( const TInt aProperty );
-
-        /**
-        * Sets transition effects enabled/disabled as given in the parameter.
-        * @param aEffectValue used as bitmask. Value of zero enables all effects, 
-        *                     and value of KMaxTInt disables all effects.
-        *                     All other values are considered as invalid.
-        * @return KErrArgument if aEffectValue is not zero or KMaxTInt.
-        *         Otherwise return value is what is given out by CRepository::Set().
-        * 
-        * @since 3.2
-        */
-        IMPORT_C TInt SetTransitionEffectsL( const TInt aEffectValue );
-
-        /**
-        * Gets current transition effect value.
-        * @return in error cases returns KErrNotFound, 
-        *         otherwise returns current repository value.
-        *        
-        * @since 3.2
-        */
-        IMPORT_C TInt GetTransitionEffectStateL();
-
-        /**
-        * Checks if the screensaver is installed on memory card.
-        * @param aScreensaverIndex screensaver index
-        * @return ETrue, if screensaver is installed to the memory card.
-        * 
-        * @since 3.2
-        */
-        IMPORT_C TBool IsScreenSaverOnMemoryCard( const TInt aIndex ) const;
-
-        /**
-        * Sets a given property (wallpaper or screensaver) as active.
-        * @param aProperty property type - either wallpaper or screensaver.
-        * @param aCurItemIndex item index that is currently active.
-        * @return KErrNone always.
-        *
-        * @since 3.2
-        */
-        IMPORT_C void SetCurrentPropertyTypeL( const TInt aProperty,
-            const TInt aCurItemIndex );
-
-        /**
-        * Checks if a skin with given index is on memory card,
-        * @param aIndex skin index from application.
-        * @return ETrue if skin is on memory card, EFalse otherwise.
-        *
-        * @since 5.0
-        */
-        IMPORT_C TBool IsThemeOnMemoryCard( const TInt& aIndex );
-
-        /**
-        * Checks if a skin with given index is on mass drive,
-        * @param aIndex skin index from application.
-        * @return ETrue if skin is on memory card, EFalse otherwise.
-        *
-        * @since 5.0
-        */
-        IMPORT_C TBool IsThemeOnMassDrive( const TInt& aIndex );
-
-        /**
-        * Checks if the screensaver is installed on mass drive.
-        * @param aScreensaverIndex screensaver index
-        * @return ETrue, if screensaver is installed to the mass drive.
-        * 
-        * @since 5.0
-        */
-        IMPORT_C TBool IsScreenSaverOnMassDrive( const TInt& aIndex ) const;
-
-        /**
-        * Returns skin server session.
-        * @return skin server session.
-        * 
-        * @since 3.2
-        */
-        IMPORT_C RAknsSrvSession SkinSrvSession() const;
-
-        /**
-        * Starts or stops transition effects.
-        * 
-        * @param aAction specifies actions for transition effects. 
-        * The value can be one of the values defined in TPslnTransitionEffectAction.
-        * @since 3.2
-        */
-        IMPORT_C void TransEffect(TInt aAction) const;
-
-    private:
-
-        /**
-        * Gets the separately localized name of the skin, if any.
-        * @param aPID package ID to use.
-        * @param aSkinName localized skin name.
-        * @param aType which skin name to fetch (list/title name).
-        * @return ETrue, if localized skin name was found.
-        */
-        TBool GetSeparatelyLocalizedSkinName(
-            const TAknsPkgID aPID, TDes& aSkinName,
-            const TPslnSkinNameType aType ) const;
-
-        /**
-        * From MDownloadedContentHandler.
-        *
-        * Handle downloaded content that has been saved to a file, 
-        * and return ETrue if it was handled successfully.
-        * @param aFileName File name with path.
-        * @param aParamList Generic parameter list.
-        * @param aContinue Output parameter: It must be ETrue if the caller wants 
-        *                  Browser not to terminate after the content is handled.
-        * @return ETrue if the implementer has processed the content. If it is 
-        *                  EFalse, BrowserLauncher opens that content in an 
-        *                  appropriate viewer application.
-        */
-        TBool HandleContentL(
-            const TDesC& aFilename,
-            const CAiwGenericParamList& aParamList,
-            TBool& aContinue );
-
-        /**
-        * From MDownloadedContentHandler.
-        * Reserved for future use.
-        * @param aAnyParam reserved for future use.
-        * @return reserved for future use.
-        */
-        virtual TAny* DownloadedContentHandlerReserved1( TAny* aAnyParam );
-
-        /**
-        * Default C++ contructor
-        */
-        CPslnModel();
-
-        /**
-        * Symbian default constructor
-        */
-        void ConstructL( MAknsSkinChangeObserver* aObserver );
-
-        /**
-        * Loads the separately localized skin names resource.
-        */
-        void LoadSkinNamesResourceL();
-
-        /**
-        * Finds screensavers from the given path and appends them to the
-        * screensaver list.
-        * @return ETrue if screensavers were found, EFalse otherwise.
-        */
-        TBool FindAndAppendScreensaversL();
-
-        /**
-        * Updates the skin information from the server and
-        * the list of visible skins.
-        */
-        void UpdateFromServerL();
-
-        /**
-        * Updates the list of visible skins.
-        */
-        void UpdateVisibleSkinListL();
-
-        /**
-        * Activates skin that is currently selected.
-        */
-        void SetActiveSkinL();
-
-        /**
-        * Launches query dialog for screensaver name.
-        * @return EFalse, if user cancelled the query.
-        */
-        TBool QueryAndSetScreensaverTextL();
-
-        /**
-        * From MAknServerAppExitObserver.
-        */
-        void HandleServerAppExit( TInt aReason );
-
-        /* Gets full name of skin. */
-        const TDesC& GetSkinFullName( const TInt aItemIndex );
-    
-        /* Gets the name of the skin. */
-        void GetSkinNameByPID( const TAknsPkgID aPID, TDes& aSkinName,
-            const TPslnSkinNameType aType ) const;
-
-        /* Activates default skin. */
-        void ActivateDefaultSkinL();
-
-        /* Gets default text for text screensaver. */
-        void GetDefaultTextToScreensaverL( TDes& aDisplayText );
-
-        /* Gets wallpaper item index. */
-        TInt GetWallPaperItemIndex();
-
-        /* Gets wallpaper item index. */
-        TInt GetScreenSaverItemIndexL();
-
-        /* Loads AknsWallpaperUtils to memory. */
-        void LoadWallpaperUtilsL();
-
-        /* Strips file path information from screensaver UID. */
-        TPtrC GetRealScreenSaverUid( const TInt aIndex );
-
-        /* Leaving version of ActivateScreenSaver. */
-        void ActivateScreenSaverL( 
-            const TInt aItemIndex, 
-            TPslnScreenSaverActivation aActivationType );
-
-        /* Loads browser launcher dll to memory. */
-        void LoadBrowserLaunchL();        
-
-    private: // Data
-
-        /*
-        * Skin store.
-        * Own.
-        */
-        CPslnSkinStore* iSkinStore;
-
-        /*
-        * Array of visible skins.
-        * Own.
-        */
-        RPointerArray<CPslnSkinNameEntry>* iVisibleSkinArr;
-
-        /*
-        * Skin server session.
-        */
-        RAknsSrvSession iSkinSrvSession;
-
-        /*
-        * CenRep object for skin keys.
-        * Own.
-        */
-        CRepository* iSkinsRepository;
-
-        /*
-        * CenRep object for screen saver keys.
-        * Own.
-        */
-        CRepository* iScreenSaverRepository;
-
-        /*
-        * CenRep object for themes application keys.
-        * Own.
-        */
-        CRepository* iThemesAppRepository;
-
-        /*
-        * Pointer to eikon environment. Stored to avoid repeated fetches.
-        * Not own.
-        */
-        CEikonEnv* iEikEnv;
-
-        /*
-        * Currently highlighted skin index.
-        */
-        TInt iCurrentSkinIndex;
-
-        /*
-        * Active skin index.
-        */
-        TInt iActiveSkinIndex;
-
-        /*
-        * Array of skin names.
-        */
-        RArray<TPslnSkinNameEntry> iSkinNames;
-
-        /*
-        * Array of screensaver filenames.
-        * Own.
-        */
-        CDesC16ArrayFlat* iScreensaverFilenameArr;
-
-        /*
-        * Array of screensaver names.
-        * Own.
-        */
-        CDesC16ArrayFlat* iScreensaverNameArr;
-
-        /*
-        * Array of screensaver capabilities.
-        */
-        RArray<TInt> iScreensaverCapsArr;
-
-        /*
-        * Active screensaver information.
-        * Own.
-        */
-        CPslnScreenSaverInfo* iScreenSaverInfo;
-
-        /*
-        * A handle to a dynamically loadable DLL.
-        */
-        RLibrary iWallpaperDll;
-
-        /*
-        * Loads Wallpaper Utils DLL dynamically to memory.
-        * Allows use of the DLL through this pointer, but only for
-        * methods implemented within the wrapper.
-        * Own.
-        */
-        CPslnWallpaperUtilsLoader* iWallpaperSetter;
-
-        /**
-         * Listens to ECOM for screensaver plugin changes.
-         * Own.
-         */
-        CPslnEcomListener* iScreenSaverListener;
-
-        /*
-        * A handle to a dynamically loadable DLL.
-        */
-        RLibrary iBrowserLaunchDll;
-
-        /*
-        * Loads Wallpaper Utils DLL dynamically to memory.
-        * Allows use of the DLL through this pointer, but only for
-        * methods implemented within the wrapper.
-        * Own.
-        */
-        CPslnBrowserLaunchLoader* iBrowserLauncher;
-
-        /*
-        * Internal state of the class.
-        */
-        enum TPslnModelState
-            {
-            // initial state
-            EPslnModelStateInitial = 0x00000000,
-            // wallpaper dll has been loaded
-            EPslnModelStateWallpaperDllLoaded = 0x00000001,
-            // has the default enable CR key for transition effects been read
-            EPslnModelStateTransitionEnableCRKeyRead = 0x00000002,
-            // is skin being previewed
-            EPslnModelStateSkinPreviewed = 0x00000004,
-            // browser launch dll has been loaded
-            EPslnModelStateBrowserLaunchDllLoaded = 0x00000008,
-            // localized skin names have been loaded
-            EPslnModelStateSkinNamesLoaded = 0x00000010
-            };
-        TBitFlags iInternalState;
-
-        /**
-        * Default mask for enable transition effects.
-        */
-        TInt iEffectsDefaultEnableMask;
-    };
-
-#endif // C_PSLNMODEL_H
-
-// End of File