VideoNaviDecoratorTime.cpp
上传用户:xinrui0099
上传日期:2010-03-05
资源大小:48k
文件大小:4k
源码类别:

Symbian

开发平台:

C/C++

  1. /*
  2. * ==============================================================================
  3. *  Name        : CVideoNaviDecoratorTime from VideoNaviDecoratorTime.h
  4. *  Part of     : Video
  5. *  Created     : 10/14/2003 by Forum Nokia
  6. *  Interface   : 
  7. *  Description : Declares Navi decorator for time
  8. *  Version     : 
  9. *  Copyright   : Nokia Corporation, 2003
  10. * ==============================================================================
  11. */
  12. #include <aknsutils.h>
  13. #include "VideoNaviDecoratorTime.h"
  14. #include <video.rsg>
  15. /*
  16. -----------------------------------------------------------------------------
  17. CVideoNaviDecoratorTime::CVideoNaviDecoratorTime()
  18. Description: C++ default constructor can NOT contain any code, that
  19.  might leave.
  20. Comments   :
  21.     Return values: N/A
  22. -----------------------------------------------------------------------------
  23. */
  24. CVideoNaviDecoratorTime::CVideoNaviDecoratorTime()
  25.     {
  26.     }
  27. /*
  28. -----------------------------------------------------------------------------
  29. void CVideoNaviDecoratorTime::ConstructL()
  30. Description: Symbian 2nd phase constructor can leave.
  31. Comments   :
  32.     Return values: N/A
  33. -----------------------------------------------------------------------------
  34. */
  35. void CVideoNaviDecoratorTime::ConstructL()
  36.     {
  37.     iLabel = HBufC16::NewL(0);
  38.     }
  39. /*
  40. -----------------------------------------------------------------------------
  41. CVideoNaviDecoratorTime* CVideoNaviDecoratorTime::NewL()
  42. Description: Two-phased construtor
  43. Comments   :
  44.     Return values: CVideoNaviDecoratorTime object pointer
  45. -----------------------------------------------------------------------------
  46. */
  47. CVideoNaviDecoratorTime* CVideoNaviDecoratorTime::NewL()
  48.     {
  49.     CVideoNaviDecoratorTime* self = new( ELeave ) CVideoNaviDecoratorTime();
  50.     CleanupStack::PushL( self );
  51.     self->ConstructL();
  52.     CleanupStack::Pop();
  53.     return self;
  54.     }
  55. /*
  56. -----------------------------------------------------------------------------
  57. CVideoNaviDecoratorTime::~CVideoNaviDecoratorTime()
  58. Description: Destructor, frees allocated resources
  59. Comments   :
  60.     Return values: N/A
  61. -----------------------------------------------------------------------------
  62. */
  63. CVideoNaviDecoratorTime::~CVideoNaviDecoratorTime()
  64.     {
  65.     delete iLabel;
  66.     }
  67. /*
  68. -----------------------------------------------------------------------------
  69. void CVideoNaviDecoratorTime::SetLabelL(const TDesC& aLabel)
  70. Description: Set the label the navi pane
  71. Comments   :
  72.     Return values: N/A
  73. -----------------------------------------------------------------------------
  74. */
  75. void CVideoNaviDecoratorTime::SetLabelL(const TDesC& aLabel)
  76.     {
  77.     HBufC* newLabel = aLabel.AllocL();
  78.     delete iLabel; // after the AllocL succeeds
  79.     iLabel = newLabel;
  80.     ReportEventL(MCoeControlObserver::EEventStateChanged);  
  81.     }
  82. /*
  83. -----------------------------------------------------------------------------
  84. void CVideoNaviDecoratorTime::SizeChanged()
  85. Description: Called by the framework when size is changed.
  86. Comments   :
  87.     Return values: N/A
  88. -----------------------------------------------------------------------------
  89. */
  90. void CVideoNaviDecoratorTime::SizeChanged()
  91.     {
  92.     // Values from LAF
  93.     TRect parentRect(0,0,120,16);
  94.     iTextLayout.LayoutText(parentRect,R_VIDEO_TIME_TEXT_LAYOUT);
  95.     }
  96. /*
  97. -----------------------------------------------------------------------------
  98. void CVideoNaviDecoratorTime::Draw(const TRect& aRect) const
  99. Description: Draws screen
  100. Comments   :
  101.     Return values: N/A
  102. -----------------------------------------------------------------------------
  103. */
  104. void CVideoNaviDecoratorTime::Draw(const TRect& /*aRect*/) const
  105.     {
  106.     CWindowGc& gc=SystemGc();
  107.     MAknsSkinInstance* skin = AknsUtils::SkinInstance();
  108.     // draw time indicator
  109.     TRgb color = iTextLayout.Color();
  110.     // Color is not updated if it not found from the skin
  111.     AknsUtils::GetCachedColor(skin,color,KAknsIIDQsnComponentColors,EAknsCIQsnComponentColorsCG2);
  112.     gc.SetPenColor(color);
  113.     gc.UseFont(iTextLayout.Font()); 
  114.     gc.DrawText(*iLabel,iTextLayout.TextRect(),iTextLayout.Font()->AscentInPixels(),iTextLayout.Align());
  115.     }