uifw/EikStd/coctlsrc/AknToolbar.cpp
branchRCL_3
changeset 38 c52421ed5f07
parent 16 71dd06cfe933
child 50 a1caeb42b3a3
--- a/uifw/EikStd/coctlsrc/AknToolbar.cpp	Wed Jun 09 09:58:37 2010 +0300
+++ b/uifw/EikStd/coctlsrc/AknToolbar.cpp	Mon Jun 21 15:57:43 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -251,31 +251,26 @@
     aReader.ReadInt8();  //lines, not used currently
     iFlags = aReader.ReadInt32();
 
-    TBool enableTransparency = CAknEnv::Static()->TransparencyEnabled() && 
+    TBool enableTransparency = 
         ( ( !( iFlags & KAknToolbarFixed ) && 
                 !( iFlags & KAknToolbarFloatingUnTransparent ) ) || 
         ( iFlags & KAknToolbarTransparent && iFlags & KAknToolbarFixed ) ); 
 
-
-    if( enableTransparency ) 
+    if ( enableTransparency ) 
         {
         Window().SetRequiredDisplayMode( EColor16MA ); // Without this, ACT does not work in all cases in HW
-        TInt err = Window().SetTransparencyAlphaChannel();
-
-        if ( err == KErrNone ) // it should all ways be true in NGA
-            {
-            // Set the window initially completely transparent. This needs to be called only once.
-            Window().SetBackgroundColor(~0);
-            }
+        EnableWindowTransparency();
         }
 
-
-
-    iFrameContext = CAknsFrameBackgroundControlContext::NewL( KAknsIIDQsnFrPopupSub, 
-            TRect(), TRect(), ( iFlags & KAknToolbarFixed )? ETrue : EFalse );  
+    TRect dummyRect( 0, 0, 0, 0 );
+    iFrameContext = CAknsFrameBackgroundControlContext::NewL(
+        KAknsIIDQsnFrPopupSub, 
+        dummyRect,
+        dummyRect,
+        ( iFlags & KAknToolbarFixed ) ? ETrue : EFalse );  
 
     iBgContext = CAknsBasicBackgroundControlContext::NewL(
-        KAknsIIDQsnBgScreen, TRect(), ETrue );
+        KAknsIIDQsnBgScreen, dummyRect, ETrue );
 
     SetWithSliding( ETrue ); 
 
@@ -314,15 +309,20 @@
     // the rects correctly. 
     if ( iFlags & KAknToolbarFixed )
         {
-        if ( iFlags & KAknToolbarDefault )
+        SetFocusing( EFalse );
+        
+        // Don't set the size and position for default toolbar (never shown).
+        if ( !( iFlags & KAknToolbarDefault ) )
             {
-            SetDimmed( ETrue ); 
+            SetRect( CalculateSizeAndPosition() );
             }
-        SetFocusing( EFalse ); 
-        SetRect( CalculateSizeAndPosition() ); 
         }
 
-    AdjustAllButtons();
+    // Unnecessary for default toolbar (never shown).
+    if ( !( iFlags & KAknToolbarDefault ) )
+        {
+        AdjustAllButtons();
+        }
     }
 
 // -----------------------------------------------------------------------------
@@ -413,8 +413,9 @@
             iInternalFlags.Clear( EFixedShown );
             }
 
-        if ( visible && ( !AknLayoutUtils::PenEnabled() || 
-            ( !Layout_Meta_Data::IsLandscapeOrientation() && iFlags & KAknToolbarDefault ) ) )
+        if ( visible &&
+             !Layout_Meta_Data::IsLandscapeOrientation() &&
+             iFlags & KAknToolbarDefault )
             {
             return; 
             }
@@ -547,9 +548,7 @@
 //
 void CAknToolbar::ShowToolbarL()
     {
-    if ( iFlags & KAknToolbarFixed &&
-         ( !AknLayoutUtils::PenEnabled() ||
-           iFlags & KAknToolbarDefault ) )
+    if ( iFlags & KAknToolbarFixed && iFlags & KAknToolbarDefault )
         {
         if ( IsVisible() )
             {
@@ -592,12 +591,6 @@
         SetExtent( startPos, rect.Size() );
         UpdateControlPositions(); 
 
-        TBool redrawStoreEnabled(EFalse);
-        if( !CAknEnv::Static()->TransparencyEnabled() )
-            {
-            redrawStoreEnabled = Window().IsRedrawStoreEnabled();
-            }
-
         CTouchToolbarData* data = CheckRegistration( this );      
         if ( data && !(iFlags & KAknToolbarFixed) && iAvkonAppUi->IsForeground() )
             {
@@ -636,11 +629,6 @@
                 delete data;
                 GfxTransEffect::Deregister( this );
                 }
-
-            if ( !CAknEnv::Static()->TransparencyEnabled() && redrawStoreEnabled )
-                {
-                Window().EnableRedrawStore( ETrue );
-                }
             }
 
         // notify observer, for example touch pane, that toolbar was shown
@@ -745,11 +733,6 @@
     {
     if ( !iInternalFlags.IsSet( EShown ) ) // nothing to hide
         {
-        if ( iFlags & KAknToolbarDefault && !AknLayoutUtils::PenEnabled()
-              && IsVisible() )
-            {
-            MakeVisible( EFalse );
-            }
         return;
         }
 
@@ -1200,13 +1183,8 @@
             return;
             }
         }
-        
-    if ( aType == KAknToolbarSetVisible && iFlags & KAknToolbarDefault 
-            && !AknLayoutUtils::PenEnabled() )
-        {
-        return; 
-        }
-    else if ( aType == KAknToolbarSetVisible && !IsShown() )
+
+    if ( aType == KAknToolbarSetVisible && !IsShown() )
         {
         iInternalFlags.Set( ECalledFromFW );
         iInternalFlags.Clear( EDrawBackground ); 
@@ -1235,14 +1213,10 @@
             CAknButton* button = static_cast<CAknButton*>( item->Control() ); 
             button->ResetState();
             }
-        if ( iFlags & KAknToolbarDefault && !AknLayoutUtils::PenEnabled() && IsVisible() )
+
+        if ( iFlags & KAknToolbarFixed )
             {
-            TRAP_IGNORE( HideToolbarL() ); 
-            return; 
-            }
-        else if ( iFlags & KAknToolbarFixed )
-            {
-            if ( Layout_Meta_Data::IsLandscapeOrientation() && AknLayoutUtils::PenEnabled() )
+            if ( Layout_Meta_Data::IsLandscapeOrientation() )
                 {
                 iOrientation = EAknOrientationVertical; 
                 if ( ( iInternalFlags.IsSet( EFixedShown ) 
@@ -1262,7 +1236,7 @@
                         }
                     }
                 }
-            else if ( !( iFlags & KAknToolbarDefault ) && AknLayoutUtils::PenEnabled() )
+            else if ( !( iFlags & KAknToolbarDefault ) )
                 {
                 iOrientation = EAknOrientationHorizontal; 
                 if ( iInternalFlags.IsSet( EFixedShown ) && !iInternalFlags.IsSet( EShown ) )
@@ -1280,7 +1254,7 @@
                         }
                     }
                 }
-            else if ( ( !AknLayoutUtils::PenEnabled() || iFlags & KAknToolbarDefault ) && iInternalFlags.IsSet( EShown ) )
+            else if ( iFlags & KAknToolbarDefault && iInternalFlags.IsSet( EShown ) )
                 {
                 TRAP_IGNORE( HideToolbarL() ); 
                 return; 
@@ -2383,27 +2357,31 @@
             }
         } 
 
-    TRect rect = CalculateSizeAndPosition();
-    // Set focused item again to avoid panic in a case when toolbar has more 
-    // items in previous orientation and some of the items that do not 
-    // fit to toolbar in this orientation was focused. 
-    if ( IsFocused() )
-        {
-        TRAP_IGNORE( MoveHighlightL( iFocusedItem, EFalse ) ); 
-        }
-
-    if ( iInternalFlags.IsSet( EShown ) )
+    // Don't set the size and position for default toolbar (never shown).
+    if ( !( iFlags & KAknToolbarDefault ) )
         {
-        if ( !( iFlags & KAknToolbarFlexiblePosition ) )
+        TRect rect = CalculateSizeAndPosition();
+        // Set focused item again to avoid panic in a case when toolbar has
+        // more items in previous orientation and some of the items that do
+        // not  fit to toolbar in this orientation was focused. 
+        if ( IsFocused() )
             {
-            SetPosition( rect.iTl );
+            TRAP_IGNORE( MoveHighlightL( iFocusedItem, EFalse ) ); 
             }
-        else 
+    
+        if ( iInternalFlags.IsSet( EShown ) )
             {
-            UpdateControlPositions(); 
+            if ( !( iFlags & KAknToolbarFlexiblePosition ) )
+                {
+                SetPosition( rect.iTl );
+                }
+            else 
+                {
+                UpdateControlPositions(); 
+                }
+            SetSize( rect.Size() );
+            DrawDeferred();
             }
-        SetSize( rect.Size() );
-        DrawDeferred();
         }
     }
 
@@ -2639,14 +2617,10 @@
     {
     TBool toolbarNotVisible( !IsShown() && !( iFlags & KAknToolbarDefault ) );
     TBool fixedToolbar( iFlags & KAknToolbarFixed );
-    TBool landscapeOrientation( Layout_Meta_Data::IsLandscapeOrientation() );
-    TBool touchEnabled( AknLayoutUtils::PenEnabled() );
     TBool defaultContent( iFlags & KAknToolbarDefault );
 
     if ( toolbarNotVisible || 
          !fixedToolbar ||
-         ( defaultContent && !landscapeOrientation ) ||
-         !touchEnabled ||
          ( fixedToolbar && defaultContent ) )
         {
         return;