emailuis/uicomponents/src/fscontrolbuttonvisualiser.cpp
branchRCL_3
changeset 12 4ce476e64c59
parent 10 f5907b1a1053
child 17 67369d1b217f
--- 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 <AknsConstants.h>
 #include <AknUtils.h>
 #include <touchlogicalfeedback.h>
+#include <layoutmetadata.cdl.h>
 
 #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();
         }
     }