camerauis/activepalette/Src/ActivePalette2Styler.cpp
branchRCL_3
changeset 54 bac7acad7cb3
parent 0 1ddebce53859
equal deleted inserted replaced
53:61bc0f252b2b 54:bac7acad7cb3
       
     1 /*
       
     2 * Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Active Palette Styler*
       
    15 */
       
    16 
       
    17 
       
    18 /**
       
    19  * @file ActivePalette2Styler.cpp
       
    20  * Active Palette Styler
       
    21  */
       
    22 
       
    23 #include "ActivePalette2Logger.h"
       
    24 #include "ActivePalette2Styler.h"
       
    25 #include "ActivePalette2Utils.h"
       
    26 #include "ActivePalette2Cfg.h"
       
    27 #include <AknUtils.h>
       
    28 #include <AknIconUtils.h>
       
    29 #include <activepalette2graphics.mbg>
       
    30 
       
    31 static const TInt KDefaultFontId = EAknLogicalFontSecondaryFont;
       
    32 
       
    33 // -----------------------------------------------------------------------------
       
    34 // CActivePalette2Styler::CActivePalette2Styler()
       
    35 // -----------------------------------------------------------------------------
       
    36 //
       
    37 CActivePalette2Styler::CActivePalette2Styler()
       
    38     {
       
    39     }
       
    40 
       
    41 // -----------------------------------------------------------------------------
       
    42 // CActivePalette2Styler::ConstructL()
       
    43 // -----------------------------------------------------------------------------
       
    44 //
       
    45 void CActivePalette2Styler::ConstructL()
       
    46   {
       
    47   LOGTEXT( _L( "CActivePalette2Styler::ConstructL entered"));
       
    48   AllocateDrawBufL();
       
    49   AllocateTooltipBufL();    
       
    50   iFont = AknLayoutUtils::FontFromId(KDefaultFontId);
       
    51 
       
    52   AknIconUtils::CreateIconL(iScrollUpIcon, iScrollUpIconMask, NAP2Cfg::KUIGraphics, 
       
    53                             EMbmActivepalette2graphicsQgn_graf_cam4_tb_arrow_up, EMbmActivepalette2graphicsQgn_graf_cam4_tb_arrow_up_mask);
       
    54   AknIconUtils::SetSize(iScrollUpIcon, ActivePalette2Utils::APDimensionSize( ActivePalette2Utils::E3dScrollIconSize ), EAspectRatioNotPreserved );
       
    55   AknIconUtils::SetSize(iScrollUpIconMask, ActivePalette2Utils::APDimensionSize( ActivePalette2Utils::E3dScrollIconSize ), EAspectRatioNotPreserved );
       
    56 
       
    57   AknIconUtils::CreateIconL(iScrollDownIcon, iScrollDownIconMask, NAP2Cfg::KUIGraphics, 
       
    58                             EMbmActivepalette2graphicsQgn_graf_cam4_tb_arrow_down, EMbmActivepalette2graphicsQgn_graf_cam4_tb_arrow_down_mask);
       
    59   AknIconUtils::SetSize(iScrollDownIcon, ActivePalette2Utils::APDimensionSize( ActivePalette2Utils::E3dScrollIconSize ), EAspectRatioNotPreserved );
       
    60   AknIconUtils::SetSize(iScrollDownIconMask, ActivePalette2Utils::APDimensionSize( ActivePalette2Utils::E3dScrollIconSize ), EAspectRatioNotPreserved );
       
    61 
       
    62   AknIconUtils::CreateIconL(iFocusRing, iFocusRingMask, NAP2Cfg::KUIGraphics, 
       
    63                             EMbmActivepalette2graphicsQgn_graf_cam4_tb_focus, EMbmActivepalette2graphicsQgn_graf_cam4_tb_focus_mask);
       
    64   AknIconUtils::SetSize(iFocusRing, ActivePalette2Utils::APDimensionSize( ActivePalette2Utils::E3dFocusRingSize ), EAspectRatioNotPreserved );
       
    65   AknIconUtils::SetSize(iFocusRingMask, ActivePalette2Utils::APDimensionSize( ActivePalette2Utils::E3dFocusRingSize ), EAspectRatioNotPreserved );
       
    66 
       
    67   AknIconUtils::CreateIconL(iTooltipNose, iTooltipNoseMask, NAP2Cfg::KUIGraphics, 
       
    68                             EMbmActivepalette2graphicsQgn_graf_cam4_tb_tooltip_end, EMbmActivepalette2graphicsQgn_graf_cam4_tb_tooltip_end_mask);
       
    69   AknIconUtils::SetSize(iTooltipNose, TSize(ActivePalette2Utils::APDimension(ActivePalette2Utils::ETooltipNose), ActivePalette2Utils::APDimension(ActivePalette2Utils::ETooltipHeight) ), EAspectRatioNotPreserved );
       
    70   AknIconUtils::SetSize(iTooltipNoseMask, TSize(ActivePalette2Utils::APDimension(ActivePalette2Utils::ETooltipNose), ActivePalette2Utils::APDimension(ActivePalette2Utils::ETooltipHeight) ), EAspectRatioNotPreserved );
       
    71 
       
    72   AknIconUtils::CreateIconL(iTooltipBody, iTooltipBodyMask, NAP2Cfg::KUIGraphics, 
       
    73                             EMbmActivepalette2graphicsQgn_graf_cam4_tb_tooltip_body, EMbmActivepalette2graphicsQgn_graf_cam4_tb_tooltip_body_mask);
       
    74   AknIconUtils::SetSize(iTooltipBody, TSize(ActivePalette2Utils::APDimension(ActivePalette2Utils::ETooltipWidth), ActivePalette2Utils::APDimension(ActivePalette2Utils::ETooltipHeight) ), EAspectRatioNotPreserved );
       
    75   AknIconUtils::SetSize(iTooltipBodyMask, TSize(ActivePalette2Utils::APDimension(ActivePalette2Utils::ETooltipWidth), ActivePalette2Utils::APDimension(ActivePalette2Utils::ETooltipHeight) ), EAspectRatioNotPreserved );
       
    76 
       
    77   iAPTopSection = AknIconUtils::CreateIconL( NAP2Cfg::KUIGraphics, EMbmActivepalette2graphicsQgn_graf_cam4_tb_top);
       
    78   AknIconUtils::SetSize(iAPTopSection, TSize(ActivePalette2Utils::APDimension(ActivePalette2Utils::EPaletteWidth), ActivePalette2Utils::APDimension(ActivePalette2Utils::ETopSectionHeight) ), EAspectRatioNotPreserved );
       
    79 
       
    80   iAPItem = AknIconUtils::CreateIconL( NAP2Cfg::KUIGraphics, EMbmActivepalette2graphicsQgn_graf_cam4_tb_body);
       
    81   AknIconUtils::SetSize(iAPItem, TSize(ActivePalette2Utils::APDimension(ActivePalette2Utils::EPaletteWidth), ActivePalette2Utils::APDimension(ActivePalette2Utils::EItemHeight) ), EAspectRatioNotPreserved );
       
    82 
       
    83   iAPGap = AknIconUtils::CreateIconL( NAP2Cfg::KUIGraphics, EMbmActivepalette2graphicsQgn_graf_cam4_tb_gap);
       
    84   AknIconUtils::SetSize(iAPGap, TSize(ActivePalette2Utils::APDimension(ActivePalette2Utils::EPaletteWidth), ActivePalette2Utils::APDimension(ActivePalette2Utils::EGapBetweenItems) ), EAspectRatioNotPreserved );
       
    85 
       
    86   iAPBottomSection = AknIconUtils::CreateIconL( NAP2Cfg::KUIGraphics, EMbmActivepalette2graphicsQgn_graf_cam4_tb_bottom);
       
    87   AknIconUtils::SetSize(iAPBottomSection, TSize(ActivePalette2Utils::APDimension(ActivePalette2Utils::EPaletteWidth), ActivePalette2Utils::APDimension(ActivePalette2Utils::EBottomSectionHeight) ), EAspectRatioNotPreserved );
       
    88 
       
    89   LOGTEXT( _L( "CActivePalette2Styler::ConstructL left"));
       
    90   }
       
    91 
       
    92 // -----------------------------------------------------------------------------
       
    93 // CActivePalette2Styler::~CActivePalette2Styler()
       
    94 // -----------------------------------------------------------------------------
       
    95 //
       
    96 CActivePalette2Styler::~CActivePalette2Styler()
       
    97   {
       
    98   ReleaseDrawBuf(); // Utility function checks pointers to be deleted.
       
    99   ReleaseTooltipBuf(); // Utility function checks pointers to be deleted.
       
   100 
       
   101   delete iScrollUpIcon;
       
   102   delete iScrollUpIconMask;
       
   103   delete iScrollDownIcon;
       
   104   delete iScrollDownIconMask;
       
   105   delete iFocusRing;
       
   106   delete iFocusRingMask;
       
   107   delete iTooltipNose;
       
   108   delete iTooltipNoseMask;
       
   109   delete iTooltipBody;
       
   110   delete iTooltipBodyMask;
       
   111   delete iAPTopSection;
       
   112   delete iAPItem;
       
   113   delete iAPGap;
       
   114   delete iAPBottomSection;
       
   115   }
       
   116     
       
   117 // -----------------------------------------------------------------------------
       
   118 // CActivePalette2Styler::SetNumberOfItemsL()
       
   119 // -----------------------------------------------------------------------------
       
   120 //
       
   121 void CActivePalette2Styler::SetNumberOfItemsL(TInt aItems)
       
   122     {
       
   123     AddToDirtyRect(TRect(TPoint(0,0), Size()));
       
   124     iNumItems = aItems;
       
   125     
       
   126     if ( iNumItems > 0 )
       
   127         {
       
   128         iNumGaps = iNumItems - 1;
       
   129         }
       
   130     else
       
   131         {
       
   132         iNumGaps = 0;
       
   133         }
       
   134         
       
   135     AllocateDrawBufL();
       
   136     AddToDirtyRect(TRect(TPoint(0,0), Size()));
       
   137 
       
   138     iItemsRect = TRect(TPoint(0, ActivePalette2Utils::APDimension(ActivePalette2Utils::ETopSectionHeight)), TSize(ActivePalette2Utils::APDimension(ActivePalette2Utils::EPaletteWidth), iNumItems * ActivePalette2Utils::APDimension(ActivePalette2Utils::EItemHeight) + iNumGaps * ActivePalette2Utils::APDimension(ActivePalette2Utils::EGapBetweenItems)) );
       
   139     }
       
   140     
       
   141 // -----------------------------------------------------------------------------
       
   142 // CActivePalette2Styler::Size()
       
   143 // -----------------------------------------------------------------------------
       
   144 //
       
   145 TSize CActivePalette2Styler::Size() const
       
   146     {
       
   147     return (iNumItems > 0)
       
   148            ? TSize( ActivePalette2Utils::APDimension(ActivePalette2Utils::EPaletteWidth), 
       
   149                     ActivePalette2Utils::APDimension(ActivePalette2Utils::ETopSectionHeight) 
       
   150                     + iNumItems * ActivePalette2Utils::APDimension(ActivePalette2Utils::EItemHeight) 
       
   151                     + iNumGaps  * ActivePalette2Utils::APDimension(ActivePalette2Utils::EGapBetweenItems) 
       
   152                     + ActivePalette2Utils::APDimension(ActivePalette2Utils::EBottomSectionHeight) )
       
   153            : TSize( 0, 0 );
       
   154     }
       
   155     
       
   156 // -----------------------------------------------------------------------------
       
   157 // CActivePalette2Styler::DirtyRect()
       
   158 // -----------------------------------------------------------------------------
       
   159 //
       
   160 TRect CActivePalette2Styler::DirtyRect()
       
   161     {
       
   162     if ( iDirtyRectExists )
       
   163         {
       
   164         return iDirtyRect;
       
   165         }
       
   166     else
       
   167         {
       
   168         return TRect(TPoint(0,0), TSize(0,0));
       
   169         }
       
   170     }
       
   171     
       
   172 // -----------------------------------------------------------------------------
       
   173 // CActivePalette2Styler::ClearDirtyRect()
       
   174 // -----------------------------------------------------------------------------
       
   175 //
       
   176 void CActivePalette2Styler::ClearDirtyRect()
       
   177     {
       
   178     iDirtyRectExists = EFalse;
       
   179     }
       
   180     
       
   181 
       
   182 // -----------------------------------------------------------------------------
       
   183 // CActivePalette2Styler::AllocateDrawBufL()
       
   184 // -----------------------------------------------------------------------------
       
   185 //
       
   186 void CActivePalette2Styler::AllocateDrawBufL(void)
       
   187     {    
       
   188   ReleaseDrawBuf();
       
   189 
       
   190   ActivePalette2Utils::CreateDrawingObjectsL(Size(),
       
   191                          &iDrawBufBitmap,
       
   192                          &iDrawBufDevice,
       
   193                          &iDrawBufContext);
       
   194 
       
   195   ActivePalette2Utils::CreateDrawingObjectsL(EGray256, Size(),
       
   196                          &iDrawBufMaskBitmap,
       
   197                          &iDrawBufMaskDevice,
       
   198                          &iDrawBufMaskContext);
       
   199     }
       
   200 
       
   201 // -----------------------------------------------------------------------------
       
   202 // CActivePalette2Styler::ReleaseDrawBuf()
       
   203 // -----------------------------------------------------------------------------
       
   204 //
       
   205 void CActivePalette2Styler::ReleaseDrawBuf(void)
       
   206   {
       
   207   // DeleteDrawingObjects checks passed pointers to ensure they are not null
       
   208   ActivePalette2Utils::DeleteDrawingObjects(&iDrawBufBitmap,
       
   209                         &iDrawBufDevice,
       
   210                         &iDrawBufContext);
       
   211 
       
   212   ActivePalette2Utils::DeleteDrawingObjects(&iDrawBufMaskBitmap,
       
   213                         &iDrawBufMaskDevice,
       
   214                         &iDrawBufMaskContext);
       
   215     }
       
   216 
       
   217 
       
   218 // -----------------------------------------------------------------------------
       
   219 // CActivePalette2Styler::AllocateTooltipBufL()
       
   220 // -----------------------------------------------------------------------------
       
   221 //
       
   222 void CActivePalette2Styler::AllocateTooltipBufL(void)
       
   223   {
       
   224   ReleaseTooltipBuf();
       
   225     
       
   226   ActivePalette2Utils::CreateDrawingObjectsL(TooltipSize(),
       
   227                          &iTooltipBufBitmap,
       
   228                          &iTooltipBufDevice,
       
   229                          &iTooltipBufContext);
       
   230 
       
   231   ActivePalette2Utils::CreateDrawingObjectsL(EGray256, TooltipSize(),
       
   232                          &iTooltipBufMaskBitmap,
       
   233                          &iTooltipBufMaskDevice,
       
   234                          &iTooltipBufMaskContext);
       
   235   }
       
   236 
       
   237 // -----------------------------------------------------------------------------
       
   238 // CActivePalette2Styler::ReleaseTooltipBuf()
       
   239 // -----------------------------------------------------------------------------
       
   240 //
       
   241 void CActivePalette2Styler::ReleaseTooltipBuf(void)
       
   242   {
       
   243   // DeleteDrawingObjects checks passed pointers to ensure they are not null  
       
   244   ActivePalette2Utils::DeleteDrawingObjects(&iTooltipBufBitmap,
       
   245                         &iTooltipBufDevice,
       
   246                         &iTooltipBufContext);
       
   247 
       
   248   ActivePalette2Utils::DeleteDrawingObjects(&iTooltipBufMaskBitmap,
       
   249                         &iTooltipBufMaskDevice,
       
   250                         &iTooltipBufMaskContext);
       
   251     }
       
   252 
       
   253 // -----------------------------------------------------------------------------
       
   254 // CActivePalette2Styler::AddToDirtyRect()
       
   255 // -----------------------------------------------------------------------------
       
   256 //
       
   257 void CActivePalette2Styler::AddToDirtyRect(TRect aNewRect)
       
   258     {
       
   259     if ( iDirtyRectExists )
       
   260         {
       
   261         iDirtyRect.BoundingRect(aNewRect);
       
   262         }
       
   263     else
       
   264         {
       
   265         iDirtyRectExists = ETrue;
       
   266         iDirtyRect = aNewRect;
       
   267         }
       
   268     }
       
   269     
       
   270 // -----------------------------------------------------------------------------
       
   271 // CActivePalette2Styler::BlitPalette()
       
   272 // -----------------------------------------------------------------------------
       
   273 //
       
   274 void CActivePalette2Styler::BlitPalette(CBitmapContext* aGc, TPoint aPos, TRect aClippingRect) const
       
   275     {
       
   276   aGc->BitBltMasked(
       
   277         aPos + aClippingRect.iTl,
       
   278     iDrawBufBitmap,
       
   279         aClippingRect,
       
   280         iDrawBufMaskBitmap, EFalse);    
       
   281     }
       
   282     
       
   283 // -----------------------------------------------------------------------------
       
   284 // CActivePalette2Styler::DrawTooltip()
       
   285 // -----------------------------------------------------------------------------
       
   286 //
       
   287 TInt CActivePalette2Styler::DrawTooltip(TDesC* aText)
       
   288     {
       
   289     iTextWidth = iFont->TextWidthInPixels( *aText );
       
   290   TRAP_IGNORE(AllocateTooltipBufL());
       
   291   RenderTooltip(aText);
       
   292   return TooltipSize().iWidth;
       
   293     }
       
   294     
       
   295 // -----------------------------------------------------------------------------
       
   296 // CActivePalette2Styler::BlitTooltip()
       
   297 // -----------------------------------------------------------------------------
       
   298 //
       
   299 void CActivePalette2Styler::BlitTooltip(CBitmapContext* aGc, const TPoint& aPos, TRect aClippingRect)
       
   300   {
       
   301   aGc->BitBltMasked( aPos,
       
   302                      iTooltipBufBitmap,
       
   303                      aClippingRect,
       
   304                      iTooltipBufMaskBitmap, 
       
   305                      EFalse );    
       
   306   }
       
   307 
       
   308 // -----------------------------------------------------------------------------
       
   309 // CActivePalette2Styler::BlitTooltip()
       
   310 // -----------------------------------------------------------------------------
       
   311 //
       
   312 void 
       
   313 CActivePalette2Styler::BlitTooltip( CBitmapContext* aGc, 
       
   314                                     const TPoint&   aPos, 
       
   315                                     TInt            aCurrentPhase, 
       
   316                                     TInt            aTotalPhases  )
       
   317   {
       
   318   TSize tooltipSize( TooltipSize() );
       
   319 
       
   320   TInt shownHeight = tooltipSize.iHeight;
       
   321   TInt shownWidth  = (tooltipSize.iWidth * aCurrentPhase) / aTotalPhases;
       
   322 
       
   323   TRect clippingRect( TPoint(0,0), TSize( shownWidth, shownHeight ) );
       
   324   TPoint topLeft( aPos.iX + tooltipSize.iWidth - shownWidth, aPos.iY );
       
   325 
       
   326   aGc->BitBltMasked( topLeft,
       
   327                      iTooltipBufBitmap,
       
   328                      clippingRect,
       
   329                      iTooltipBufMaskBitmap, 
       
   330                      EFalse );    
       
   331   }
       
   332 
       
   333 // -----------------------------------------------------------------------------
       
   334 // CActivePalette2Styler::TooltipSize()
       
   335 // -----------------------------------------------------------------------------
       
   336 //
       
   337 TSize CActivePalette2Styler::TooltipSize()
       
   338     {
       
   339     return TSize(ActivePalette2Utils::APDimension(ActivePalette2Utils::ETooltipNose) + iTextWidth + ActivePalette2Utils::APDimension(ActivePalette2Utils::ETooltipTail), ActivePalette2Utils::APDimension(ActivePalette2Utils::ETooltipHeight));
       
   340     }
       
   341     
       
   342 // -----------------------------------------------------------------------------
       
   343 // CActivePalette2Styler::RenderTooltip()
       
   344 // -----------------------------------------------------------------------------
       
   345 //
       
   346 void CActivePalette2Styler::RenderTooltip(TDesC* aText)
       
   347     {
       
   348   const TInt height = ActivePalette2Utils::APDimension(ActivePalette2Utils::ETooltipHeight);
       
   349   const TInt nose = ActivePalette2Utils::APDimension(ActivePalette2Utils::ETooltipNose);
       
   350 
       
   351     TPoint currentPos(0, 0);
       
   352     
       
   353     BlitGraphic(currentPos, iTooltipBufContext, iTooltipBufMaskContext, iTooltipNose, iTooltipNoseMask, EFalse, EFalse);
       
   354     currentPos.iX += iTooltipNose->SizeInPixels().iWidth;
       
   355     
       
   356     TInt width = TooltipSize().iWidth;
       
   357     while ( currentPos.iX <= width )
       
   358         {
       
   359         BlitGraphic(currentPos, iTooltipBufContext, iTooltipBufMaskContext, iTooltipBody, iTooltipBodyMask, EFalse, EFalse);
       
   360         currentPos.iX += iTooltipBody->SizeInPixels().iWidth;
       
   361         }
       
   362     
       
   363     TAknLayoutText tooltipLayout;
       
   364     TRect layoutRect(TPoint(nose, 0), TSize(iTextWidth, height));
       
   365     
       
   366     TInt baseline_offset = ( ActivePalette2Utils::APDimension(ActivePalette2Utils::ETooltipHeight) + iFont->FontMaxAscent() - iFont->FontMaxDescent() ) / 2;
       
   367     tooltipLayout.LayoutText(layoutRect, KDefaultFontId, NAP2Cfg::KColourTooltipText, 0, 0, /*NAP2Cfg::KTooltipBaseline - 1*/ baseline_offset/*EYZG-796AF7*/, iTextWidth, ELayoutAlignRight);
       
   368     tooltipLayout.DrawText(*iTooltipBufContext, *aText, ETrue);
       
   369     tooltipLayout.DrawText(*iTooltipBufMaskContext, *aText, ETrue, TRgb(KRgbWhite));
       
   370     }
       
   371     
       
   372 // -----------------------------------------------------------------------------
       
   373 // CActivePalette2Styler::TootipYOffset()
       
   374 // -----------------------------------------------------------------------------
       
   375 //
       
   376 TInt CActivePalette2Styler::TootipYOffset(TInt aScreenPos)
       
   377     {
       
   378     return ActivePalette2Utils::APDimension(ActivePalette2Utils::ETopSectionHeight) + aScreenPos * (ActivePalette2Utils::APDimension(ActivePalette2Utils::EItemHeight) + ActivePalette2Utils::APDimension(ActivePalette2Utils::EGapBetweenItems)) + ActivePalette2Utils::APDimension(ActivePalette2Utils::ETooltipYOffset);
       
   379     }
       
   380     
       
   381 // -----------------------------------------------------------------------------
       
   382 // CActivePalette2Styler::TooltipNoseMaskId()
       
   383 // -----------------------------------------------------------------------------
       
   384 //
       
   385 TInt CActivePalette2Styler::TooltipNoseMaskId()
       
   386     {
       
   387     return EMbmActivepalette2graphicsQgn_graf_cam4_tb_tooltip_end_mask;
       
   388     }
       
   389     
       
   390 // -----------------------------------------------------------------------------
       
   391 // CActivePalette2Styler::TooltipBodyMaskId()
       
   392 // -----------------------------------------------------------------------------
       
   393 //
       
   394 TInt CActivePalette2Styler::TooltipBodyMaskId()
       
   395     {
       
   396     return EMbmActivepalette2graphicsQgn_graf_cam4_tb_tooltip_body_mask;
       
   397     }
       
   398     
       
   399 // -----------------------------------------------------------------------------
       
   400 // CActivePalette2Styler::BlitGraphic()
       
   401 // -----------------------------------------------------------------------------
       
   402 //
       
   403 void CActivePalette2Styler::BlitGraphic(TPoint aPos, CBitmapContext* aGraphicGc, CBitmapContext* aMaskGc, CFbsBitmap* aGraphic, CFbsBitmap* aGraphicMask, TBool aMaskGraphic, TBool aMaskMask)
       
   404     {
       
   405     if ( aGraphicGc )
       
   406         {
       
   407         if ( aMaskGraphic )
       
   408             {
       
   409             aGraphicGc->BitBltMasked(aPos, aGraphic, TRect(TPoint(0,0), aGraphic->SizeInPixels()), aGraphicMask, EFalse);
       
   410             }
       
   411         else
       
   412             {
       
   413             aGraphicGc->BitBlt(aPos, aGraphic);
       
   414             }
       
   415         }
       
   416     
       
   417         
       
   418     if ( aMaskGc )
       
   419         {
       
   420         if ( aMaskMask )
       
   421             {
       
   422             aMaskGc->BitBltMasked(aPos, aGraphicMask, TRect(TPoint(0,0), aGraphic->SizeInPixels()), aGraphicMask, EFalse);
       
   423             }
       
   424         else
       
   425             {
       
   426             aMaskGc->BitBlt(aPos, aGraphicMask);
       
   427             }
       
   428         }
       
   429     }
       
   430 
       
   431 // -----------------------------------------------------------------------------
       
   432 // CActivePalette2Styler::CentreGraphic()
       
   433 // -----------------------------------------------------------------------------
       
   434 //
       
   435 void CActivePalette2Styler::CentreGraphic(TRect aArea, CBitmapContext* aGraphicGc, CBitmapContext* aMaskGc, CFbsBitmap* aGraphic, CFbsBitmap* aGraphicMask, TBool aMaskGraphic, TBool aMaskMask)
       
   436     {
       
   437     TPoint pos(aArea.iTl);
       
   438     pos.iX += (aArea.iBr.iX - aArea.iTl.iX)/2;
       
   439     pos.iY += (aArea.iBr.iY - aArea.iTl.iY)/2;
       
   440     pos.iX -= aGraphic->SizeInPixels().iWidth/2;
       
   441     pos.iY -= aGraphic->SizeInPixels().iHeight/2;
       
   442     
       
   443     BlitGraphic(pos, aGraphicGc, aMaskGc, aGraphic, aGraphicMask, aMaskGraphic, aMaskMask);
       
   444     }
       
   445     
       
   446 // -----------------------------------------------------------------------------
       
   447 // CActivePalette2Styler::DrawFocusRing()
       
   448 // -----------------------------------------------------------------------------
       
   449 //
       
   450 void CActivePalette2Styler::DrawFocusRing(TInt aScreenPos, TInt aOffsetFrame, TInt aOffsetTotal)
       
   451     {
       
   452     TInt offset = ((ActivePalette2Utils::APDimension(ActivePalette2Utils::EItemHeight) + ActivePalette2Utils::APDimension(ActivePalette2Utils::EGapBetweenItems)) * aOffsetFrame) / aOffsetTotal;
       
   453     TRect area(TPoint(ActivePalette2Utils::APDimension(ActivePalette2Utils::EItemXOffset) + ActivePalette2Utils::APDimension(ActivePalette2Utils::EFocusRingXOffset), 
       
   454                       ActivePalette2Utils::APDimension(ActivePalette2Utils::ETopSectionHeight) + aScreenPos * (ActivePalette2Utils::APDimension(ActivePalette2Utils::EItemHeight) + ActivePalette2Utils::APDimension(ActivePalette2Utils::EGapBetweenItems)) + ActivePalette2Utils::APDimension(ActivePalette2Utils::EFocusRingYOffset) + offset), 
       
   455                TSize(ActivePalette2Utils::APDimension(ActivePalette2Utils::EFocusRingWidth), ActivePalette2Utils::APDimension(ActivePalette2Utils::EFocusRingHeight)));
       
   456 
       
   457     BlitGraphic(area.iTl, iDrawBufContext, iDrawBufMaskContext, iFocusRing, iFocusRingMask, ETrue, ETrue);
       
   458 
       
   459     area.Intersection(TRect(TPoint(0,0), Size()));
       
   460     AddToDirtyRect( area );
       
   461     }