uifw/AvKon/src/aknnavi.cpp
branchRCL_3
changeset 38 c52421ed5f07
parent 10 9f56a4e1b8ab
child 55 aecbbf00d063
equal deleted inserted replaced
29:a8834a2e9a96 38:c52421ed5f07
    67 public:
    67 public:
    68     CAknNavigationControlContainerExtension(){};
    68     CAknNavigationControlContainerExtension(){};
    69     ~CAknNavigationControlContainerExtension(){};
    69     ~CAknNavigationControlContainerExtension(){};
    70 
    70 
    71 public:
    71 public:
    72     TInt                        iCurrentColorScheme;
       
    73     CAknNaviForegroundObserver* iForegroundObserver;
    72     CAknNaviForegroundObserver* iForegroundObserver;
    74     TBool                       iDestructionOngoing;
    73     TBool                       iDestructionOngoing;
    75     CFbsBitmap*                 iNaviColorBitmap;
    74     CFbsBitmap*                 iNaviColorBitmap;
    76     TInt                        iPreferredNaviDecoratorLayoutStyle;
    75     TInt                        iPreferredNaviDecoratorLayoutStyle;
    77     CEikStatusPaneBase*         iStatusPane;
    76     CEikStatusPaneBase*         iStatusPane;
   142     {
   141     {
   143     if ( !iExtension )
   142     if ( !iExtension )
   144         {
   143         {
   145         iExtension =
   144         iExtension =
   146             new (ELeave) CAknNavigationControlContainerExtension();
   145             new (ELeave) CAknNavigationControlContainerExtension();
   147         iExtension->iCurrentColorScheme = ColorScheme();
       
   148         iExtension->iForegroundObserver =
   146         iExtension->iForegroundObserver =
   149             CAknNaviForegroundObserver::NewL( this );
   147             CAknNaviForegroundObserver::NewL( this );
   150         iExtension->iStatusPane = CEikStatusPaneBase::Current();
   148         iExtension->iStatusPane = CEikStatusPaneBase::Current();
   151         }
   149         }
   152 
   150 
  1454     else
  1452     else
  1455         {
  1453         {
  1456         CCoeControl::HandleResourceChange( aType ) ;
  1454         CCoeControl::HandleResourceChange( aType ) ;
  1457         }
  1455         }
  1458 
  1456 
  1459     if ( aType == KEikColorResourceChange ||
  1457     if ( aType == KEikDynamicLayoutVariantSwitch ||
  1460          aType == KEikDynamicLayoutVariantSwitch ||
       
  1461          aType == KAknsMessageSkinChange )
  1458          aType == KAknsMessageSkinChange )
  1462         {
  1459         {
  1463         TInt colorScheme = ColorScheme();
  1460         if ( aType == KEikDynamicLayoutVariantSwitch ||
  1464         if ( colorScheme != iExtension->iCurrentColorScheme ||
       
  1465              aType == KEikDynamicLayoutVariantSwitch ||
       
  1466              aType == KAknsMessageSkinChange )
  1461              aType == KAknsMessageSkinChange )
  1467             {
  1462             {
  1468             iExtension->iCurrentColorScheme = colorScheme;
       
  1469 
       
  1470             // updating color bitmap
  1463             // updating color bitmap
  1471             TRAP_IGNORE( LoadNaviColorBitmapL() );
  1464             TRAP_IGNORE( LoadNaviColorBitmapL() );
  1472             }
  1465             }
  1473         DrawDeferred();
  1466         DrawDeferred();
  1474         }
  1467         }
  2350 
  2343 
  2351     // screen
  2344     // screen
  2352     TRect screenRect;
  2345     TRect screenRect;
  2353     AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EScreen, screenRect );
  2346     AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EScreen, screenRect );
  2354 
  2347 
  2355     // app window
  2348     // statuspane, skip application window because it's the same as screen.
  2356     TAknLayoutRect applicationWindowLayoutRect;
       
  2357     applicationWindowLayoutRect.LayoutRect(
       
  2358         screenRect,
       
  2359         AknLayoutScalable_Avkon::application_window( 0 ) );
       
  2360     TRect applicationWindowRect( applicationWindowLayoutRect.Rect() );
       
  2361 
       
  2362     // statuspane
       
  2363     TAknLayoutRect statusPaneLayoutRect;
  2349     TAknLayoutRect statusPaneLayoutRect;
  2364     statusPaneLayoutRect.LayoutRect( applicationWindowRect,
  2350     statusPaneLayoutRect.LayoutRect( screenRect,
  2365                                      AknLayoutScalable_Avkon::status_pane( 0 ) );
  2351                                      AknLayoutScalable_Avkon::status_pane( 0 ) );
  2366     TRect statusPaneRect( statusPaneLayoutRect.Rect() );
  2352     TRect statusPaneRect( statusPaneLayoutRect.Rect() );
  2367 
  2353 
  2368     // navi pane
  2354     // navi pane
  2369     TAknLayoutRect naviPaneLayoutRect;
  2355     TAknLayoutRect naviPaneLayoutRect;