idlefw/plugins/mcsplugin/publisher/inc/mcsplugindata.h
changeset 0 79c6a41cd166
child 11 bd874ee5e5e2
equal deleted inserted replaced
-1:000000000000 0:79c6a41cd166
       
     1 /*
       
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Plug-in data class
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #ifndef CMCSPLUGINDATA_H
       
    20 #define CMCSPLUGINDATA_H
       
    21 
       
    22 // INCLUDE FILES
       
    23 #include <e32base.h>
       
    24 #include <badesca.h>
       
    25 #include <mhomescreensettingsobserver.h>
       
    26 #include <hspluginsettings.h>
       
    27 #include <propertymap.h>
       
    28 
       
    29 class TMenuItem;
       
    30 class CMCSPluginEngine;
       
    31 class CMCSPluginWatcher;
       
    32 
       
    33 
       
    34 /**
       
    35  *  @ingroup group_mcsplugin
       
    36  *
       
    37  *  TMCData class
       
    38  *
       
    39  *  @since S60 v9.1
       
    40  */
       
    41 class TMCSData
       
    42     {
       
    43 public:
       
    44     /**
       
    45      * SetMenuItem
       
    46      * 
       
    47      * @param aMenuItem
       
    48      */
       
    49     void SetMenuItem( TMenuItem& aMenuItem );
       
    50 
       
    51     /**
       
    52      * MenuItem
       
    53      * 
       
    54      * @return TMenuItem
       
    55      */
       
    56     TMenuItem& MenuItem();
       
    57 
       
    58     /**
       
    59      * SetDirty
       
    60      * 
       
    61      * @param aDirty
       
    62      * @return TBool
       
    63      */
       
    64     void SetDirty( TBool aDirty );
       
    65 
       
    66     /**
       
    67      * IsDirty
       
    68      * 
       
    69      * @return TBool
       
    70      */
       
    71     TBool IsDirty() const;
       
    72 
       
    73 private:
       
    74     /**
       
    75      * iMenuItem
       
    76      */
       
    77     TMenuItem iMenuItem;
       
    78 
       
    79     /**
       
    80      * iDirty
       
    81      */
       
    82     TBool iDirty;
       
    83     };
       
    84 
       
    85 /**
       
    86  *  @ingroup group_mcsplugin
       
    87  *
       
    88  *  Plug-in data class
       
    89  *
       
    90  *  @since
       
    91  */
       
    92 class CMCSPluginData : public CBase,
       
    93     public HSPluginSettingsIf::MHomeScreenSettingsObserver
       
    94     {
       
    95 
       
    96 public:
       
    97 
       
    98     /**
       
    99     * Part of the two phased constuction
       
   100     *
       
   101     * @param aEngine
       
   102     * @param aInstanceUid
       
   103     * @return Pointer to the created CMCSPluginData object
       
   104     */
       
   105     static CMCSPluginData* NewL( CMCSPluginEngine& aEngine,
       
   106         const TDesC8& aInstanceUid );
       
   107 
       
   108     /**
       
   109     * Constructor
       
   110     *
       
   111     * @param aEngine
       
   112     * @param aInstanceUid
       
   113     * @return none
       
   114     */
       
   115     CMCSPluginData( CMCSPluginEngine& aEngine, const TDesC8& aInstanceUid );
       
   116 
       
   117     /**
       
   118     * Destructor
       
   119     *
       
   120     * @param none
       
   121     * @return none
       
   122     */
       
   123     ~CMCSPluginData();
       
   124 
       
   125     /**
       
   126      * DataItem
       
   127      * 
       
   128      * @param aIndex
       
   129      * @return TMCSData&
       
   130      */
       
   131     TMCSData& DataItemL( TInt aIndex );
       
   132 
       
   133     /**
       
   134      * ReplaceMenuItemL
       
   135      * 
       
   136      * @param aIndex
       
   137      * @param aMenuItem
       
   138      */
       
   139     void ReplaceMenuItemL( const TInt& aIndex, TMenuItem& aMenuItem );
       
   140 
       
   141     /**
       
   142      * SaveSettingsL
       
   143      * 
       
   144      * @param aIndex
       
   145      * @param aMenuItem
       
   146      */
       
   147     void SaveSettingsL( const TInt& aIndex, CMenuItem& aMenuItem );
       
   148 
       
   149     /**
       
   150      * DataCount
       
   151      * 
       
   152      * @return TInt
       
   153      */
       
   154     TInt DataCount(){ return iData.Count();};
       
   155 
       
   156     /**
       
   157      * UpdateDataL
       
   158      */
       
   159     void UpdateDataL();
       
   160 
       
   161     // From MHomeScreenSettingsObserver
       
   162     /**
       
   163      * SettingsChangedL
       
   164      * 
       
   165      * @param aEvent
       
   166      * @param aPluginName
       
   167      * @param aPluginUid
       
   168      * @param aPluginId
       
   169      * @return TInt
       
   170      */
       
   171     TInt SettingsChangedL( const TDesC8& aEvent,  const TDesC8& aPluginName,
       
   172                            const TDesC8& aPluginUid, const TDesC8& aPluginId );
       
   173 
       
   174 private:
       
   175 
       
   176     /**
       
   177     * Part of the two phased construction
       
   178     *
       
   179     * @param void
       
   180     * @return void
       
   181     */
       
   182     void ConstructL();
       
   183 
       
   184     /**
       
   185      * CreateMenuItemL
       
   186      * @param aProperties
       
   187      * @return TMenuItem
       
   188      */
       
   189     TMenuItem CreateMenuItemL(
       
   190         RPointerArray<HSPluginSettingsIf::CPropertyMap>& aProperties );
       
   191 
       
   192 private: // data
       
   193 
       
   194     // Menu items, which are defined in settings
       
   195     // Own
       
   196     RArray<TMCSData> iData;
       
   197 
       
   198     // Plugin settings
       
   199     HSPluginSettingsIf::CHomescreenSettings* iPluginSettings;
       
   200 
       
   201     // Reference to MCS plug-in engine
       
   202     CMCSPluginEngine& iEngine;
       
   203 
       
   204     // Reference to instance uid of HSPS widget
       
   205     const TDesC8& iInstanceUid;
       
   206     };
       
   207 
       
   208 #endif // CMCSPLUGINDATA_H