uifw/AvKon/src/akntitle.cpp
branchRCL_3
changeset 56 d48ab3b357f1
parent 55 aecbbf00d063
--- a/uifw/AvKon/src/akntitle.cpp	Tue Aug 31 15:28:30 2010 +0300
+++ b/uifw/AvKon/src/akntitle.cpp	Wed Sep 01 12:16:19 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-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"
@@ -96,6 +96,8 @@
 
     TBool                    iImageAutoscaling;
     TBool                    iSmallImageAutoscaling;
+    
+    CEikStatusPaneBase*      iStatusPane;
     };
 
 
@@ -212,6 +214,7 @@
         // set flags to default values
         iExtension->iFlags = 0;
         }
+   	iExtension->iStatusPane = CEikStatusPaneBase::Current();
     }
 
 
@@ -224,6 +227,7 @@
     {
     CommonConstructL();
     ReadFromResourceFileL( aReader );
+    iExtension->iStatusPane = CEikStatusPaneBase::Current();
     }
 
 
@@ -676,9 +680,9 @@
 //
 EXPORT_C void CAknTitlePane::Draw( const TRect& aRect ) const
     {
-    const TUid KActiveIdle2Uid = {0x102750F0};
-
-    if ( AppUid() == KActiveIdle2Uid )
+    	      
+    if ( iExtension->iStatusPane && 
+         iExtension->iStatusPane->IsTransparent() )
         {
         CWindowGc& gc = SystemGc();
         TRgb rgb(TRgb::Color16MA(0));
@@ -689,36 +693,42 @@
         return;
         }
 
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-
-    TRect rect( Rect() );
-
-    CWindowGc& gc=SystemGc();
-
-    if ( AknStatuspaneUtils::StaconPaneActive() ||
-         AknStatuspaneUtils::FlatLayoutActive() )
+    // Don't allow normal background drawing if
+    // background is already drawn with a background drawer.
+    const MCoeControlBackground* backgroundDrawer = FindBackground();
+    if ( !backgroundDrawer )
         {
-        MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
-
-        if( !AknsDrawUtils::Background( skin, cc, this, gc, rect ) )
+        MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+
+        TRect rect( Rect() );
+
+        CWindowGc& gc=SystemGc();
+
+        if ( AknStatuspaneUtils::StaconPaneActive() ||
+             AknStatuspaneUtils::FlatLayoutActive() )
             {
-            gc.SetPenStyle( CGraphicsContext::ENullPen );
+            MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
+
+            if( !AknsDrawUtils::Background( skin, cc, this, gc, rect ) )
+                {
+                gc.SetPenStyle( CGraphicsContext::ENullPen );
+                gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
+                gc.SetBrushColor(
+                    AKN_LAF_COLOR( KStatusPaneBackgroundGraphicsColorUsual ) );
+                gc.DrawRect( rect );
+                }
+            }
+        else
+            {
             gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
-            gc.SetBrushColor(
-                AKN_LAF_COLOR( KStatusPaneBackgroundGraphicsColorUsual ) );
-            gc.DrawRect( rect );
+            gc.SetBrushColor( AKN_LAF_COLOR( KStatusPaneBackgroundColor ) );
+            AknsDrawUtils::Background( skin,
+                                       AknsDrawUtils::ControlContext( this ),
+                                       this,
+                                       gc,
+                                       rect );
             }
         }
-    else
-        {
-        gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
-        gc.SetBrushColor( AKN_LAF_COLOR( KStatusPaneBackgroundColor ) );
-        AknsDrawUtils::Background( skin,
-                                   AknsDrawUtils::ControlContext( this ),
-                                   this,
-                                   gc,
-                                   rect );
-        }
     }
 
 
@@ -908,7 +918,12 @@
     TPtr ptr = iText->Des();
     AknBidiTextUtils::ConvertToVisualAndWrapToStringL(
         aText, *iLineWidthArray, *font, ptr, ETrue );
-
+    
+    TInt len = iText->Length();
+    if (( aLineNum == 1 ) && ( iText->LocateReverseF( '\n' ) == len -1 ) && len >= 1 )
+        {
+        ptr.Delete( len - 1, 1 );
+        }
     }
 
 
@@ -1430,7 +1445,7 @@
         TAknLayoutRect layoutRect;
         layoutRect.LayoutRect(
             rect,
-            AknLayoutScalable_Avkon::title_pane_g2( touchLsc ? 4 : 0 ) );
+            AknLayoutScalable_Avkon::title_pane_g2( touchLsc ? 4 : 1 ) );
 
         if ( iExtension->iSmallImageAutoscaling &&
              iExtension->iTitleImage->Bitmap() &&
@@ -1461,13 +1476,13 @@
             {
             // if image is shown, use shorter version of text
             oneLineLayout =
-                AknLayoutScalable_Avkon::title_pane_t1( touchLsc ? 11 : 3 ).LayoutLine();
+                AknLayoutScalable_Avkon::title_pane_t1( touchLsc ? 11 : 6 ).LayoutLine();
             }
         else
             {
             // if image is not shown, use longer version of text
             oneLineLayout =
-                AknLayoutScalable_Avkon::title_pane_t1( touchLsc ? 10 : 2 ).LayoutLine();
+                AknLayoutScalable_Avkon::title_pane_t1( touchLsc ? 10 : 5 ).LayoutLine();
             }
 
         TAknLayoutText oneLineLayoutText;