XTExcelTabCtrlTheme.h
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:11k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // XTExcelTabCtrlTheme.h: interface for the CXTExcelTabCtrlTheme class.
  2. //
  3. // This file is a part of the XTREME CONTROLS MFC class library.
  4. // (c)1998-2008 Codejock Software, All Rights Reserved.
  5. //
  6. // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
  7. // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
  8. // CONSENT OF CODEJOCK SOFTWARE.
  9. //
  10. // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
  11. // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
  12. // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
  13. // SINGLE COMPUTER.
  14. //
  15. // CONTACT INFORMATION:
  16. // support@codejock.com
  17. // http://www.codejock.com
  18. //
  19. /////////////////////////////////////////////////////////////////////////////
  20. //{{AFX_CODEJOCK_PRIVATE
  21. #if !defined(__XTEXCELTABCTRLTHEME_H__)
  22. #define __XTEXCELTABCTRLTHEME_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. #include "Common/XTPDrawHelpers.h"
  28. #include "XTThemeManager.h"
  29. class CXTTcbItem;
  30. class CXTExcelTabCtrl;
  31. class CXTExcelTabCtrlButtonState;
  32. DECLARE_THEME_FACTORY(CXTExcelTabCtrlTheme)
  33. //===========================================================================
  34. // Summary:
  35. //     CXTExcelTabCtrlTheme is used to draw the CXTExcelTabCtrl object.  All themes
  36. //     used for CXTExcelTabCtrl should inherit from this base class.
  37. //===========================================================================
  38. class _XTP_EXT_CLASS CXTExcelTabCtrlTheme : public CXTThemeManagerStyle
  39. {
  40. public:
  41. //-------------------------------------------------------------------------
  42. // Summary:
  43. //     Constructs a CXTExcelTabCtrlTheme object.
  44. //-------------------------------------------------------------------------
  45. CXTExcelTabCtrlTheme();
  46. //-------------------------------------------------------------------------
  47. // Summary:
  48. //     Destroys a CXTExcelTabCtrlTheme object, handles cleanup and deallocation.
  49. //-------------------------------------------------------------------------
  50. ~CXTExcelTabCtrlTheme();
  51. public:
  52. //-------------------------------------------------------------------------
  53. // Summary:
  54. //     Call this function to refresh the flat tab control colors,
  55. //     position any scroll bars to their default positions, and then
  56. //     reset the control to the system defaults.
  57. //-------------------------------------------------------------------------
  58. virtual void RefreshMetrics();
  59. public:
  60. //-------------------------------------------------------------------------
  61. // Summary:
  62. //     This member function will draw a tab to the device context specified
  63. //     by 'pDC'.
  64. // Parameters:
  65. //     pDC          - A CDC pointer that represents the current device
  66. //                    context.
  67. //     pTabCtrl     - A pointer to a CXTExcelTabCtrl object.
  68. //     pt           - A CPoint object that specifies the position of
  69. //                    the XY location of the top left corner of the tab to draw.
  70. //     bSelected    - True if the tab is currently selected.
  71. //     pTcbItem     - Tab pointer to render.
  72. // Returns:
  73. //     The x position of the next tab to be drawn if successful, otherwise
  74. //     returns -1;.
  75. //-------------------------------------------------------------------------
  76. virtual int DrawTab(CDC* pDC, CXTExcelTabCtrl* pTabCtrl, const CPoint& pt, bool bSelected, CXTTcbItem* pTcbItem);
  77. //-------------------------------------------------------------------------
  78. // Summary:
  79. //     This member function is used by the flat tab control to draw an arrow
  80. //     button to the device context specified by 'pDC'.
  81. // Parameters:
  82. //     pDC          - A CDC pointer that represents the current device
  83. //                    context.
  84. //     pTabCtrl     - A pointer to a CXTExcelTabCtrl object.
  85. //     state - XY location of the top left corner of the tab to draw.
  86. //-------------------------------------------------------------------------
  87. virtual void DrawButton(CDC* pDC, CXTExcelTabCtrl* pTabCtrl, CXTExcelTabCtrlButtonState& state);
  88. //-----------------------------------------------------------------------
  89. // Summary: Call this member function to draw the background of the button.
  90. // Parameters:
  91. //      pDC   - A pointer to a valid device context.
  92. //      rect  - A CRect object that contains the location and the dimensions of the button.
  93. //      state - A CXTExcelTabCtrlButtonState that contains the current state of the button.
  94. //-----------------------------------------------------------------------
  95. virtual void DrawButtonBack(CDC* pDC, CRect& rect, CXTExcelTabCtrlButtonState& state);
  96. //-----------------------------------------------------------------------
  97. // Summary:
  98. //     This member function gets an RGB value that represents the background
  99. //     color of the tab.
  100. // Parameters:
  101. //     pTcbItem - The tab pointer to get background color for.
  102. // Returns:
  103. //     An RGB value that represents the tab background color if successful,
  104. //     otherwise returns COLORREF_NULL.
  105. //-----------------------------------------------------------------------
  106. virtual COLORREF GetTabBackColor(CXTTcbItem* pTcbItem) const;
  107. //-----------------------------------------------------------------------
  108. // Summary:
  109. //     This member function gets an RGB value that represents the text color
  110. //     of the tab.
  111. // Parameters:
  112. //     pTcbItem - The tab pointer to get text color for.
  113. // Returns:
  114. //     An RGB value that represents the tab text color if successful,
  115. //     otherwise returns COLORREF_NULL.
  116. //-----------------------------------------------------------------------
  117. virtual COLORREF GetTabTextColor(CXTTcbItem* pTcbItem) const;
  118. //-----------------------------------------------------------------------
  119. // Summary:
  120. //     This member function gets an RGB value that represents the background
  121. //     color for selected tabs.
  122. // Parameters:
  123. //     pTcbItem - The tab pointer to get selected background color for.
  124. // Returns:
  125. //     An RGB value that represents the selected tabs background color if
  126. //     successful, otherwise returns COLORREF_NULL.
  127. //-----------------------------------------------------------------------
  128. virtual COLORREF GetSelTabBackColor(CXTTcbItem* pTcbItem) const;
  129. //-----------------------------------------------------------------------
  130. // Summary:
  131. //     This member function gets an RGB value that represents the text color
  132. //     for selected tabs.
  133. // Parameters:
  134. //     pTcbItem - The tab pointer to get selected text color for.
  135. // Returns:
  136. //     An RGB value that represents the selected tab text color if
  137. //     successful, otherwise returns COLORREF_NULL.
  138. //-----------------------------------------------------------------------
  139. virtual COLORREF GetSelTabTextColor(CXTTcbItem* pTcbItem) const;
  140. CXTPPaintManagerColor m_clr3DFace;         // RGB value that represents the normal tab face color.
  141. CXTPPaintManagerColor m_clr3DFacePushed;   // RGB value for pushed background color.
  142. CXTPPaintManagerColor m_clr3DFaceHilite;   // RGB value for highlighted background color.
  143. CXTPPaintManagerColor m_clrBtnText;        // RGB value that represents the tab outline color.
  144. CXTPPaintManagerColor m_clrBtnTextGray;    // RGB value for disabled text color.
  145. CXTPPaintManagerColor m_clrBtnTextPushed;  // RGB value for highlighted text color.
  146. CXTPPaintManagerColor m_clrBtnTextHilite;  // RGB value for pushed text color.
  147. CXTPPaintManagerColor m_clrWindow;         // RGB value that represents the selected tab face color.
  148. CXTPPaintManagerColor m_clrWindowText;     // RGB value that represents the tab text color.
  149. CXTPPaintManagerColor m_clr3DHilight;      // RGB value that represents the tab highlight color.
  150. CXTPPaintManagerColor m_clr3DShadow;       // RGB value that represents the tab shadow color.
  151. CXTPPaintManagerColor m_clrBorder3DHilite; // RGB value for 3D border highlight color.
  152. CXTPPaintManagerColor m_clrBorder3DShadow; // RGB value for 3D border shadow color.
  153. int m_cx; // Width for each arrow button.
  154. int m_cy; // Height for each arrow button
  155. };
  156. //===========================================================================
  157. // Summary:
  158. //     CXTExcelTabCtrlThemeOfficeXP is used to draw the CXTExcelTabCtrl object.
  159. //===========================================================================
  160. class _XTP_EXT_CLASS CXTExcelTabCtrlThemeOfficeXP : public CXTExcelTabCtrlTheme
  161. {
  162. public:
  163. //-----------------------------------------------------------------------
  164. // Summary:
  165. //     This member function is called by the theme manager to refresh
  166. //     the visual styles used by each components theme.
  167. //-----------------------------------------------------------------------
  168. virtual void RefreshMetrics();
  169. ///-----------------------------------------------------------------------
  170. // Summary: Call this member function to draw the background of the button.
  171. // Parameters:
  172. //      pDC   - A pointer to a valid device context.
  173. //      rect  - A CRect object that contains the location and the dimensions of the button.
  174. //      state - A CXTExcelTabCtrlButtonState that contains the current state of the button.
  175. //-----------------------------------------------------------------------
  176. virtual void DrawButtonBack(CDC* pDC, CRect& rect, CXTExcelTabCtrlButtonState& state);
  177. };
  178. //===========================================================================
  179. // Summary:
  180. //     CXTExcelTabCtrlThemeOffice2003 is used to draw the CXTExcelTabCtrl object.
  181. //===========================================================================
  182. class _XTP_EXT_CLASS CXTExcelTabCtrlThemeOffice2003 : public CXTExcelTabCtrlThemeOfficeXP
  183. {
  184. //-----------------------------------------------------------------------
  185. // Summary:
  186. //     This member function is called by the theme manager to refresh
  187. //     the visual styles used by each components theme.
  188. //-----------------------------------------------------------------------
  189. virtual void RefreshMetrics();
  190. //-----------------------------------------------------------------------
  191. // Summary: Call this member function to draw the background of the button.
  192. // Parameters:
  193. //      pDC   - A pointer to a valid device context.
  194. //      rect  - A CRect object that contains the location and the dimensions of the button.
  195. //      state - A CXTExcelTabCtrlButtonState that contains the current state of the button.
  196. //-----------------------------------------------------------------------
  197. virtual void DrawButtonBack(CDC* pDC, CRect& rect, CXTExcelTabCtrlButtonState& state);
  198. };
  199. /////////////////////////////////////////////////////////////////////////////
  200. #endif // !defined(__XTEXCELTABCTRLTHEME_H__)