idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockface.cpp
branchRCL_3
changeset 93 b01126ce0bec
parent 88 3321d3e205b6
child 102 ba63c83f4716
equal deleted inserted replaced
88:3321d3e205b6 93:b01126ce0bec
    28 
    28 
    29 // USER INCLUDE FILES
    29 // USER INCLUDE FILES
    30 #include "xnnodepluginif.h"
    30 #include "xnnodepluginif.h"
    31 #include "xnclockadapter.h"
    31 #include "xnclockadapter.h"
    32 #include "xntext.h"
    32 #include "xntext.h"
       
    33 #include "xnproperty.h"
       
    34 #include "xndomproperty.h"
       
    35 #include "xndomlist.h"
    33 
    36 
    34 #include "xnclockface.h"
    37 #include "xnclockface.h"
    35 
    38 
    36 
    39 
    37 // LOCAL CONSTANTS AND MACROS
    40 // LOCAL CONSTANTS AND MACROS
    38 _LIT( KAmPmFormat, "%B" );
    41 _LIT( KAmPmFormat, "%B" );
    39 _LIT( KTimeFormat, "%J%:1%T" );
    42 _LIT( KTimeFormat, "%J%:1%T" );
    40 
    43 
    41 _LIT( KClockFont, "EAknLogicalFontSecondaryFont" );
    44 const TInt KDefaultFaceAdjustmentValue = 0;
    42 _LIT( KAmpmFont, "EAknLogicalFontSecondaryFont" );
       
    43 
    45 
    44 // ============================ MEMBER FUNCTIONS ===============================
    46 // ============================ MEMBER FUNCTIONS ===============================
    45 
    47 
    46 // -----------------------------------------------------------------------------
    48 // -----------------------------------------------------------------------------
    47 // CXnClockFaceDigital::CXnClockFaceDigital
    49 // CXnClockFaceDigital::CXnClockFaceDigital
   165     {    
   167     {    
   166     if ( aFontType == EClock )
   168     if ( aFontType == EClock )
   167         {
   169         {
   168         if ( !iClockFont )
   170         if ( !iClockFont )
   169             {
   171             {
   170             aAdapter.CreateFontL( aNode, KClockFont, iClockFont );
   172             aAdapter.CreateFontL( aNode, iClockFont );
   171             }
   173             }
   172         return CAknLayoutFont::AsCAknLayoutFontOrNull( iClockFont );
   174         return CAknLayoutFont::AsCAknLayoutFontOrNull( iClockFont );
   173         }
   175         }
   174     else
   176     else
   175         {
   177         {
   176         if ( !iAmpmFont )
   178         if ( !iAmpmFont )
   177             {
   179             {
   178             aAdapter.CreateFontL( aNode, KAmpmFont, iAmpmFont );
   180             aAdapter.CreateFontL( aNode, iAmpmFont );
   179             }
   181             }
   180         return CAknLayoutFont::AsCAknLayoutFontOrNull( iAmpmFont );
   182         return CAknLayoutFont::AsCAknLayoutFontOrNull( iAmpmFont );
   181         }
   183         }
   182     }
   184     }
   183 
   185 
   226 // C++ default constructor can NOT contain any code, that
   228 // C++ default constructor can NOT contain any code, that
   227 // might leave.
   229 // might leave.
   228 // -----------------------------------------------------------------------------
   230 // -----------------------------------------------------------------------------
   229 //
   231 //
   230 CXnClockFaceAnalog::CXnClockFaceAnalog()     
   232 CXnClockFaceAnalog::CXnClockFaceAnalog()     
       
   233     :   iFaceAdjustmentValue( KErrNotFound )
   231     {
   234     {
   232     }
   235     }
   233 
   236 
   234 // -----------------------------------------------------------------------------
   237 // -----------------------------------------------------------------------------
   235 // CXnClockFaceAnalog::ConstructL
   238 // CXnClockFaceAnalog::ConstructL
   270 // -----------------------------------------------------------------------------
   273 // -----------------------------------------------------------------------------
   271 //
   274 //
   272 void CXnClockFaceAnalog::DrawL( CXnClockAdapter& /*aAdapter*/, CWindowGc& aGc, 
   275 void CXnClockFaceAnalog::DrawL( CXnClockAdapter& /*aAdapter*/, CWindowGc& aGc, 
   273         CXnNodePluginIf& aNode, const TTime& aTime, CXnNodePluginIf* /*aAmpm*/ )
   276         CXnNodePluginIf& aNode, const TTime& aTime, CXnNodePluginIf* /*aAmpm*/ )
   274     {    
   277     {    
   275     TSize faceSize( aNode.Rect().Size() );
   278     TRect faceRect( aNode.Rect() );
   276     
   279     
   277     TDateTime dateTime( aTime.DateTime() );
   280     TDateTime dateTime( aTime.DateTime() );
   278     
   281     
   279     MAknsSkinInstance* skin( AknsUtils::SkinInstance() );
   282     MAknsSkinInstance* skin( AknsUtils::SkinInstance() );
   280  
   283  
   290     // If there is no bitmap, don't draw
   293     // If there is no bitmap, don't draw
   291     if( !skinBmp )
   294     if( !skinBmp )
   292         {
   295         {
   293         return;
   296         return;
   294         }
   297         }
   295 
   298     
   296     User::LeaveIfError( AknIconUtils::SetSize( skinBmp, faceSize ) );
   299     TInt value( FaceAdjustmentValueL( aNode ) );
       
   300     
       
   301     TSize growthSize( value, 0 );
       
   302     faceRect.Grow( growthSize );
       
   303 
       
   304     User::LeaveIfError( AknIconUtils::SetSize( skinBmp, faceRect.Size() ) );
   297 
   305 
   298     if( skinMask )
   306     if( skinMask )
   299         {
   307         {
   300         User::LeaveIfError( AknIconUtils::SetSize( skinMask, faceSize ) );
   308         User::LeaveIfError( AknIconUtils::SetSize( skinMask, faceRect.Size() ) );
   301         
   309         
   302         aGc.BitBltMasked( aNode.Rect().iTl,
   310         aGc.BitBltMasked( faceRect.iTl,
   303                           skinBmp,
   311                           skinBmp,
   304                           TRect( TPoint( 0, 0 ), skinBmp->SizeInPixels() ),
   312                           TRect( TPoint( 0, 0 ), skinBmp->SizeInPixels() ),
   305                           skinMask,
   313                           skinMask,
   306                           ETrue );
   314                           ETrue );
   307         }
   315         }
   308     else
   316     else
   309         {
   317         {
   310         aGc.BitBlt( aNode.Rect().iTl, skinBmp );
   318         aGc.BitBlt( faceRect.iTl, skinBmp );
   311         }
   319         }
   312 
   320 
   313     aGc.SetBrushStyle( CGraphicsContext::ENullBrush );
   321     aGc.SetBrushStyle( CGraphicsContext::ENullBrush );
   314     aGc.SetPenStyle( CGraphicsContext::ESolidPen );
   322     aGc.SetPenStyle( CGraphicsContext::ESolidPen );
   315   
   323   
   367                       minmask,
   375                       minmask,
   368                       EFalse );
   376                       EFalse );
   369     }
   377     }
   370 
   378 
   371 // -----------------------------------------------------------------------------
   379 // -----------------------------------------------------------------------------
       
   380 // CXnClockFaceAnalog::FaceAdjustmentValueL
       
   381 // -----------------------------------------------------------------------------
       
   382 //
       
   383 TInt CXnClockFaceAnalog::FaceAdjustmentValueL( CXnNodePluginIf& aNode )
       
   384     {
       
   385     if( iFaceAdjustmentValue == KErrNotFound )
       
   386         {
       
   387         CXnProperty* prop( aNode.GetPropertyL( XnPropertyNames::clock::KFaceAdjustmentValue ) );
       
   388         
       
   389         if( prop )
       
   390             {        
       
   391             TInt value = static_cast<TInt>( prop->FloatValueL() );
       
   392             
       
   393             if( value > KErrNotFound )
       
   394                 {
       
   395                 iFaceAdjustmentValue = value;
       
   396                 }
       
   397             }
       
   398         
       
   399         if( iFaceAdjustmentValue <= KErrNotFound )
       
   400             {
       
   401             iFaceAdjustmentValue = KDefaultFaceAdjustmentValue;
       
   402             }
       
   403         }
       
   404     
       
   405     return iFaceAdjustmentValue;
       
   406     }
       
   407 	
   372 // CXnClockFaceAnalog::ResetFont
   408 // CXnClockFaceAnalog::ResetFont
   373 // -----------------------------------------------------------------------------
   409 // -----------------------------------------------------------------------------
   374 //
   410 //
   375 void CXnClockFaceAnalog::ResetFont()
   411 void CXnClockFaceAnalog::ResetFont()
   376     {
   412     {