diff -r a3a1ae9acec6 -r da5135c61bad emailuis/uicomponents/src/fscontrolbuttonvisualiser.cpp --- a/emailuis/uicomponents/src/fscontrolbuttonvisualiser.cpp Mon Mar 15 12:39:10 2010 +0200 +++ b/emailuis/uicomponents/src/fscontrolbuttonvisualiser.cpp Wed Mar 31 21:08:33 2010 +0300 @@ -33,6 +33,7 @@ #include #include #include +#include #include "fscontrolbuttonvisualiser.h" #include "fscontrolbuttonmodel.h" @@ -101,6 +102,11 @@ // Request callback after image is loaded to refresh it's size and // position. iParent->Env().TextureManager().AddLoadObserverL( this ); + + iParentLayout->SetFlag( EAlfVisualFlagLayoutUpdateNotification ); + iButtonLayout->SetFlags( EAlfVisualFlagManualSize | EAlfVisualFlagManualPosition ); + iButtonContentLayout->SetFlags( EAlfVisualFlagManualSize | EAlfVisualFlagManualPosition ); + } } @@ -323,8 +329,6 @@ } // Set new position for background visual and it's content. - iButtonLayout->SetFlag( EAlfVisualFlagManualPosition ); - iButtonContentLayout->SetFlag( EAlfVisualFlagManualPosition ); iButtonLayout->SetPos( pos ); iButtonContentLayout->SetPos( pos ); } @@ -642,9 +646,6 @@ const TPoint oldSize( iButtonContentLayout->Size().Target() ); - iButtonLayout->SetFlag( EAlfVisualFlagManualSize ); - iButtonContentLayout->SetFlag( EAlfVisualFlagManualSize ); - switch( iButtonModel->AutoSizeMode() ) { case MFsControlButtonInterface::EFsLayout: @@ -708,6 +709,8 @@ TRAP_IGNORE( UpdateElementsSizeL( iButtonModel->Type() ) ); + iButtonContentLayout->UpdateChildrenLayout(); + // update text styles if needed (at least one text line) const TPoint newSize( iButtonContentLayout->Size().Target() ); if ( newSize != oldSize ) @@ -1140,7 +1143,6 @@ const TInt newWidth( parentRect.Width() + textRect.Width() - text.iTextRect.Width() ); - iParentLayout->SetFlags( EAlfVisualFlagLayoutUpdateNotification ); return newWidth; } } @@ -1166,9 +1168,6 @@ void CFsControlButtonVisualiser::UpdateButtonPos() { FUNC_LOG; - iButtonLayout->SetFlag( EAlfVisualFlagManualPosition ); - iButtonContentLayout->SetFlag( EAlfVisualFlagManualPosition ); - // Set position for button background and for the content. iButtonLayout->SetPos( iButtonModel->TopLeftPoint() ); iButtonContentLayout->SetPos( iButtonModel->TopLeftPoint() ); @@ -1200,34 +1199,47 @@ break; case ECBTypeOneLineLabelOnly: CFsLayoutManager::LayoutMetricsText( parentRect, - CFsLayoutManager::EFsLmMainSpFsCtrlbarDdmenuPaneT1, text, 0 ); + CFsLayoutManager::ECmailDdmenuBtn01PaneT1, text, 1 ); text1 = text.iTextRect; break; case ECBTypeOneLineLabelIconA: - CFsLayoutManager::LayoutMetricsRect( parentRect, - CFsLayoutManager::EFsLmMainSpFsCtrlbarDdmenuPaneG2, - iconA, 0 ); - CFsLayoutManager::LayoutMetricsText( parentRect, - CFsLayoutManager::EFsLmMainSpFsCtrlbarDdmenuPaneT1, text, 2 ); - text1 = text.iTextRect; + if ( Layout_Meta_Data::IsLandscapeOrientation() ) + { + CFsLayoutManager::LayoutMetricsRect( parentRect, + CFsLayoutManager::ECmailDdmenuBtn02PaneG2, + iconA, 0 ); + CFsLayoutManager::LayoutMetricsText( parentRect, + CFsLayoutManager::ECmailDdmenuBtn02PaneT2, + text, 0 ); + } + else + { + CFsLayoutManager::LayoutMetricsRect( parentRect, + CFsLayoutManager::ECmailDdmenuBtn01PaneG1, + iconA, 1 ); + CFsLayoutManager::LayoutMetricsText( parentRect, + CFsLayoutManager::ECmailDdmenuBtn01PaneT1, + text, 0 ); + } + text1 = text.iTextRect; break; case ECBTypeOneLineLabelIconB: CFsLayoutManager::LayoutMetricsText( parentRect, - CFsLayoutManager::EFsLmMainSpFsCtrlbarDdmenuPaneT1, text, 1 ); + CFsLayoutManager::ECmailDdmenuBtn01PaneT1, text, 1 ); text1 = text.iTextRect; CFsLayoutManager::LayoutMetricsRect( parentRect, - CFsLayoutManager::EFsLmMainSpFsCtrlbarDdmenuPaneG1, - iconB, 0 ); + CFsLayoutManager::ECmailDdmenuBtn01PaneG2, + iconB, 2 ); break; case ECBTypeOneLineLabelTwoIcons: CFsLayoutManager::LayoutMetricsRect( parentRect, - CFsLayoutManager::EFsLmMainSpFsCtrlbarDdmenuPaneG2, + CFsLayoutManager::ECmailDdmenuBtn01PaneG1, iconA, 1 ); CFsLayoutManager::LayoutMetricsText( parentRect, - CFsLayoutManager::EFsLmMainSpFsCtrlbarDdmenuPaneT1, text, 3 ); + CFsLayoutManager::ECmailDdmenuBtn01PaneT1, text, 0 ); text1 = text.iTextRect; CFsLayoutManager::LayoutMetricsRect( parentRect, - CFsLayoutManager::EFsLmMainSpFsCtrlbarDdmenuPaneG1, + CFsLayoutManager::ECmailDdmenuBtn01PaneG2, iconB, 1 ); break; default: @@ -1247,8 +1259,6 @@ ( buttonSize.iHeight - oldIconSize.iHeight ) / 2 ), oldIconSize ); } - iconA.SetHeight( buttonSize.iHeight ); - text1.SetHeight( buttonSize.iHeight ); if ( iButtonModel->ContainsElement( ECBElemIconA ) ) { @@ -1270,6 +1280,14 @@ { iLabelFirstLine->SetSize( text1.Size() ); iLabelFirstLine->SetPos( text1.iTl ); + if ( Layout_Meta_Data::IsLandscapeOrientation() ) + { + iLabelFirstLine->SetAlign( EAlfAlignHCenter, EAlfAlignVCenter ); + } + else + { + iLabelFirstLine->SetAlign( EAlfAlignHLocale, EAlfAlignVCenter ); + } } } if ( iButtonModel->ContainsElement( ECBElemLabelSndLine ) ) @@ -1555,7 +1573,6 @@ if ( iParentLayout ) { // This flag is cleared when the layout is updated. - iParentLayout->SetFlags( EAlfVisualFlagLayoutUpdateNotification ); iParentLayout->UpdateChildrenLayout(); } }