emailuis/uicomponents/src/fslayoutmanager.cpp
changeset 0 8466d47a6819
child 16 4ce476e64c59
equal deleted inserted replaced
-1:000000000000 0:8466d47a6819
       
     1 /*
       
     2 * Copyright (c) 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: This file implements class CFsLayoutManager.
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #include "emailtrace.h"
       
    20 #include <AknUtils.h>
       
    21 #include <aknlayoutscalable_avkon.cdl.h>
       
    22 #include <layoutmetadata.cdl.h>
       
    23 #include <AknLayoutFont.h>
       
    24 #include <CdlRefs.h>
       
    25 #include <apgcli.h>
       
    26 #include <eikapp.h>
       
    27 #include <layoutmetadata.cdl.h>
       
    28 // <cmail> SF
       
    29 #include <alf/alfstatic.h>
       
    30 #include <alf/alfenv.h>
       
    31 // </cmail>
       
    32 #include <centralrepository.h>
       
    33 #include <AvkonInternalCRKeys.h>
       
    34 
       
    35 //<CMAIL> As a device user, I want Message List items to follow platform layouts to be consistent with other apps
       
    36 #include <aknlayoutscalable_apps.cdl.h>
       
    37 //</CMAIL>
       
    38 
       
    39 //<cmail>
       
    40 //A lot of stuff removed, dependencies to FSLayout REMOVED!!
       
    41 //</cmail>
       
    42 
       
    43 #include "fslayoutmanager.h"
       
    44 
       
    45 // Layout file to use if a supported one wasn't found.
       
    46 // <cmail> S60 UID update
       
    47 //_LIT( KFsLayoutpackFile, "2001E284.dll" );
       
    48 // </cmail> S60 UID update
       
    49 
       
    50 
       
    51 // ======== LOCAL FUNCTIONS ========
       
    52 
       
    53 // ---------------------------------------------------------------------------
       
    54 // Release given pointer.
       
    55 // ---------------------------------------------------------------------------
       
    56 //
       
    57 void CleanupLayoutPack( TAny* /*aPtr*/ )
       
    58 	{
       
    59 	}
       
    60 
       
    61 
       
    62 // ======== MEMBER FUNCTIONS ========
       
    63 
       
    64 
       
    65 EXPORT_C CFsLayoutManager::CFsLayoutManager()
       
    66     {
       
    67     FUNC_LOG;
       
    68     }
       
    69 
       
    70 // ---------------------------------------------------------------------------
       
    71 // Determine if the mirroring is in use.
       
    72 // ---------------------------------------------------------------------------
       
    73 //
       
    74 EXPORT_C TBool CFsLayoutManager::IsMirrored()
       
    75     {
       
    76     FUNC_LOG;
       
    77     return Layout_Meta_Data::IsMirrored();
       
    78     }
       
    79 
       
    80 // ---------------------------------------------------------------------------
       
    81 // Fills given TRect with rectangle for given layout component. Returns EFalse
       
    82 // for status pane descendants if requested layout component is not available
       
    83 // in current layout. For other components returns always ETrue (returned
       
    84 // rectangle is from layout definition).
       
    85 // ---------------------------------------------------------------------------
       
    86 //
       
    87 EXPORT_C TBool CFsLayoutManager::LayoutMetricsRect(
       
    88     const TRect &aParent,
       
    89     TFsLayoutMetrics aParam,
       
    90     TRect& aRect,
       
    91     TInt aVariety,
       
    92     TInt aRow,
       
    93     TInt /*aCol*/ )
       
    94     {
       
    95     FUNC_LOG;
       
    96 
       
    97     //<CMAIL>
       
    98 
       
    99     TBool retVal( ETrue );
       
   100     TAknLayoutRect rect;
       
   101 
       
   102     switch ( aParam )
       
   103         {
       
   104         case EFsLmScreen:
       
   105             rect.LayoutRect( aParent,
       
   106                 AknLayoutScalable_Apps::Screen().LayoutLine() );
       
   107             break;
       
   108         case EFsLmApplicationWindow:
       
   109             rect.LayoutRect( aParent,
       
   110                 AknLayoutScalable_Apps::application_window().LayoutLine() );
       
   111             break;
       
   112         case EFsLmAreaTopPane:
       
   113             rect.LayoutRect( aParent,
       
   114                 AknLayoutScalable_Apps::area_top_pane( aVariety ).LayoutLine() );
       
   115             break;
       
   116         case EFsLmBgSpFsCtrlbarPane:
       
   117             rect.LayoutRect( aParent,
       
   118                 AknLayoutScalable_Apps::bg_sp_fs_ctrlbar_pane( aVariety ).LayoutLine() );
       
   119             break;
       
   120 /*        case EFsLmListMediumLine:
       
   121             rect.LayoutRect( aParent,
       
   122                 AknLayoutScalable_Apps::list_medium_line().LayoutLine() );
       
   123             break;*/
       
   124         case EFsLmListMediumLineG1:
       
   125             rect.LayoutRect( aParent,
       
   126                 AknLayoutScalable_Apps::list_medium_line_g1( aVariety ).LayoutLine() );
       
   127             break;
       
   128         case EFsLmListMediumLineG2G1:
       
   129             rect.LayoutRect( aParent,
       
   130                 AknLayoutScalable_Apps::list_medium_line_g2_g1( aVariety ).LayoutLine() );
       
   131             break;
       
   132         case EFsLmListMediumLineG2G2:
       
   133             rect.LayoutRect( aParent,
       
   134                 AknLayoutScalable_Apps::list_medium_line_g2_g2( aVariety ).LayoutLine() );
       
   135             break;
       
   136         case EFsLmListMediumLineG3G1:
       
   137             rect.LayoutRect( aParent,
       
   138                 AknLayoutScalable_Apps::list_medium_line_g3_g1( aVariety ).LayoutLine() );
       
   139             break;
       
   140         case EFsLmListMediumLineG3G2:
       
   141             rect.LayoutRect( aParent,
       
   142                 AknLayoutScalable_Apps::list_medium_line_g3_g2( aVariety ).LayoutLine() );
       
   143             break;
       
   144         case EFsLmListMediumLineG3G3:
       
   145             rect.LayoutRect( aParent,
       
   146                 AknLayoutScalable_Apps::list_medium_line_g3_g3( aVariety ).LayoutLine() );
       
   147             break;
       
   148         case EFsLmListMediumLineRightIconG1:
       
   149             rect.LayoutRect( aParent,
       
   150                 AknLayoutScalable_Apps::list_medium_line_right_icon_g1().LayoutLine() );
       
   151             break;
       
   152         case EFsLmListMediumLineRightIconx2G1:
       
   153             rect.LayoutRect( aParent,
       
   154                 AknLayoutScalable_Apps::list_medium_line_right_iconx2_g1().LayoutLine() );
       
   155             break;
       
   156         case EFsLmListMediumLineRightIconx2G2:
       
   157             rect.LayoutRect( aParent,
       
   158                 AknLayoutScalable_Apps::list_medium_line_right_iconx2_g2().LayoutLine() );
       
   159             break;
       
   160         case EFsLmListMediumLineT2G1:
       
   161             rect.LayoutRect( aParent,
       
   162                 AknLayoutScalable_Apps::list_medium_line_t2_g1( aVariety ).LayoutLine() );
       
   163             break;
       
   164         case EFsLmListMediumLineT2G2G1:
       
   165             rect.LayoutRect( aParent,
       
   166                 AknLayoutScalable_Apps::list_medium_line_t2_g2_g1( aVariety ).LayoutLine() );
       
   167             break;
       
   168         case EFsLmListMediumLineT2G2G2:
       
   169             rect.LayoutRect( aParent,
       
   170                 AknLayoutScalable_Apps::list_medium_line_t2_g2_g2( aVariety ).LayoutLine() );
       
   171             break;
       
   172         case EFsLmListMediumLineT2G3G1:
       
   173             rect.LayoutRect( aParent,
       
   174                 AknLayoutScalable_Apps::list_medium_line_t2_g3_g1( aVariety ).LayoutLine() );
       
   175             break;
       
   176         case EFsLmListMediumLineT2G3G2:
       
   177             rect.LayoutRect( aParent,
       
   178                 AknLayoutScalable_Apps::list_medium_line_t2_g3_g2( aVariety ).LayoutLine() );
       
   179             break;
       
   180         case EFsLmListMediumLineT2G3G3:
       
   181             rect.LayoutRect( aParent,
       
   182                 AknLayoutScalable_Apps::list_medium_line_t2_g3_g3( aVariety ).LayoutLine() );
       
   183             break;
       
   184         case EFsLmListMediumLineT2RightIconG1:
       
   185             rect.LayoutRect( aParent,
       
   186                 AknLayoutScalable_Apps::list_medium_line_t2_right_icon_g1().LayoutLine() );
       
   187             break;
       
   188         case EFsLmListMediumLineT2RightIconx2G1:
       
   189             rect.LayoutRect( aParent,
       
   190                 AknLayoutScalable_Apps::list_medium_line_t2_right_iconx2_g1().LayoutLine() );
       
   191             break;
       
   192         case EFsLmListMediumLineT2RightIconx2G2:
       
   193             rect.LayoutRect( aParent,
       
   194                 AknLayoutScalable_Apps::list_medium_line_t2_right_iconx2_g2().LayoutLine() );
       
   195             break;
       
   196         case EFsLmListMediumLineT3G1:
       
   197             rect.LayoutRect( aParent,
       
   198                 AknLayoutScalable_Apps::list_medium_line_t3_g1( aVariety ).LayoutLine() );
       
   199             break;
       
   200         case EFsLmListMediumLineT3G2G1:
       
   201             rect.LayoutRect( aParent,
       
   202                 AknLayoutScalable_Apps::list_medium_line_t3_g2_g1( aVariety ).LayoutLine() );
       
   203             break;
       
   204         case EFsLmListMediumLineT3G2G2:
       
   205             rect.LayoutRect( aParent,
       
   206                 AknLayoutScalable_Apps::list_medium_line_t3_g2_g2( aVariety ).LayoutLine() );
       
   207             break;
       
   208         case EFsLmListMediumLineT3G3G1:
       
   209             rect.LayoutRect( aParent,
       
   210                 AknLayoutScalable_Apps::list_medium_line_t3_g3_g1( aVariety ).LayoutLine() );
       
   211             break;
       
   212         case EFsLmListMediumLineT3G3G2:
       
   213             rect.LayoutRect( aParent,
       
   214                 AknLayoutScalable_Apps::list_medium_line_t3_g3_g2( aVariety ).LayoutLine() );
       
   215             break;
       
   216         case EFsLmListMediumLineT3G3G3:
       
   217             rect.LayoutRect( aParent,
       
   218                 AknLayoutScalable_Apps::list_medium_line_t3_g3_g3( aVariety ).LayoutLine() );
       
   219             break;
       
   220         case EFsLmFolderListMediumLineG1: // Values for folderlist
       
   221 		    rect.LayoutRect( aParent, AknLayoutScalable_Avkon::list_single_large_graphic_pane_g1( aVariety ).LayoutLine() );		      
       
   222             break;
       
   223         case EFsLmListMediumLineT3RightIconx2G1:
       
   224             rect.LayoutRect( aParent,
       
   225                 AknLayoutScalable_Apps::list_medium_line_t3_right_iconx2_g1().LayoutLine() );
       
   226             break;
       
   227         case EFsLmListMediumLineT3RightIconx2G2:
       
   228             rect.LayoutRect( aParent,
       
   229                 AknLayoutScalable_Apps::list_medium_line_t3_right_iconx2_g2().LayoutLine() );
       
   230             break;
       
   231         case EFsLmListMediumLineX2:
       
   232             rect.LayoutRect( aParent,
       
   233                 AknLayoutScalable_Apps::list_medium_line_x2().LayoutLine() );
       
   234             break;
       
   235         case EFsLmListMediumLineX2G1:
       
   236             rect.LayoutRect( aParent,
       
   237                 AknLayoutScalable_Apps::list_medium_line_x2_g1( aVariety ).LayoutLine() );
       
   238             break;
       
   239         case EFsLmListMediumLineX2T3G3G1:
       
   240             rect.LayoutRect( aParent,
       
   241                 AknLayoutScalable_Apps::list_medium_line_x2_t3_g3_g1( aVariety ).LayoutLine() );
       
   242             break;
       
   243         case EFsLmListMediumLineX2T3G3G2:
       
   244             rect.LayoutRect( aParent,
       
   245                 AknLayoutScalable_Apps::list_medium_line_x2_t3_g3_g2( aVariety ).LayoutLine() );
       
   246             break;
       
   247         case EFsLmListMediumLineX2T3G3G3:
       
   248             rect.LayoutRect( aParent,
       
   249                 AknLayoutScalable_Apps::list_medium_line_x2_t3_g3_g3( aVariety ).LayoutLine() );
       
   250             break;
       
   251         case EFsLmListMediumLineX2T3G4G1:
       
   252             rect.LayoutRect( aParent,
       
   253                 AknLayoutScalable_Apps::list_medium_line_x2_t3_g4_g1( aVariety ).LayoutLine() );
       
   254             break;
       
   255         case EFsLmListMediumLineX2T3G4G2:
       
   256             rect.LayoutRect( aParent,
       
   257                 AknLayoutScalable_Apps::list_medium_line_x2_t3_g4_g2( aVariety ).LayoutLine() );
       
   258             break;
       
   259         case EFsLmListMediumLineX2T3G4G3:
       
   260             rect.LayoutRect( aParent,
       
   261                 AknLayoutScalable_Apps::list_medium_line_x2_t3_g4_g3( aVariety ).LayoutLine() );
       
   262             break;
       
   263         case EFsLmListMediumLineX2T4G4G4:
       
   264             rect.LayoutRect( aParent,
       
   265                 AknLayoutScalable_Apps::list_medium_line_x2_t4_g4_g4( aVariety ).LayoutLine() );
       
   266             break;
       
   267         case EFsLmListMediumLineX3:
       
   268             rect.LayoutRect( aParent,
       
   269                 AknLayoutScalable_Apps::list_medium_line_x3().LayoutLine() );
       
   270             break;
       
   271         case EFsLmListMediumLineX3T4G4G4:
       
   272             rect.LayoutRect( aParent,
       
   273                 AknLayoutScalable_Apps::list_medium_line_x3_t4_g4_g4( aVariety ).LayoutLine() );
       
   274             break;
       
   275         case EFsLmListSingleDycRowPane:
       
   276             rect.LayoutRect( aParent,
       
   277                 AknLayoutScalable_Apps::list_single_dyc_row_pane( aVariety, 0, aRow ).LayoutLine() );
       
   278             break;
       
   279         case EFsLmListSingleDycRowPaneG1:
       
   280             rect.LayoutRect( aParent,
       
   281                 AknLayoutScalable_Apps::list_single_dyc_row_pane_g1( aVariety ).LayoutLine() );
       
   282             break;
       
   283         case EFsLmListSingleDycRowPaneG2:
       
   284             rect.LayoutRect( aParent,
       
   285                 AknLayoutScalable_Apps::list_single_dyc_row_pane_g2( aVariety ).LayoutLine() );
       
   286             break;
       
   287         case EFsLmListSingleDycRowPaneG3:
       
   288             rect.LayoutRect( aParent,
       
   289                 AknLayoutScalable_Apps::list_single_dyc_row_pane_g3( aVariety ).LayoutLine() );
       
   290             break;
       
   291         case EFsLmListSingleDycRowPaneG4:
       
   292             rect.LayoutRect( aParent,
       
   293                 AknLayoutScalable_Apps::list_single_dyc_row_pane_g4( aVariety ).LayoutLine() );
       
   294             break;
       
   295         case EFsLmListSingleDycRowTextPane:
       
   296             rect.LayoutRect( aParent,
       
   297                 AknLayoutScalable_Apps::list_single_dyc_row_text_pane( aVariety ).LayoutLine() );
       
   298             break;
       
   299         case EFsLmListSingleFsDycPane:
       
   300             rect.LayoutRect( aParent,
       
   301                 AknLayoutScalable_Apps::list_single_fs_dyc_pane( aVariety ).LayoutLine() );
       
   302             break;
       
   303         case EFsLmMainPane:
       
   304             rect.LayoutRect( aParent,
       
   305                 AknLayoutScalable_Apps::main_pane( aVariety ).LayoutLine() );
       
   306             break;
       
   307         case EFsLmMainSpFsCtrlbarButtonPaneCp01:
       
   308             rect.LayoutRect( aParent,
       
   309                 AknLayoutScalable_Apps::main_sp_fs_ctrlbar_button_pane_cp01().LayoutLine() );
       
   310             break;
       
   311         case EFsLmMainSpFsCtrlbarDdmenuPane:
       
   312             rect.LayoutRect( aParent,
       
   313                 AknLayoutScalable_Apps::main_sp_fs_ctrlbar_ddmenu_pane().LayoutLine() );
       
   314             break;
       
   315         case EFsLmMainSpFsCtrlbarDdmenuPaneG1:
       
   316             rect.LayoutRect( aParent,
       
   317                 AknLayoutScalable_Apps::main_sp_fs_ctrlbar_ddmenu_pane_g1( aVariety ).LayoutLine() );
       
   318             break;
       
   319         case EFsLmMainSpFsCtrlbarDdmenuPaneG2:
       
   320             rect.LayoutRect( aParent,
       
   321                 AknLayoutScalable_Apps::main_sp_fs_ctrlbar_ddmenu_pane_g2( aVariety ).LayoutLine() );
       
   322             break;
       
   323         case EFsLmMainSpFsCtrlbarPane:
       
   324             {
       
   325             const TInt variety( Layout_Meta_Data::IsPenEnabled() ? 2 : 0 );
       
   326             rect.LayoutRect( aParent,
       
   327                 AknLayoutScalable_Apps::main_sp_fs_ctrlbar_pane( variety ).LayoutLine() );
       
   328             }
       
   329             break;
       
   330         case EFsLmMainSpFsCtrlbarPaneG1:
       
   331             rect.LayoutRect( aParent,
       
   332                 AknLayoutScalable_Apps::main_sp_fs_ctrlbar_pane_g1().LayoutLine() );
       
   333             break;
       
   334         case EFsLmMainSpFsCtrlbarPaneG2:
       
   335             rect.LayoutRect( aParent,
       
   336                 AknLayoutScalable_Apps::main_sp_fs_ctrlbar_pane_g2().LayoutLine() );
       
   337             break;
       
   338         case EFsLmMainSpFsListscrollPaneTe:
       
   339             rect.LayoutRect( aParent,
       
   340                 AknLayoutScalable_Apps::main_sp_fs_listscroll_pane_te().LayoutLine() );
       
   341             break;
       
   342         case EFsLmPopupSpFsActionMenuPane:
       
   343             rect.LayoutRect( aParent,
       
   344                 AknLayoutScalable_Apps::popup_sp_fs_action_menu_pane( aVariety ).LayoutLine() );
       
   345             break;
       
   346         case EFsLmMainSpFsListPane:
       
   347 		    rect.LayoutRect( aParent, AknLayoutScalable_Avkon::list_gen_pane( aVariety ).LayoutLine() );
       
   348             break;
       
   349         case EFsLmSpFsScrollPane:
       
   350 		    rect.LayoutRect( aParent, AknLayoutScalable_Avkon::scroll_pane( aVariety ).LayoutLine() );
       
   351             break;
       
   352         case EFsLmSpFsActionMenuListGenePaneG1:
       
   353             rect.LayoutRect( aParent,
       
   354                 AknLayoutScalable_Apps::sp_fs_action_menu_list_gene_pane_g1( aVariety ).LayoutLine() );
       
   355             break;
       
   356 
       
   357         //</CMAIL>
       
   358 
       
   359         default:
       
   360             // This is error case
       
   361             retVal = EFalse;
       
   362             break;
       
   363         }
       
   364 
       
   365     if ( retVal )
       
   366         {
       
   367         aRect = rect.Rect();
       
   368         }
       
   369 
       
   370     return retVal;
       
   371     }
       
   372 
       
   373 
       
   374 // ---------------------------------------------------------------------------
       
   375 // This method returns size of rectangle for given layout component. Returns
       
   376 // EFalse for status pane descendants if requested layout component is not
       
   377 // available in current layout. For other components returns always ETrue
       
   378 // (returned size is from layout definition).
       
   379 // ---------------------------------------------------------------------------
       
   380 //
       
   381 EXPORT_C TBool CFsLayoutManager::LayoutMetricsSize(
       
   382     const TRect &aParent,
       
   383     TFsLayoutMetrics aParam,
       
   384     TSize& aSize,
       
   385     TInt aVariety,
       
   386     TInt aRow,
       
   387     TInt aCol )
       
   388 	{
       
   389     FUNC_LOG;
       
   390     TRect rect;
       
   391 	TBool retVal(
       
   392 	    LayoutMetricsRect( aParent, aParam, rect, aVariety, aRow, aCol ) );
       
   393 	aSize = rect.Size();
       
   394 	return retVal;
       
   395 	}
       
   396 
       
   397 
       
   398 // ---------------------------------------------------------------------------
       
   399 // This method returns position of top left corner for given layout component.
       
   400 // Returns EFalse for status pane descendants if requested layout component is
       
   401 // not available in current layout. For other components returns always ETrue
       
   402 // (returned position is from layout definition).
       
   403 // ---------------------------------------------------------------------------
       
   404 //
       
   405 EXPORT_C TBool CFsLayoutManager::LayoutMetricsPosition(
       
   406     const TRect &aParent,
       
   407     TFsLayoutMetrics aParam,
       
   408     TPoint& aPos,
       
   409     TInt aVariety,
       
   410     TInt aRow,
       
   411     TInt aCol )
       
   412 	{
       
   413     FUNC_LOG;
       
   414 	TRect rect;
       
   415 	TBool retVal(
       
   416 	    LayoutMetricsRect( aParent, aParam, rect, aVariety, aRow, aCol ) );
       
   417 	aPos = rect.iTl;
       
   418 	return retVal;
       
   419 	}
       
   420 
       
   421 // ---------------------------------------------------------------------------
       
   422 // This method returns text position and font information of given layout
       
   423 // component. Returns EFalse for status pane descendants if requested layout
       
   424 // component is not available in current layout. For other components returns
       
   425 // always ETrue (returned position is from layout definition).
       
   426 // ---------------------------------------------------------------------------
       
   427 //
       
   428 /*
       
   429 TRect ListSingleDycRow( const TRect& aParent, TInt aRows, TInt aRow )
       
   430     {
       
   431     TAknLayoutRect layoutRect;
       
   432     layoutRect.LayoutRect(aParent, AknLayoutScalable_Apps::list_single_dyc_row_pane(aRows - 1, 0, aRow - 1).LayoutLine());
       
   433     return layoutRect.Rect();
       
   434     }*/
       
   435 
       
   436 // ---------------------------------------------------------------------------
       
   437 // This method returns text position and font information of given layout
       
   438 // component. Returns EFalse for status pane descendants if requested layout
       
   439 // component is not available in current layout. For other components returns
       
   440 // always ETrue (returned position is from layout definition).
       
   441 // ---------------------------------------------------------------------------
       
   442 //
       
   443 EXPORT_C TBool CFsLayoutManager::LayoutMetricsText(
       
   444     const TRect &aParent,
       
   445     TFsLayoutMetrics aParam,
       
   446     TFsText& aText,
       
   447     TInt aVariety,
       
   448     TInt /*aRow*/ )
       
   449     {
       
   450     FUNC_LOG;
       
   451 
       
   452     //<CMAIL>
       
   453 
       
   454     TBool retVal( ETrue );
       
   455     TAknLayoutText textLayout;
       
   456 
       
   457     switch ( aParam )
       
   458         {
       
   459         case EFsLmListMediumLineG2T1:
       
   460             textLayout.LayoutText( aParent,
       
   461                 AknLayoutScalable_Apps::list_medium_line_g2_t1( aVariety ).LayoutLine() );
       
   462             break;
       
   463         case EFsLmListMediumLineT2RightIconT1:
       
   464             textLayout.LayoutText( aParent,
       
   465                 AknLayoutScalable_Apps::list_medium_line_t2_right_icon_t1().LayoutLine() );
       
   466             break;
       
   467         case EFsLmListMediumLineT2RightIconT2:
       
   468             textLayout.LayoutText( aParent,
       
   469                 AknLayoutScalable_Apps::list_medium_line_t2_right_icon_t2().LayoutLine() );
       
   470             break;
       
   471         case EFsLmListMediumLineX2T3G3T1:
       
   472             textLayout.LayoutText( aParent,
       
   473                 AknLayoutScalable_Apps::list_medium_line_x2_t3_g3_t1( aVariety ).LayoutLine() );
       
   474             break;
       
   475         case EFsLmListMediumLineX2T3G3T2:
       
   476             textLayout.LayoutText( aParent,
       
   477                 AknLayoutScalable_Apps::list_medium_line_x2_t3_g3_t2( aVariety ).LayoutLine() );
       
   478             break;
       
   479         case EFsLmListMediumLineX2T3G2T1:
       
   480             textLayout.LayoutText( aParent,
       
   481                 AknLayoutScalable_Apps::list_medium_line_x2_t3_g2_t1( aVariety ).LayoutLine() );
       
   482             break;
       
   483         case EFsLmListMediumLineX2T3G2T2:
       
   484             textLayout.LayoutText( aParent,
       
   485                 AknLayoutScalable_Apps::list_medium_line_x2_t3_g2_t2( aVariety ).LayoutLine() );
       
   486             break;
       
   487         case EFsLmListMediumLineX2T2G4T1:
       
   488             textLayout.LayoutText( aParent,
       
   489                 AknLayoutScalable_Apps::list_medium_line_x2_t2_g4_t1( aVariety ).LayoutLine() );
       
   490             break;
       
   491         case EFsLmListMediumLineX2T2G3T1:
       
   492             textLayout.LayoutText( aParent,
       
   493                 AknLayoutScalable_Apps::list_medium_line_x2_t2_g3_t1( aVariety ).LayoutLine() );
       
   494             break;
       
   495         case EFsLmListMediumLineX2T2G2T1:
       
   496             textLayout.LayoutText( aParent,
       
   497                 AknLayoutScalable_Apps::list_medium_line_x2_t2_g2_t1( aVariety ).LayoutLine() );
       
   498             break;
       
   499         case EFsLmListMediumLineX2T3T3:
       
   500             textLayout.LayoutText( aParent,
       
   501                 AknLayoutScalable_Apps::list_medium_line_x2_t3_t3().LayoutLine() );
       
   502             break;
       
   503         case EFsLmListMediumLineT4G4T3:
       
   504         /*
       
   505             TAknLayoutRect textParent;
       
   506             textParent.LayoutRect(ListSingleDycRow(aParent, 3, 3),
       
   507                     AknLayoutScalable_Apps::list_single_dyc_row_text_pane( 5 ).LayoutLine());
       
   508             textLayout.LayoutText( textParent.Rect(),
       
   509                 AknLayoutScalable_Apps::list_single_dyc_row_text_pane_t1( 5 ).LayoutLine() ); //list_medium_line_t4_g4_t3*/
       
   510             textLayout.LayoutText( aParent,
       
   511                 AknLayoutScalable_Apps::list_medium_line_t4_g4_t3( aVariety ).LayoutLine() ); //list_medium_line_t4_g4_t3*/
       
   512             break;
       
   513         case EFsLmListMediumLineX3T4G4T2:
       
   514             textLayout.LayoutText( aParent,
       
   515                 AknLayoutScalable_Apps::list_medium_line_x3_t4_g4_t2( aVariety ).LayoutLine() );
       
   516             break;
       
   517         case EFsLmListMediumLineX3T4G4T3:
       
   518             textLayout.LayoutText( aParent,
       
   519                 AknLayoutScalable_Apps::list_medium_line_x3_t4_g4_t3( aVariety ).LayoutLine() );
       
   520             break;
       
   521         case EFsLmListMediumLineX3T4G4T4:
       
   522             textLayout.LayoutText( aParent,
       
   523                 AknLayoutScalable_Apps::list_medium_line_x3_t4_g4_t4( aVariety ).LayoutLine() );
       
   524             break;
       
   525         case EFsLmListMediumLineT3RightIconx2T1:
       
   526             textLayout.LayoutText( aParent,
       
   527                 AknLayoutScalable_Apps::list_medium_line_t3_right_iconx2_t1().LayoutLine() );
       
   528             break;
       
   529         case EFsLmListMediumLineT3RightIconx2T2:
       
   530             textLayout.LayoutText( aParent,
       
   531                 AknLayoutScalable_Apps::list_medium_line_t3_right_iconx2_t2().LayoutLine() );
       
   532             break;
       
   533         case EFsLmListMediumLineT2RightIconx2T1:
       
   534             textLayout.LayoutText( aParent,
       
   535                 AknLayoutScalable_Apps::list_medium_line_t2_right_iconx2_t1().LayoutLine() );
       
   536             break;
       
   537         case EFsLmListMediumLineT2RightIconx2T2:
       
   538             textLayout.LayoutText( aParent,
       
   539                 AknLayoutScalable_Apps::list_medium_line_t2_right_iconx2_t2().LayoutLine() );
       
   540             break;
       
   541         case EFsLmListMediumLineRightIconx2T1:
       
   542             textLayout.LayoutText( aParent,
       
   543                 AknLayoutScalable_Apps::list_medium_line_right_iconx2_t1().LayoutLine() );
       
   544             break;
       
   545         case EFsLmListMediumLineT3G3T1:
       
   546             textLayout.LayoutText( aParent,
       
   547                 AknLayoutScalable_Apps::list_medium_line_t3_g3_t1( aVariety ).LayoutLine() );
       
   548             break;
       
   549         case EFsLmListMediumLineT3G3T2:
       
   550             textLayout.LayoutText( aParent,
       
   551                 AknLayoutScalable_Apps::list_medium_line_t3_g3_t2( aVariety ).LayoutLine() );
       
   552             break;
       
   553         case EFsLmListMediumLineT3G3T3:
       
   554             textLayout.LayoutText( aParent,
       
   555                 AknLayoutScalable_Apps::list_medium_line_t3_g3_t3( aVariety ).LayoutLine() );
       
   556             break;
       
   557         case EFsLmListMediumLineT2G3T1:
       
   558             textLayout.LayoutText( aParent,
       
   559                 AknLayoutScalable_Apps::list_medium_line_t2_g3_t1( aVariety ).LayoutLine() );
       
   560             break;
       
   561         case EFsLmListMediumLineT2G3T2:
       
   562             textLayout.LayoutText( aParent,
       
   563                 AknLayoutScalable_Apps::list_medium_line_t2_g3_t2( aVariety ).LayoutLine() );
       
   564             break;
       
   565         case EFsLmListMediumLineG3T1:
       
   566             textLayout.LayoutText( aParent,
       
   567                 AknLayoutScalable_Apps::list_medium_line_g3_t1( aVariety ).LayoutLine() );
       
   568             break;
       
   569         case EFsLmListMediumLinePlainT1:
       
   570             textLayout.LayoutText( aParent,
       
   571                 AknLayoutScalable_Apps::list_medium_line_plain_t1().LayoutLine() );
       
   572             break;
       
   573         case EFsLmListMediumLineT3T1:
       
   574             textLayout.LayoutText( aParent,
       
   575                 AknLayoutScalable_Apps::list_medium_line_t3_t1( aVariety ).LayoutLine() );
       
   576             break;
       
   577         case EFsLmListMediumLineT3T2:
       
   578             textLayout.LayoutText( aParent,
       
   579                 AknLayoutScalable_Apps::list_medium_line_t3_t2( aVariety ).LayoutLine() );
       
   580             break;
       
   581         case EFsLmListMediumLineT3T3:
       
   582             textLayout.LayoutText( aParent,
       
   583                 AknLayoutScalable_Apps::list_medium_line_t3_t3( aVariety ).LayoutLine() );
       
   584             break;
       
   585         case EFsLmListMediumLineT2T1:
       
   586             textLayout.LayoutText( aParent,
       
   587                 AknLayoutScalable_Apps::list_medium_line_t2_t1( aVariety ).LayoutLine() );
       
   588             break;
       
   589         case EFsLmListMediumLineT2T2:
       
   590             textLayout.LayoutText( aParent,
       
   591                 AknLayoutScalable_Apps::list_medium_line_t2_t2( aVariety ).LayoutLine() );
       
   592             break;
       
   593         case EFsLmListMediumLineRightIconT1:
       
   594             textLayout.LayoutText( aParent,
       
   595                 AknLayoutScalable_Apps::list_medium_line_right_icon_t1().LayoutLine() );
       
   596             break;
       
   597         case EFsLmListMediumLineT3G2T1:
       
   598             textLayout.LayoutText( aParent,
       
   599                 AknLayoutScalable_Apps::list_medium_line_t3_g2_t1( aVariety ).LayoutLine() );
       
   600             break;
       
   601         case EFsLmListMediumLineT3G2T2:
       
   602             textLayout.LayoutText( aParent,
       
   603                 AknLayoutScalable_Apps::list_medium_line_t3_g2_t2( aVariety ).LayoutLine() );
       
   604             break;
       
   605         case EFsLmListMediumLineT3G2T3:
       
   606             textLayout.LayoutText( aParent,
       
   607                 AknLayoutScalable_Apps::list_medium_line_t3_g2_t3( aVariety ).LayoutLine() );
       
   608             break;
       
   609         case EFsLmListMediumLineT2G2T1:
       
   610             textLayout.LayoutText( aParent,
       
   611                 AknLayoutScalable_Apps::list_medium_line_t2_g2_t1( aVariety ).LayoutLine() );
       
   612             break;
       
   613         case EFsLmListMediumLineT2G2T2:
       
   614             textLayout.LayoutText( aParent,
       
   615                 AknLayoutScalable_Apps::list_medium_line_t2_g2_t2( aVariety ).LayoutLine() );
       
   616             break;
       
   617         case EFsLmListMediumLineX2T3G4T1:
       
   618             textLayout.LayoutText( aParent,
       
   619                 AknLayoutScalable_Apps::list_medium_line_x2_t3_g4_t1( aVariety ).LayoutLine() );
       
   620             break;
       
   621         case EFsLmListMediumLineX2T3G4T2:
       
   622             textLayout.LayoutText( aParent,
       
   623                 AknLayoutScalable_Apps::list_medium_line_x2_t3_g4_t2( aVariety ).LayoutLine() );
       
   624             break;
       
   625         case EFsLmListMediumLineX2T3G4T3:
       
   626             textLayout.LayoutText( aParent,
       
   627                 AknLayoutScalable_Apps::list_medium_line_x2_t3_g4_t3( aVariety ).LayoutLine() );
       
   628             break;
       
   629         case EFsLmListMediumLinePlainT3T1:
       
   630             textLayout.LayoutText( aParent,
       
   631                 AknLayoutScalable_Apps::list_medium_line_plain_t3_t1().LayoutLine() );
       
   632             break;
       
   633         case EFsLmListMediumLinePlainT3T2:
       
   634             textLayout.LayoutText( aParent,
       
   635                 AknLayoutScalable_Apps::list_medium_line_plain_t3_t2().LayoutLine() );
       
   636             break;
       
   637         case EFsLmListMediumLinePlainT3T3:
       
   638             textLayout.LayoutText( aParent,
       
   639                 AknLayoutScalable_Apps::list_medium_line_plain_t3_t3().LayoutLine() );
       
   640             break;
       
   641         case EFsLmListMediumLinePlainT2T1:
       
   642             textLayout.LayoutText( aParent,
       
   643                 AknLayoutScalable_Apps::list_medium_line_plain_t2_t1().LayoutLine() );
       
   644             break;
       
   645         case EFsLmListMediumLinePlainT2T2:
       
   646             textLayout.LayoutText( aParent,
       
   647                 AknLayoutScalable_Apps::list_medium_line_plain_t2_t2().LayoutLine() );
       
   648             break;
       
   649         case EFsLmListMediumLineT1:
       
   650             textLayout.LayoutText( aParent,
       
   651                 AknLayoutScalable_Apps::list_medium_line_t1( aVariety ).LayoutLine() );
       
   652             break;
       
   653         case EFsLmFolderListMediumLineT1: // Values for folderlist
       
   654 		    textLayout.LayoutText( aParent, AknLayoutScalable_Avkon::list_single_large_graphic_pane_t1( aVariety ).LayoutLine() );		      		                
       
   655             break;
       
   656         case EFsLmMainSpFsCtrlbarDdmenuPaneT1:
       
   657             textLayout.LayoutText( aParent,
       
   658                 AknLayoutScalable_Apps::main_sp_fs_ctrlbar_ddmenu_pane_t1( aVariety ).LayoutLine() );
       
   659             break;
       
   660         case EFsLmListSingleDycRowTextPaneT1:
       
   661             textLayout.LayoutText( aParent,
       
   662                 AknLayoutScalable_Apps::list_single_dyc_row_text_pane_t1( aVariety ).LayoutLine() );
       
   663             break;
       
   664         case EFsLmListSingleDycRowTextPaneT2:
       
   665             textLayout.LayoutText( aParent,
       
   666                 AknLayoutScalable_Apps::list_single_dyc_row_text_pane_t2( aVariety ).LayoutLine() );
       
   667             break;
       
   668         case EFsLmListSingleDycRowTextPaneT3:
       
   669             textLayout.LayoutText( aParent,
       
   670                 AknLayoutScalable_Apps::list_single_dyc_row_text_pane_t3( aVariety ).LayoutLine() );
       
   671             break;
       
   672         case EFsLmSpFsActionMenuListGenePaneT1:
       
   673             textLayout.LayoutText( aParent,
       
   674                 AknLayoutScalable_Apps::sp_fs_action_menu_list_gene_pane_t1( aVariety ).LayoutLine() );
       
   675             break;
       
   676 
       
   677         //</CMAIL>
       
   678 
       
   679 
       
   680         default:
       
   681             retVal = EFalse;
       
   682             break;
       
   683         }
       
   684 
       
   685     if ( retVal )
       
   686         {
       
   687         aText.iTextRect = textLayout.TextRect();
       
   688         aText.iFont = textLayout.Font();
       
   689         //aText.iColor = textLayout.Color();
       
   690         const CAknLayoutFont* layoutFont(
       
   691             CAknLayoutFont::AsCAknLayoutFontOrNull( aText.iFont ) );
       
   692         //TInt textPaneHeight( 0 );
       
   693         TInt textPaneAscent( 0 );
       
   694         if ( layoutFont )
       
   695             {
       
   696             textPaneAscent = layoutFont->TextPaneTopToBaseline();
       
   697             }
       
   698         else
       
   699             {
       
   700             textPaneAscent = aText.iFont->AscentInPixels();
       
   701             }
       
   702         aText.iOffset = textPaneAscent;
       
   703         aText.iAlign = textLayout.Align();
       
   704         }
       
   705 
       
   706     return retVal;
       
   707     }
       
   708