Changeset 23814 in webkit


Ignore:
Timestamp:
Jun 27, 2007 8:00:02 AM (17 years ago)
Author:
zbujtas
Message:

rathnasa, reviewed by <zbujtas@gmail.com>

DESC: Widget Menu API needs refinement
http://bugs.webkit.org/show_bug.cgi?id=14389

Location:
S60/trunk/WebKit
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • S60/trunk/WebKit/BrowserView/inc/WidgetExtension.h

    r23794 r23814  
    190190        * @param ID of the command to issue when the menu item is selected
    191191        * @param command ID of the parent menu item
    192         * @return none
    193         */
    194         void AddOptionsMenuItem( const TDesC& aText, TInt aCmdId, TInt aParentCmdId, void* obj );
     192        * @return Error code
     193        */
     194        TInt AddOptionsMenuItem( const TDesC& aText, TInt aCmdId, TInt aParentCmdId, void* obj );
    195195
    196196        /**
     
    225225        * @param command ID of the new menu item
    226226        * @param dimmed status
    227         * @return none
    228         */
    229         void ReplaceMenuItem( TInt oldCmdId, const TDesC& newText,
     227        * @return Error code
     228        */
     229        TInt ReplaceMenuItem( TInt oldCmdId, const TDesC& newText,
    230230            TInt newCmdId, TInt newDimmed );
    231231
     
    571571        * @param parent menu item
    572572        * @param menu item to be inserted
    573         * @return TBool
    574         */
    575         TBool Append( CMenuItem* root, CMenuItem* item );
     573        * @return error code
     574        */
     575        TInt Append( CMenuItem* root, CMenuItem* item );
    576576
    577577        /*
  • S60/trunk/WebKit/BrowserView/inc/WidgetPreferences.h

    r21101 r23814  
    5858
    5959// CLASS DECLARATION
     60
     61/**
     62*  CPrefElement
     63*
     64*  @lib widgetengine.dll
     65*  @since 3.2
     66*/
     67class CPrefElement : public CBase
     68    {
     69public :
     70    /**
     71    * Constructor.
     72    */
     73    CPrefElement();
     74   
     75    /**
     76    * Destructor.
     77    */
     78    ~CPrefElement();
     79   
     80    /**
     81    * SetValueL
     82    * Set value for a preference
     83    * @param const TDesC& aValue - The value to be set
     84    * @return none
     85    */
     86    void SetValueL( const TDesC& aValue );
     87   
     88    /**
     89    * SetValueSize
     90    * Set length of value
     91    * @param const TInt aSize - The length to be set
     92    * @return none
     93    */
     94    void SetValueSize( const TInt aSize )
     95        {
     96        iValueSize = aSize;
     97        }
     98       
     99    /**
     100    * GetValue
     101    * Get value for a preference
     102    * @param none
     103    * @return const TDesC& - value for the preference
     104    */     
     105    const TDesC& Value() const
     106        {
     107        if ( iValue )
     108            return *iValue;
     109        else
     110            return KNullDesC();
     111        }
     112       
     113    /**
     114    * GetValueSize
     115    * Get length of value
     116    * @param none
     117    * @return TInt - length of value for the preference
     118    */     
     119    TInt ValueSize() const
     120        {
     121        return iValueSize;
     122        }
     123       
     124private :
     125    HBufC*  iValue;     // value of the preference
     126    TInt    iValueSize; // length of the value
     127    };
     128
     129
    60130/**
    61131*  CWidgetPreferences
     
    68138
    69139    public:
    70         static CWidgetPreferences* NewL(CWidgetExtension& aWidgetExtension);
    71         static CWidgetPreferences* NewLC(CWidgetExtension& aWidgetExtension);
     140        /**
     141        * Two-phased constructor.
     142        */
     143        static CWidgetPreferences* NewL( CWidgetExtension& aWidgetExtension );
     144        static CWidgetPreferences* NewLC( CWidgetExtension& aWidgetExtension );
     145       
     146        /**
     147        * Destructor.
     148        */
    72149        ~CWidgetPreferences();
    73150
    74151    public:
     152        /**
     153        * Load preferences from persistent storage
     154        */
    75155        void LoadL();
     156       
     157        /**
     158        * Save preferences to persistent storage
     159        */
    76160        void SaveL();
    77         TInt PreferenceL(const TDesC& aName, TPtrC& aValue);
    78         void SetPreferenceL(const TDesC& aName, const TDesC& aValue);
     161       
     162        /**
     163        * Get preference for a particular key
     164        */
     165        TInt PreferenceL( const TDesC& aName, TPtrC& aValue );
     166       
     167        /**
     168        * Set preference for a particular key
     169        */
     170        void SetPreferenceL( const TDesC& aName, const TDesC& aValue );   
    79171
    80172    protected:
    81         void Empty();
    82         void CreateFilePathL();
    83         HBufC* MakeKeyLC(const TDesC& aName);
    84 
    85     protected:
    86         CWidgetPreferences(CWidgetExtension& aWidgetExtension);
     173        /**
     174        * C++ Constructor       
     175        */
     176        CWidgetPreferences( CWidgetExtension& aWidgetExtension );
     177       
     178        /**
     179        * Symbian 2nd phase constructor
     180        */
    87181        void ConstructL();
    88182
    89183    private:
    90         RPtrHashMap<TDesC,TDesC> iMap;
    91         RPtrHashMap<TDesC,TInt> iSizeMap;
     184        RPtrHashMap<TDesC,CPrefElement> iPreferences;
    92185        HBufC* iFilePath;
    93186        CWidgetExtension* iWidgetExtension; //not owned
    94187        HBufC* iBasePath;
    95 
    96188    };
    97 
     189   
     190   
    98191#endif
  • S60/trunk/WebKit/BrowserView/src/WidgetExtension.cpp

    r23794 r23814  
    412412            }
    413413        if ( parentNode )
     414            {
    414415            node = parentNode->FirstChild();
     416            }
    415417        }
    416418    else
     
    428430             }
    429431         if ( iMenuRoot )
    430              node = iMenuRoot->FirstChild();
     432            {
     433            node = iMenuRoot->FirstChild();
     434            }
    431435        }
    432436
     
    462466        {
    463467        if ( iResourceId > R_CASCADE_MENU_1 + KMaxOptionsMenu )
     468            {
    464469            menuData.iCascadeId = 0;
     470            }
    465471        else
     472            {
    466473            menuData.iCascadeId = iResourceId;
     474            }           
    467475        }
    468476    else
     477        {
    469478        menuData.iCascadeId = 0;
     479        }       
    470480
    471481    menuData.iFlags = 0;
     
    477487    iCascadeArr.Append( entry );
    478488
    479     aMenuPane.InsertMenuItemL( menuData, 0 );
     489    aMenuPane.InsertMenuItemL( menuData, aMenuPane.NumberOfItemsInPane()-1 );
    480490    aMenuPane.SetItemDimmed( aNode->CmdId()+KMenuItemCommandIdBase, aNode->Dimmed() );
    481491    }
     
    656666// -----------------------------------------------------------------------------
    657667//
    658 void CWidgetExtension::AddOptionsMenuItem(
     668TInt CWidgetExtension::AddOptionsMenuItem(
    659669    const TDesC& aText, TInt aCmdId, TInt aParentId, void* aObj )
    660     {
    661     if ( !iMenuRoot )
    662         {
     670    {   
     671    if ( !iMenuRoot ) 
     672        { 
    663673        iMenuRoot = CMenuItem::NewL( _L(""), -1 );
    664         }
     674        }   
     675       
    665676    if ( aText.Length() > 0 )
    666677        {
    667678        CMenuItem* parent = FindNodeById( iMenuRoot, aParentId );
    668679        if ( !parent )
    669             return;
    670         CMenuItem* item = CMenuItem::NewL( aText, aCmdId, parent, aObj );
    671         Append( parent, item );
    672         }
     680            {
     681            return KErrGeneral;
     682            }
     683       
     684        CMenuItem* item = NULL;
     685        item = FindNodeById( iMenuRoot, aCmdId );       
     686        if ( item )
     687            {
     688            return KErrAlreadyExists;
     689            }
     690                   
     691        item = FindNodeByText( iMenuRoot, aText );
     692        if ( item )
     693            {
     694            return KErrAlreadyExists;
     695            }
     696                   
     697        item = CMenuItem::NewL( aText, aCmdId, parent, aObj );
     698        return Append( parent, item );   
     699        }
     700       
     701    return KErrGeneral;               
    673702    }
    674703
     
    696725// -----------------------------------------------------------------------------
    697726//
    698 TBool CWidgetExtension::Append(
     727TInt CWidgetExtension::Append(
    699728    CMenuItem* aParent, CMenuItem* aItem )
    700     {
     729    { 
    701730    if ( !aParent )
    702         return EFalse;
     731        {
     732        return KErrGeneral;
     733        }
    703734
    704735    if ( aParent->FirstChild() == NULL ) //first child
     
    710741        AppendSibling( aParent->FirstChild(), aItem );
    711742        }
    712     return ETrue;
    713     }
     743    return KErrNone;           
     744    } 
    714745
    715746// -----------------------------------------------------------------------------
     
    768799            CMenuItem* item = NULL;
    769800            if ( prev )
     801                {
    770802                item = prev->NextSibling();
     803                }
     804               
    771805            while( item )
    772806                {
     
    804838// ----------------------------------------------------------------------------
    805839//
    806 void CWidgetExtension::ReplaceMenuItem(
    807     TInt oldItemCmdId,
    808     const TDesC& newItemText,
    809     TInt newItemCmdId,
     840TInt CWidgetExtension::ReplaceMenuItem(
     841    TInt oldItemCmdId, 
     842    const TDesC& newItemText, 
     843    TInt newItemCmdId, 
    810844    TInt newItemDimmed )
    811845    {
    812     CMenuItem* node = NULL;
    813 
    814     node = FindNodeById( iMenuRoot, oldItemCmdId );
    815     if ( node )
    816         {
    817         node->SetText( newItemText );
    818         node->SetCmdId( newItemCmdId );
    819         node->SetDimmed( newItemDimmed );
    820         }
     846    CMenuItem* newItem = NULL;
     847    CMenuItem* oldItem = NULL;
     848   
     849    // check if there is another node in the tree with the same Id as that of
     850    // newItem but allow a replace of oldItem with the same Id as the newItem
     851    newItem = FindNodeById( iMenuRoot, newItemCmdId );   
     852    if ( newItem && newItem->CmdId() != oldItemCmdId )
     853        {
     854        return KErrAlreadyExists;
     855        }
     856   
     857    // check if there is another node in the tree with the same text as that of
     858    // newItem but allow a replace of oldItem with the same text as the newItem
     859    newItem = FindNodeByText( iMenuRoot, newItemText );
     860    oldItem = FindNodeById( iMenuRoot, oldItemCmdId ); 
     861    if ( newItem && oldItem && newItem->Text().Compare(oldItem->Text()) != 0 )
     862        {
     863        return KErrAlreadyExists;
     864        }
     865     
     866    if ( oldItem )
     867        {
     868        oldItem->SetText( newItemText );   
     869        oldItem->SetCmdId( newItemCmdId );   
     870        oldItem->SetDimmed( newItemDimmed );
     871        return KErrNone;
     872        }
     873       
     874    return KErrGeneral;       
    821875    }
    822876
     
    862916    node = FindNodeByText( iMenuRoot, textVal );
    863917    if ( node )
     918        {
    864919        return node->Obj();
     920        }
    865921    else
     922        {
    866923        return NULL;
     924        }       
    867925    }
    868926
     
    879937
    880938    node = FindNodeById( iMenuRoot, cmdId );
     939   
    881940    if ( node )
     941        {
    882942        return node->Obj();
     943        }
    883944    else
     945        {
    884946        return NULL;
     947        }       
    885948    }
    886949
     
    896959    CMenuItem* node = NULL;
    897960    node = FindNodeById( iMenuRoot, aCmdId );
     961   
    898962    if ( node )
     963        {
    899964        node->SetDimmed( aValue );
     965        }
    900966    }
    901967
     
    912978    CMenuItem* node = NULL;
    913979    node = FindNodeById( iMenuRoot, aCmdId );
     980   
    914981    if ( node )
     982        {
    915983        node->SetCallback( aOnSelectCallback );
     984        }
    916985    }
    917986
     
    927996    CMenuItem* node = NULL;
    928997    node = FindNodeById( iMenuRoot, aCmdId );
     998   
    929999    if ( node )
     1000        {
    9301001        return node->Callback();
     1002        }
    9311003    else
     1004        {
    9321005        return NULL;
     1006        }       
    9331007    }
    9341008
     
    10101084
    10111085    if ( !node )
     1086        {
    10121087        return item;
     1088        }
    10131089
    10141090    if ( node->CmdId() == aCmdId )
     
    10441120
    10451121    if ( !node )
     1122        {
    10461123        return item;
     1124        }
    10471125
    10481126    if ( node->Text().Compare( aText ) == 0 )
  • S60/trunk/WebKit/BrowserView/src/WidgetPreferences.cpp

    r21150 r23814  
    6161// ----------------------------------------------------------------------------
    6262// CWidgetPreferences::NewL
    63 //
     63// Two-phased constructor
    6464//
    6565//
     
    7676// ----------------------------------------------------------------------------
    7777// CWidgetPreferences::NewLC
    78 //
     78// Two-phased constructor
    7979//
    8080//
     
    9292// ----------------------------------------------------------------------------
    9393// CWidgetPreferences::CWidgetPreferences
    94 //
     94// C++ Constructor
    9595//
    9696//
     
    9898CWidgetPreferences::CWidgetPreferences( CWidgetExtension& aWidgetExtension )
    9999    : iWidgetExtension( &aWidgetExtension )
    100     {
     100    {   
    101101    }
    102102
    103103// ----------------------------------------------------------------------------
    104104// CWidgetPreferences::~CWidgetPreferences
    105 //
     105// Destructor
    106106//
    107107//
     
    109109CWidgetPreferences::~CWidgetPreferences()
    110110    {
    111     iMap.ResetAndDestroy();
    112     iMap.Close();
    113     iSizeMap.ResetAndDestroy();
    114     iSizeMap.Close();
     111    iPreferences.ResetAndDestroy();
     112    iPreferences.Close();
    115113    delete iBasePath;
    116114    }
     
    118116// ----------------------------------------------------------------------------
    119117// CWidgetPreferences::ConstructL
    120 //
     118// Symbian 2nd phase constructor
    121119//
    122120//
     
    128126// ----------------------------------------------------------------------------
    129127// CWidgetPreferences::PreferenceL
    130 //
     128// Get preference for a key
    131129//
    132130//
     
    134132TInt CWidgetPreferences::PreferenceL( const TDesC& aKey, TPtrC& aValue )
    135133    {
     134    TInt rSuccess = KErrNotFound;
     135    TInt i = 0;
     136    TInt size = 0;
     137   
    136138    if ( !iBasePath && ( iWidgetExtension->WidgetBasePath().Length() > 0 ) )
    137139        iBasePath = iWidgetExtension->WidgetBasePath().AllocL();
    138140
    139     TInt rSuccess = KErrNotFound;
    140 
     141 
    141142    if ( aKey.Length() <= KMaxKeyValueSize )
    142143        {
    143144        HBufC* key = HBufC::NewLC( aKey.Length() + KMaxIntLength + 1 );
    144145        key->Des().Format( KKeyFormat, iWidgetExtension->GetWidgetId(), &aKey );
    145         TInt* size = iSizeMap.Find( *key );
    146         TDesC* res = iMap.Find( *key );
    147 
    148         if ( !res || !size )
     146       
     147        CPrefElement* pref = iPreferences.Find( *key );
     148                   
     149        if ( !pref )
    149150            {
    150151            CleanupStack::PopAndDestroy( key );
    151152            return rSuccess;
    152153            }
    153 
    154         if ( *size > KMaxKeyValueSize )
     154           
     155        size = pref->ValueSize();
     156           
     157
     158        if ( size > KMaxKeyValueSize )
    155159            {
    156160            // return contents from temp file whose name is stored
    157             // in the value field of iMap
     161            // in the iValue member of iPreferences
    158162            RFs fs;
    159163
     
    161165                {
    162166                CleanupClosePushL( fs );
    163                 HBufC* filePath = HBufC::NewLC( res->Length() );
    164 
     167                HBufC* filePath = HBufC::NewLC( pref->Value().Length() );
    165168                TPtr fName( filePath->Des() );
    166                 fName.Append( *res );
     169                fName.Append( pref->Value() );
    167170
    168171                RFileReadStream readStream;
     
    185188                    }   
    186189
    187                 CleanupStack::PopAndDestroy(2); //filePath,fs
     190                CleanupStack::PopAndDestroy( 2 ); //filePath,fs
    188191                }
    189192            }       
    190         else if ( *size >= 0 )
    191             {
    192             aValue.Set( *res );
     193        else if ( size >= 0 )
     194            {
     195            aValue.Set( pref->Value() );
    193196            rSuccess = KErrNone;
    194197            }
    195198
    196         CleanupStack::PopAndDestroy(key);
     199        CleanupStack::PopAndDestroy( key );
    197200        }
    198201
     
    202205// ----------------------------------------------------------------------------
    203206// CWidgetPreferences::SetPreferenceL
    204 //
     207// Set Preference for a key
    205208//
    206209//
     
    219222        if ( aValue.Length() <= KMaxKeyValueSize )
    220223            {
    221             HBufC* value = aValue.AllocLC();
    222             iMap.InsertL( key, value );
    223             TInt* size = new TInt(aValue.Length());
    224             // make a copy of key and insert that
    225             HBufC* newKey = key->AllocLC();
    226             iSizeMap.InsertL( newKey, size );
    227             CleanupStack::Pop( 3 );//newKey,value,key           
     224            CPrefElement* pref = new (ELeave) CPrefElement;   
     225            CleanupStack::PushL( pref );   
     226            pref->SetValueL( aValue );
     227            pref->SetValueSize( aValue.Length() );
     228            iPreferences.InsertL( key, pref );
     229            CleanupStack::Pop( 2 ); //pref, key   
    228230            return;
    229231            }
     
    231233            {
    232234            // create a temp file and save the value in temp file.
    233             // iMap value field contains the temp file name.
     235            // iValue member of CPrefElement contains the temp file name.
    234236            RFs fs;
    235237            RFile file;
     
    247249                TPtr fName( filePath->Des() );
    248250                fName.Append( tempFileName );
    249                 iMap.InsertL( key, filePath );
    250                 TInt* size = new TInt( aValue.Length() );
    251                 // make a copy of key and insert that
    252                 HBufC* newKey = key->AllocLC();
    253                 iSizeMap.InsertL( newKey, size );
    254 
     251                CPrefElement* pref = new ( ELeave ) CPrefElement;
     252                CleanupStack::PushL( pref ); 
     253                pref->SetValueL( *filePath );               
     254                pref->SetValueSize( aValue.Length() );   
     255                iPreferences.InsertL( key, pref );
    255256                RFileWriteStream writeStream( file );
    256257                CleanupClosePushL( writeStream );       
     
    258259                writeStream.WriteL( aValue );             
    259260                writeStream.CommitL();
    260                 CleanupStack::PopAndDestroy(); //writeStream
    261                 CleanupStack::Pop( 2 );//newKey,filePath
    262                 CleanupStack::PopAndDestroy( 2 ); //file,fs
     261                CleanupStack::PopAndDestroy( ); //writeStream
     262                CleanupStack::Pop( pref );
     263                CleanupStack::PopAndDestroy( 3 ); //filePath,file,fs
    263264                CleanupStack::Pop( key );
    264265                return;
     
    272273// ----------------------------------------------------------------------------
    273274// CWidgetPreferences::SaveL
    274 //
     275// SAve preferences to persistent storage
    275276//
    276277//
     
    306307            {
    307308            CleanupClosePushL( writeStream );
    308             writeStream.WriteInt32L( iMap.Count() );
    309 
    310             TPtrHashMapIter<TDesC,TDesC> it( iMap );
     309            writeStream.WriteInt32L( iPreferences.Count() );
     310           
     311            TPtrHashMapIter<TDesC,CPrefElement> it( iPreferences );
    311312            const TDesC* key;
    312             const TDesC* value;
     313            const CPrefElement* pref;
    313314
    314315            while ( ( key = it.NextKey() ) != 0 )
    315316                {
    316                 value = it.CurrentValue();
     317                pref = it.CurrentValue();
    317318                writeStream.WriteInt32L( key->Length() );
    318319                writeStream.WriteL( *key );
    319                 writeStream.WriteInt32L( value->Length() );
    320                 writeStream.WriteL( *value );
    321                 TInt* size = iSizeMap.Find( *key );
    322                 if ( size )
    323                     writeStream.WriteInt32L( *size );
    324                 else
    325                     writeStream.WriteInt32L( 0 );
     320                writeStream.WriteInt32L( pref->Value().Length() );
     321                writeStream.WriteL( pref->Value() );
     322                writeStream.WriteInt32L( pref->ValueSize() );
    326323                }
    327324
     
    336333// ----------------------------------------------------------------------------
    337334// CWidgetPreferences::LoadL
    338 //
     335// Load preferences from persistent storage
    339336//
    340337//
     
    379376                        TPtr ptrvalue = value->Des();
    380377                        readStream.ReadL( ptrvalue, len );
    381                         iMap.InsertL( key, value );
    382                         TInt *size = new TInt ( readStream.ReadInt32L() );
    383                         // make a copy of key and insert that
    384                         HBufC* newKey = key->AllocLC();
    385                         iSizeMap.InsertL( newKey, size );
    386                         CleanupStack::Pop( 3 ); //newKey,value,key
     378                        CPrefElement* pref = new ( ELeave ) CPrefElement;
     379                        CleanupStack::PushL( pref );
     380                        pref->SetValueL( ptrvalue );
     381                        TInt size = readStream.ReadInt32L();
     382                        pref->SetValueSize( size );
     383                        iPreferences.InsertL( key, pref );
     384                        CleanupStack::Pop(); //pref
     385                        CleanupStack::PopAndDestroy(); //value
     386                        CleanupStack::Pop(); //key
    387387                        }
    388388                    else
     
    403403        }
    404404    }
    405 
     405   
     406// ----------------------------------------------------------------------------
     407// CPrefElement::CPrefElement
     408// C++ constructor
     409//
     410//
     411// ----------------------------------------------------------------------------   
     412CPrefElement::CPrefElement()
     413    {
     414    }
     415
     416   
     417// ----------------------------------------------------------------------------
     418// CPrefElement::~CPrefElement
     419// Destructor
     420//
     421//
     422// ----------------------------------------------------------------------------
     423CPrefElement::~CPrefElement()
     424    {
     425    delete iValue;
     426    }
     427
     428
     429// ----------------------------------------------------------------------------
     430// CPrefElement::SetValueL
     431// Set value for a preference
     432//
     433//
     434// ----------------------------------------------------------------------------
     435void CPrefElement::SetValueL( const TDesC& aValue )
     436    {
     437    if ( !iValue )
     438        {
     439        iValue  = aValue.AllocL();
     440        return;
     441        }
     442
     443    if ( aValue.Length() > iValue->Length() )
     444        {
     445        delete iValue;
     446        iValue = NULL;
     447        iValue  = aValue.AllocL();
     448        }
     449    else
     450        {
     451        *iValue = aValue;
     452        if ( aValue.Length() < iValue->Length() )
     453            iValue  = iValue->ReAllocL( aValue.Length() ); // reclaim space
     454        }
     455    }
  • S60/trunk/WebKit/ChangeLog

    r23794 r23814  
     1rathnasa, reviewed by <zbujtas@gmail.com>
     2 DESC: Widget Menu API needs refinement
     3 http://bugs.webkit.org/show_bug.cgi?id=14389
     4
     5        * BrowserView/inc/WidgetExtension.h:
     6        * BrowserView/inc/WidgetPreferences.h:
     7        (CPrefElement::SetValueSize):
     8        (CPrefElement::Value):
     9        (CPrefElement::ValueSize):
     10        * BrowserView/src/WidgetExtension.cpp:
     11        (CWidgetExtension::AddOptionMenuItemsL):
     12        (CWidgetExtension::AddMenuItem):
     13        (CWidgetExtension::AddOptionsMenuItem):
     14        (CWidgetExtension::Append):
     15        (CWidgetExtension::DeleteMenuItem):
     16        (CWidgetExtension::ReplaceMenuItem):
     17        (CWidgetExtension::GetFromMenuItemCollection):
     18        (CWidgetExtension::SetDimmed):
     19        (CWidgetExtension::SetMenuItemObserver):
     20        (CWidgetExtension::MenuItemObserver):
     21        (CWidgetExtension::FindNodeById):
     22        (CWidgetExtension::FindNodeByText):
     23        * BrowserView/src/WidgetPreferences.cpp:
     24        (CWidgetPreferences::CWidgetPreferences):
     25        (CWidgetPreferences::~CWidgetPreferences):
     26        (CWidgetPreferences::PreferenceL):
     27        (CWidgetPreferences::SetPreferenceL):
     28        (CWidgetPreferences::SaveL):
     29        (CWidgetPreferences::LoadL):
     30        (CPrefElement::CPrefElement):
     31        (CPrefElement::~CPrefElement):
     32        (CPrefElement::SetValueL):
     33
    134winship, reviewed by <reviewer>
    235 DESC: SYAI-73ARXK - Widget UI must not have scrollbars, always ON status pane & fullscreen mode
Note: See TracChangeset for help on using the changeset viewer.