skins/AknSkins/rlsrc/AknsRlMasterLayout.cpp
changeset 0 05e9090e2422
child 1 ba33815114d6
equal deleted inserted replaced
-1:000000000000 0:05e9090e2422
       
     1 /*
       
     2 * Copyright (c) 2004-2007 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:  Master layout class.
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 // INCLUDE FILES
       
    20 #include "AknsRlMasterLayout.h"
       
    21 
       
    22 #include <aknlayout.cdl.h>
       
    23 #include <skinlayout.cdl.h>
       
    24 #include <aknlayoutscalable_avkon.cdl.h>
       
    25 #include "layoutmetadata.cdl.h"
       
    26 #include <AknUtils.h>
       
    27 #include <AknSgcc.h>
       
    28 #include <AknStatuspaneUtils.h>
       
    29 #include <CdlEngine.h>
       
    30 #include <aknenv.h>
       
    31 
       
    32 #include <AknsConstants.h>
       
    33 
       
    34 // for reading the grid mode
       
    35 #include <centralrepository.h>
       
    36 
       
    37 // CONSTANTS
       
    38 
       
    39 // INTERNAL CLASSES
       
    40 
       
    41 // ============================= LOCAL FUNCTIONS ===============================
       
    42 
       
    43 TInt GetGridModeL()
       
    44     {
       
    45     CRepository* repository = CRepository::NewL( TUid::Uid( 0x101F8847 ) );  // KCRUidMenu
       
    46     CleanupStack::PushL( repository );
       
    47     TInt gridMode;
       
    48     User::LeaveIfError( repository->Get( (TUint32)(0x00000007), gridMode ) ); // //KMenuGridMode
       
    49     CleanupStack::PopAndDestroy( repository );
       
    50     return gridMode;
       
    51     }
       
    52 
       
    53 
       
    54 // -----------------------------------------------------------------------------
       
    55 // Retrieves the given scalable layout (using the given intermediate pane)
       
    56 //
       
    57 // -----------------------------------------------------------------------------
       
    58 //
       
    59 static inline void GetScalableViaPane( TRect& aRect, const TRect& aParentRect,
       
    60     const TAknWindowComponentLayout& aIntermediateLayout,
       
    61     const TAknWindowComponentLayout& aFinalLayout )
       
    62     {
       
    63     TAknLayoutRect layout;
       
    64     layout.LayoutRect( aParentRect,
       
    65         TAknWindowComponentLayout::Compose(
       
    66         aIntermediateLayout, aFinalLayout).LayoutLine() );
       
    67     aRect = layout.Rect();
       
    68     }
       
    69 
       
    70 // ============================ MEMBER FUNCTIONS ===============================
       
    71 
       
    72 // -----------------------------------------------------------------------------
       
    73 // CAknsRlMasterLayout::CAknsRlMasterLayout
       
    74 // C++ default constructor can NOT contain any code, that
       
    75 // might leave.
       
    76 // -----------------------------------------------------------------------------
       
    77 //
       
    78 CAknsRlMasterLayout::CAknsRlMasterLayout()
       
    79 : iGridMode(-1), iAknLayoutScalable_Avkon(AknLayoutScalable_Avkon::CustomisationInstance())
       
    80     {
       
    81     UpdateCachedLayoutData();
       
    82     }
       
    83 
       
    84 // -----------------------------------------------------------------------------
       
    85 // Destructor
       
    86 // -----------------------------------------------------------------------------
       
    87 //
       
    88 CAknsRlMasterLayout::~CAknsRlMasterLayout()
       
    89     {
       
    90     }
       
    91 
       
    92 // -----------------------------------------------------------------------------
       
    93 // CAknsRlMasterLayout::NewL
       
    94 // -----------------------------------------------------------------------------
       
    95 //
       
    96 EXPORT_C CAknsRlMasterLayout* CAknsRlMasterLayout::NewL()
       
    97     {
       
    98     CAknsRlMasterLayout* self =
       
    99         new (ELeave) CAknsRlMasterLayout();
       
   100     CleanupStack::PushL( self );
       
   101     self->ConstructL();
       
   102     CleanupStack::Pop( self );
       
   103     return self;
       
   104     }
       
   105 
       
   106 // -----------------------------------------------------------------------------
       
   107 // CAknsRlMasterLayout::ConstructL
       
   108 // -----------------------------------------------------------------------------
       
   109 //
       
   110 void CAknsRlMasterLayout::ConstructL()
       
   111     {
       
   112     AknLayoutScalable_Avkon::SetCustomisationChangeObserverL(this);
       
   113     }
       
   114 
       
   115 // -----------------------------------------------------------------------------
       
   116 // CAknsRlMasterLayout::GetParent
       
   117 // (commented in the header)
       
   118 // -----------------------------------------------------------------------------
       
   119 //
       
   120 EXPORT_C TAknsItemID CAknsRlMasterLayout::GetParent( const TAknsItemID& aIID )
       
   121     {
       
   122     if( aIID.iMajor == EAknsMajorSkin )
       
   123         {
       
   124         switch( aIID.iMinor )
       
   125             {
       
   126             case EAknsMinorQsnBgScreen:
       
   127                 return KAknsIIDNone;
       
   128 
       
   129             case EAknsMinorQsnBgScreenIdle:
       
   130             case EAknsMinorQsnBgScreenMp:
       
   131                 return KAknsIIDQsnBgScreen;
       
   132             case EAknsMinorQsnBgAreaMain:
       
   133             case EAknsMinorQsnBgAreaMainAppsGrid:
       
   134             case EAknsMinorQsnBgAreaMainListGene:
       
   135             case EAknsMinorQsnBgAreaMainListSet:
       
   136             case EAknsMinorQsnBgAreaMainMessage:
       
   137                 return KAknsIIDQsnBgScreen;
       
   138 
       
   139             case EAknsMinorQsnBgAreaMainHigh:
       
   140             case EAknsMinorQsnBgAreaMainCalc:
       
   141             case EAknsMinorQsnBgAreaMainPinb:
       
   142             case EAknsMinorQsnBgAreaMainQdial:
       
   143                 return KAknsIIDQsnBgScreen;
       
   144 
       
   145             case EAknsMinorQsnBgAreaMainMp:
       
   146                 return KAknsIIDQsnBgScreenMp;
       
   147 
       
   148             case EAknsMinorQsnBgAreaMainFlat:
       
   149             case EAknsMinorQsnBgAreaMainSmall:
       
   150                 return KAknsIIDQsnBgScreen;
       
   151 #ifdef RD_FULLSCREEN_WALLPAPER
       
   152             case EAknsMinorWallpaper:
       
   153                 return KAknsIIDQsnBgScreenIdle;
       
   154 #else
       
   155             case EAknsMinorWallpaper:
       
   156                 return KAknsIIDQsnBgAreaMainIdle;
       
   157 #endif //RD_FULLSCREEN_WALLPAPER
       
   158 
       
   159             case EAknsMinorQsnBgAreaMainIdle:
       
   160             case EAknsMinorQsnBgAreaMainIdleDimmed:
       
   161 #ifdef RD_FULLSCREEN_WALLPAPER
       
   162                 return KAknsIIDWallpaper;
       
   163 #else
       
   164                 return KAknsIIDQsnBgScreenIdle;
       
   165 #endif // RD_FULLSCREEN_WALLPAPER
       
   166 
       
   167             case EAknsMinorQsnBgAreaStatus:
       
   168                 return KAknsIIDQsnBgScreen;
       
   169 
       
   170             case EAknsMinorQsnBgAreaStatusIdle:
       
   171                 return KAknsIIDQsnBgScreenIdle;
       
   172 
       
   173             case EAknsMinorQsnBgAreaStaconRt:
       
   174             case EAknsMinorQsnBgAreaStaconLt:
       
   175             case EAknsMinorQsnBgAreaStaconRb:
       
   176             case EAknsMinorQsnBgAreaStaconLb:
       
   177                 return KAknsIIDQsnBgScreen;
       
   178 
       
   179             case EAknsMinorQsnBgAreaStaconRtIdle:
       
   180             case EAknsMinorQsnBgAreaStaconLtIdle:
       
   181             case EAknsMinorQsnBgAreaStaconRbIdle:
       
   182             case EAknsMinorQsnBgAreaStaconLbIdle:
       
   183                 return KAknsIIDQsnBgScreenIdle;
       
   184 
       
   185             case EAknsMinorQsnBgAreaControl:
       
   186             case EAknsMinorQsnBgAreaControlPopup:
       
   187                 return KAknsIIDQsnBgScreen;
       
   188 
       
   189             case EAknsMinorQsnBgAreaControlMp:
       
   190                 return KAknsIIDQsnBgScreenMp;
       
   191 
       
   192             case EAknsMinorQsnBgAreaControlIdle:
       
   193                 return KAknsIIDQsnBgScreenIdle;
       
   194 
       
   195             case EAknsMinorQsnBgColumn0:
       
   196             case EAknsMinorQsnBgColumnA:
       
   197             case EAknsMinorQsnBgColumnAB:
       
   198             case EAknsMinorQsnBgColumnC0:
       
   199             case EAknsMinorQsnBgColumnCA:
       
   200             case EAknsMinorQsnBgColumnCAB:
       
   201                 return KAknsIIDQsnBgAreaMainListGene;
       
   202 
       
   203             case EAknsMinorQsnBgSliceList0:
       
   204             case EAknsMinorQsnBgSliceListA:
       
   205             case EAknsMinorQsnBgSliceListAB:
       
   206                 return KAknsIIDQsnBgAreaMainListGene;
       
   207 
       
   208             // INSERTION POINT for layout parent relations
       
   209             }
       
   210         }
       
   211     else if( aIID.iMajor == EAknsMajorAvkon )
       
   212         {
       
   213         switch( aIID.iMinor )
       
   214             {
       
   215             case EAknsMinorQsnBgNavipaneSolid:
       
   216             case EAknsMinorQsnBgNavipaneWipe:
       
   217                 return KAknsIIDQsnBgAreaStatus;
       
   218 
       
   219             case EAknsMinorQsnBgNavipaneSolidIdle:
       
   220             case EAknsMinorQsnBgNavipaneWipeIdle:
       
   221                 return KAknsIIDQsnBgAreaStatusIdle;
       
   222             }
       
   223         }
       
   224 
       
   225     return KAknsIIDDefault;
       
   226     }
       
   227 
       
   228 // -----------------------------------------------------------------------------
       
   229 // CAknsRlMasterLayout::GetItemLayout
       
   230 // (commented in the header)
       
   231 // -----------------------------------------------------------------------------
       
   232 //
       
   233 EXPORT_C TBool CAknsRlMasterLayout::GetItemLayout( const TAknsItemID& aIID,
       
   234     const TRect& aParentRect, TRect& aRect  )
       
   235     {
       
   236     TRect normParentRect( TPoint(0,0), aParentRect.Size() );
       
   237 
       
   238     TAknLayoutRect layRect;
       
   239 
       
   240     if( aIID.iMajor == EAknsMajorSkin ) {
       
   241         switch( aIID.iMinor )
       
   242             {
       
   243             case EAknsMinorQsnBgScreen:
       
   244 #ifdef RD_FULLSCREEN_WALLPAPER
       
   245             case EAknsMinorWallpaper:
       
   246 #endif //RD_FULLSCREEN_WALLPAPER
       
   247                 {
       
   248                 aRect = iScreenRect;
       
   249                 return ETrue;
       
   250                 }
       
   251             case EAknsMinorQsnBgScreenIdle:
       
   252             case EAknsMinorQsnBgScreenMp:
       
   253                 {
       
   254                 aRect = normParentRect;
       
   255                 return ETrue;
       
   256                 }
       
   257 
       
   258             case EAknsMinorQsnBgAreaMainAppsGrid:
       
   259                 {
       
   260                 if (iGridMode == -1)
       
   261                     {
       
   262                     // if gridmode is -1, it has not beed read
       
   263                     // so read it here
       
   264                     TRAP_IGNORE( iGridMode = GetGridModeL() );
       
   265                     }
       
   266                 if (!Layout_Meta_Data::IsLandscapeOrientation() && iGridMode == 1) //3x4 mode
       
   267                     {
       
   268                     layRect.LayoutRect( normParentRect,
       
   269                         iAknLayoutScalable_Avkon.main_pane(7));
       
   270                     aRect = layRect.Rect();
       
   271                     return ETrue;
       
   272                     }
       
   273                 else // normal 3x3 mode
       
   274                     {
       
   275                     return AknLayoutUtils::LayoutMetricsRect(
       
   276                         AknLayoutUtils::EMainPane, aRect );
       
   277                     }
       
   278                 }
       
   279 
       
   280             case EAknsMinorQsnBgAreaMain:
       
   281             case EAknsMinorQsnBgAreaMainListGene:
       
   282             case EAknsMinorQsnBgAreaMainListSet:
       
   283             case EAknsMinorQsnBgAreaMainMessage:
       
   284                 layRect.LayoutRect( normParentRect,
       
   285                 AknLayout::main_pane( normParentRect, 0, 1, 1 ) );
       
   286                 aRect = layRect.Rect();
       
   287                 return ETrue;
       
   288 
       
   289             case EAknsMinorQsnBgAreaMainFlat:
       
   290                 {
       
   291                 layRect.LayoutRect( normParentRect,
       
   292                      iAknLayoutScalable_Avkon.main_pane(7));
       
   293                     aRect = layRect.Rect();
       
   294                     return ETrue;
       
   295                 }
       
   296             case EAknsMinorQsnBgAreaMainSmall:
       
   297                    {
       
   298                    layRect.LayoutRect( normParentRect,
       
   299                     iAknLayoutScalable_Avkon.main_pane(6));
       
   300                     aRect = layRect.Rect();
       
   301                     return ETrue;
       
   302                   }
       
   303 
       
   304             case EAknsMinorQsnBgAreaMainHigh:
       
   305             case EAknsMinorQsnBgAreaMainCalc:
       
   306             case EAknsMinorQsnBgAreaMainPinb:
       
   307             case EAknsMinorQsnBgAreaMainQdial:
       
   308                 {
       
   309                 layRect.LayoutRect( normParentRect,
       
   310                     AknLayout::main_pane( normParentRect, 0, 0, 1 ) );
       
   311                 aRect = layRect.Rect();
       
   312                 return ETrue;
       
   313                 }
       
   314             case EAknsMinorQsnBgAreaMainMp:
       
   315             	{
       
   316             	if ( Layout_Meta_Data::IsLandscapeOrientation() )
       
   317             		{
       
   318             		layRect.LayoutRect( normParentRect,
       
   319             				AknLayout::main_pane( normParentRect, 0, 0, 1 ) );
       
   320             		aRect = layRect.Rect();
       
   321             		}
       
   322             	else
       
   323             		{
       
   324             		layRect.LayoutRect( normParentRect,
       
   325             			iAknLayoutScalable_Avkon.main_pane(7));
       
   326             		aRect = layRect.Rect();
       
   327             		}
       
   328                 return ETrue;
       
   329                 }
       
   330 
       
   331             case EAknsMinorQsnBgAreaMainIdle:
       
   332             case EAknsMinorQsnBgAreaMainIdleDimmed:
       
   333                 {
       
   334                 layRect.LayoutRect( normParentRect,
       
   335                     AknLayout::main_pane( normParentRect, 0, 1, 1 ) );
       
   336                 aRect = layRect.Rect();
       
   337                 return ETrue;
       
   338                 }
       
   339 
       
   340             case EAknsMinorQsnBgAreaStatus:
       
   341                 {
       
   342                 GetScalableViaPane( aRect, normParentRect,
       
   343                     iAknLayoutScalable_Avkon.area_top_pane(0),
       
   344                     iAknLayoutScalable_Avkon.status_pane(0) );
       
   345 
       
   346                 return ETrue;
       
   347                 }
       
   348 
       
   349             case EAknsMinorQsnBgAreaStatusIdle:
       
   350                 {
       
   351                 GetScalableViaPane( aRect, normParentRect,
       
   352                     iAknLayoutScalable_Avkon.area_top_pane(0),
       
   353                     iAknLayoutScalable_Avkon.status_pane(0) );
       
   354 
       
   355                 return ETrue;
       
   356                 }
       
   357 
       
   358             case EAknsMinorQsnBgAreaStaconRt:
       
   359             case EAknsMinorQsnBgAreaStaconLt:
       
   360             case EAknsMinorQsnBgAreaStaconRtIdle:
       
   361             case EAknsMinorQsnBgAreaStaconLtIdle:
       
   362                 {
       
   363                 GetScalableViaPane( aRect, normParentRect,
       
   364                     iAknLayoutScalable_Avkon.area_top_pane(2),
       
   365                     iAknLayoutScalable_Avkon.stacon_top_pane() );
       
   366                 return ETrue;
       
   367                 }
       
   368 
       
   369             case EAknsMinorQsnBgAreaStaconRb:
       
   370             case EAknsMinorQsnBgAreaStaconLb:
       
   371             case EAknsMinorQsnBgAreaStaconRbIdle:
       
   372             case EAknsMinorQsnBgAreaStaconLbIdle:
       
   373                 {
       
   374                 GetScalableViaPane( aRect, normParentRect,
       
   375                     iAknLayoutScalable_Avkon.area_bottom_pane(2),
       
   376                     iAknLayoutScalable_Avkon.stacon_bottom_pane() );
       
   377                 return ETrue;
       
   378                 }
       
   379 
       
   380             case EAknsMinorQsnBgAreaControl:
       
   381             case EAknsMinorQsnBgAreaControlPopup:
       
   382             case EAknsMinorQsnBgAreaControlIdle:
       
   383             case EAknsMinorQsnBgAreaControlMp:
       
   384                 {
       
   385                 layRect.LayoutRect( normParentRect,
       
   386                     AknLayout::control_pane( normParentRect) );
       
   387                 aRect = layRect.Rect();
       
   388                 return ETrue;
       
   389                 }
       
   390 
       
   391             case EAknsMinorQsnBgColumn0:
       
   392                 {
       
   393                 layRect.LayoutRect( normParentRect,
       
   394                     SkinLayout::Column_background_and_list_slice_skin_placing_Line_1() );
       
   395                 aRect = layRect.Rect();
       
   396                 return ETrue;
       
   397                 }
       
   398 
       
   399             case EAknsMinorQsnBgColumnA:
       
   400                 {
       
   401                 layRect.LayoutRect( normParentRect,
       
   402                     SkinLayout::Column_background_and_list_slice_skin_placing_Line_2() );
       
   403                 aRect = layRect.Rect();
       
   404                 return ETrue;
       
   405                 }
       
   406 
       
   407             case EAknsMinorQsnBgColumnAB:
       
   408                 {
       
   409                 layRect.LayoutRect( normParentRect,
       
   410                     SkinLayout::Column_background_and_list_slice_skin_placing_Line_3() );
       
   411                 aRect = layRect.Rect();
       
   412                 return ETrue;
       
   413                 }
       
   414 
       
   415             case EAknsMinorQsnBgColumnC0:
       
   416                 {
       
   417                 layRect.LayoutRect( normParentRect,
       
   418                     SkinLayout::Column_background_and_list_slice_skin_placing_Line_4() );
       
   419                 aRect = layRect.Rect();
       
   420                 return ETrue;
       
   421                 }
       
   422 
       
   423             case EAknsMinorQsnBgColumnCA:
       
   424                 {
       
   425                 layRect.LayoutRect( normParentRect,
       
   426                     SkinLayout::Column_background_and_list_slice_skin_placing_Line_5() );
       
   427                 aRect = layRect.Rect();
       
   428                 return ETrue;
       
   429                 }
       
   430 
       
   431             case EAknsMinorQsnBgColumnCAB:
       
   432                 {
       
   433                 layRect.LayoutRect( normParentRect,
       
   434                     SkinLayout::Column_background_and_list_slice_skin_placing_Line_6() );
       
   435                 aRect = layRect.Rect();
       
   436                 return ETrue;
       
   437                 }
       
   438 
       
   439             case EAknsMinorQsnBgSliceList0:
       
   440             case EAknsMinorQsnBgSliceListA:
       
   441             case EAknsMinorQsnBgSliceListAB:
       
   442                 {
       
   443                 layRect.LayoutRect( normParentRect,
       
   444                     SkinLayout::Column_background_and_list_slice_skin_placing_Line_7() );
       
   445                 aRect = layRect.Rect();
       
   446                 return ETrue;
       
   447                 }
       
   448 #ifndef RD_FULLSCREEN_WALLPAPER
       
   449             case EAknsMinorWallpaper:
       
   450                 {
       
   451                 aRect = normParentRect;
       
   452                 return ETrue;
       
   453                 }
       
   454 #endif //RD_FULLSCREEN_WALLPAPER
       
   455 
       
   456             // INSERTION POINT for layout information retrieval
       
   457             }
       
   458         }
       
   459     else if( aIID.iMajor == EAknsMajorAvkon )
       
   460         {
       
   461         switch( aIID.iMinor )
       
   462             {
       
   463             case EAknsMinorQsnBgNavipaneSolid:
       
   464                 {
       
   465                 layRect.LayoutRect( normParentRect,
       
   466                     iAknLayoutScalable_Avkon.status_pane_g1(0) );
       
   467                 aRect = layRect.Rect();
       
   468                 // Artificial correction
       
   469                 aRect.iTl.iX = 0;
       
   470                 aRect.SetWidth( aParentRect.Width() );
       
   471                 return ETrue;
       
   472                 }
       
   473 
       
   474             case EAknsMinorQsnBgNavipaneWipe:
       
   475                 {
       
   476                 layRect.LayoutRect( normParentRect,
       
   477                     iAknLayoutScalable_Avkon.status_pane_g1(0) );
       
   478                 aRect = layRect.Rect();
       
   479                 // Artificial correction
       
   480                 aRect.iTl.iX = 0;
       
   481                 aRect.SetWidth( aParentRect.Width() );
       
   482                 return ETrue;
       
   483                 }
       
   484 
       
   485             case EAknsMinorQsnBgNavipaneSolidIdle:
       
   486                 {
       
   487                 layRect.LayoutRect( normParentRect,
       
   488                     iAknLayoutScalable_Avkon.status_pane_g1(0) );
       
   489                 aRect = layRect.Rect();
       
   490                 // Artificial correction
       
   491                 aRect.iTl.iX = 0;
       
   492                 aRect.SetWidth( aParentRect.Width() );
       
   493                 return ETrue;
       
   494                 }
       
   495 
       
   496             case EAknsMinorQsnBgNavipaneWipeIdle:
       
   497                 {
       
   498                 layRect.LayoutRect( normParentRect,
       
   499                     iAknLayoutScalable_Avkon.status_pane_g1(0) );
       
   500                 aRect = layRect.Rect();
       
   501                 // Artificial correction
       
   502                 aRect.iTl.iX = 0;
       
   503                 aRect.SetWidth( aParentRect.Width() );
       
   504                 return ETrue;
       
   505                 }
       
   506             }
       
   507         }
       
   508 
       
   509     return EFalse;
       
   510     }
       
   511 
       
   512 // -----------------------------------------------------------------------------
       
   513 // CAknsRlMasterLayout::CurrentLayoutType
       
   514 // (commented in the header)
       
   515 // -----------------------------------------------------------------------------
       
   516 //
       
   517 EXPORT_C TInt CAknsRlMasterLayout::CurrentLayoutType()
       
   518     {
       
   519     if (!iLayoutId)
       
   520         {
       
   521         TCdlRef ref = iAknLayoutScalable_Avkon.CustomisationInstance().Ref();
       
   522         TLex lex(ref.iName->Mid(2,ref.iName->Length()-4));
       
   523         TUint value = 0;
       
   524         lex.Val(value, EHex);
       
   525         iLayoutId = (TInt)(value);
       
   526         }
       
   527     return iLayoutId;
       
   528     }
       
   529 
       
   530 // -----------------------------------------------------------------------------
       
   531 // CAknsRlMasterLayout::CurrentLayoutSize
       
   532 // (commented in the header)
       
   533 // -----------------------------------------------------------------------------
       
   534 //
       
   535 EXPORT_C TSize CAknsRlMasterLayout::CurrentLayoutSize()
       
   536     {
       
   537     return iScreenRect.Size();
       
   538     }
       
   539 
       
   540 // -----------------------------------------------------------------------------
       
   541 // CAknsRlMasterLayout::HandleCustomisationChangeL
       
   542 // (commented in the header)
       
   543 // -----------------------------------------------------------------------------
       
   544 //
       
   545 void CAknsRlMasterLayout::HandleCustomisationChangeL(const CCdlUids& /*aUids*/)
       
   546     {
       
   547     UpdateCachedLayoutData();
       
   548     }
       
   549 
       
   550 // -----------------------------------------------------------------------------
       
   551 // CAknsRlMasterLayout::UpdateCachedLayoutData
       
   552 // (commented in the header)
       
   553 // -----------------------------------------------------------------------------
       
   554 //
       
   555 void CAknsRlMasterLayout::UpdateCachedLayoutData()
       
   556     {
       
   557     TCdlRef ref = iAknLayoutScalable_Avkon.CustomisationInstance().Ref();
       
   558     TLex lex(ref.iName->Mid(2,ref.iName->Length()-4));
       
   559     TUint value = 0;
       
   560     lex.Val(value, EHex);
       
   561     iLayoutId = (TInt)(value);
       
   562 
       
   563     TAknWindowLineLayout screenLayout = AknLayout::screen();
       
   564     iScreenRect = screenLayout.Rect();
       
   565     }
       
   566 
       
   567 // End of File