chxavtextcontrol.h
上传用户:zhongxx05
上传日期:2007-06-06
资源大小:33641k
文件大小:3k
源码类别:

Symbian

开发平台:

C/C++

  1. /************************************************************************
  2.  * chxavtextcontrol.h
  3.  * ------------------
  4.  *
  5.  * Synopsis:
  6.  * Text control for ui.
  7.  *
  8.  * Target:
  9.  * Symbian OS
  10.  *
  11.  *
  12.  * (c) 1995-2003 RealNetworks, Inc. Patents pending. All rights reserved.
  13.  *
  14.  ************************************************************************/
  15. #ifndef _chxavtextcontrol_h_
  16. #define _chxavtextcontrol_h_
  17. // Helix includes...
  18. #include "hxstring.h"
  19. // Include from this project...
  20. #include "chxavcommand.h"
  21. #include "chxavcontrol.h"
  22. // class CHXAvTextControl
  23. class CHXAvTextControl
  24. : public CHXAvControl
  25. {
  26. public:
  27.     struct TextControlAttributes
  28.     {
  29. TextControlAttributes() 
  30. : bIsBold(false)
  31. , fontHeight(12)
  32. , bIsTransparent(true)
  33. , textColor(0,0,0)
  34. , bgColor(255,255,255)
  35. , justify(CGraphicsContext::ELeft)
  36. , fontName("Swiss"){}
  37.         bool bIsBold;
  38. TInt fontHeight;
  39. bool bIsTransparent;
  40. TRgb textColor;
  41. TRgb bgColor;
  42. CGraphicsContext::TTextAlign justify;
  43.         CHXString fontName;
  44.     };
  45. public:
  46.     // creation
  47.     static CHXAvTextControl* NewL(const CCoeControl& container, TInt cid);
  48.     void ConstructL(const CCoeControl& parent);
  49.     CHXAvTextControl(TInt cid = -1);
  50.     virtual ~CHXAvTextControl();
  51.     void SetTruncateWithEllipsis(bool bUseEllipsis);
  52.     void SetCommandL(const CHXAvCommand& commandProto);
  53.     void SetBGBitmapL(CFbsBitmap* pbmpParentBG);
  54.     void SetText(const TDesC& text);
  55.     void SetTextColor(const TRgb& color);
  56.     void SetBackgroundColor(const TRgb& color);
  57.     void SetFontName(const CHXString& fontName);
  58.     void SetFontHeight(int height);
  59.     void SetFontBold(bool bold);
  60.     void SetJustification(CGraphicsContext::TTextAlign justify);
  61.     void SetTransparent(bool transparent);
  62.     void SetAttributes(const CHXAvTextControl::TextControlAttributes& attr);
  63.     void UpdateFont(const CFont* pExternalFont = 0);
  64.     const TextControlAttributes& GetAttr() const;
  65.     const TDesC& GetText() const;
  66.     const CFont* GetFont() const;
  67. public:
  68.     // CCoeControl
  69.     //virtual TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);
  70.     virtual void HandlePointerEventL(const TPointerEvent& aPointerEvent);
  71. private:
  72.     // CCoeControl
  73.     virtual void Draw(const TRect& rect) const;
  74.     
  75. private:
  76.     CFont* CreateFont() const; 
  77. private:
  78.     
  79.     HBufC* m_pText;
  80.     CFont* m_pFont;
  81.     const CFont* m_pExternalFont;
  82.     CHXAvCommand* m_pCommand;
  83.     CFbsBitmap* m_pbmpBG;
  84.     bool m_bUseEllipsisForTruncation;
  85.     TextControlAttributes m_attr;
  86. };
  87. inline
  88. const TDesC& CHXAvTextControl::GetText() const
  89. {
  90.     return *m_pText;
  91. }
  92. inline
  93. const CHXAvTextControl::TextControlAttributes& CHXAvTextControl::GetAttr() const
  94. {
  95.     return m_attr;
  96. }
  97. inline
  98. const CFont* CHXAvTextControl::GetFont() const
  99. {
  100.     return m_pFont ? m_pFont : m_pExternalFont;
  101. }
  102. /////////////////////////////////////////////////////////
  103. // if true, ellipsis are added at end of truncated text;
  104. // the text itself may be truncated further to make space
  105. // for the ellipsis
  106. //
  107. // if false, the text is truncated so that as much whole text
  108. // characters will fit in the rectangle as possible
  109. //
  110. inline
  111. void CHXAvTextControl::SetTruncateWithEllipsis(bool bUseEllipsis)
  112. {
  113.     m_bUseEllipsisForTruncation = bUseEllipsis;
  114. }
  115. #endif // _chxavtextcontrol_h_