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

对话框与窗口

开发平台:

Visual C++

  1. // XTOutBarCtrlTheme.h: interface for the CXTOutBarCtrlTheme 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(__XTOUTBARCTRLTHEME_H__)
  22. #define __XTOUTBARCTRLTHEME_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 CXTOutBarCtrl;
  30. class CXTOutBarItem;
  31. class CXTOutBarFolder;
  32. DECLARE_THEME_FACTORY(CXTOutBarCtrlTheme)
  33. //===========================================================================
  34. // Summary:
  35. //     CXTOutBarCtrlTheme is used to draw the CXTOutBarCtrl object.  All themes
  36. //     used for CXTOutBarCtrl should inherit from this base class.
  37. //===========================================================================
  38. class _XTP_EXT_CLASS CXTOutBarCtrlTheme : public CXTThemeManagerStyle
  39. {
  40. public:
  41. //-----------------------------------------------------------------------
  42. // Summary:
  43. //     Constructs a CXTOutBarCtrlTheme object.
  44. //-----------------------------------------------------------------------
  45. CXTOutBarCtrlTheme();
  46. //-----------------------------------------------------------------------
  47. // Summary:
  48. //     Destroys a CXTOutBarCtrlTheme object, handles cleanup and deallocation.
  49. //-----------------------------------------------------------------------
  50. virtual ~CXTOutBarCtrlTheme();
  51. public:
  52. //-------------------------------------------------------------------------
  53. // Summary:
  54. //     Refresh the colors on the OutBar.  Also, set the default colors
  55. //     for the background and the text on the OutBar.
  56. //-------------------------------------------------------------------------
  57. virtual void RefreshMetrics();
  58. //-----------------------------------------------------------------------
  59. // Summary:
  60. //     Set the font used by the OutBar.
  61. // Parameters:
  62. //     pFont - A pointer to a CFont object.
  63. //-----------------------------------------------------------------------
  64. void SetFont(CFont* pFont);
  65. public:
  66. //-----------------------------------------------------------------------
  67. // Summary:
  68. //     Call this function to draw the icon associated with the pBarItem.
  69. // Parameters:
  70. //     pDC        - A CDC pointer that represents the current device
  71. //                  context.
  72. //     pt         - A CPoint object that specifies the XY location of the icon.
  73. //     pBarItem   - A pointer to a CXTOutBarItem object.  Used to maintain information
  74. //                  about the folder item.
  75. //     pImageList - A pointer to a CImageList object.  Used to store the icons
  76. //                  that are displayed in the folder.
  77. //-----------------------------------------------------------------------
  78. virtual void DrawItemIcon(CDC* pDC, CPoint pt, CXTOutBarItem* pBarItem, CImageList* pImageList);
  79. //-----------------------------------------------------------------------
  80. // Summary:
  81. //     Call this function to draw text associated with the item in the OutBar.
  82. // Parameters:
  83. //     pDC      - A CDC pointer that represents the current device
  84. //                context.
  85. //     rc       - A CRect object.  Used to specify the XY position of where
  86. //                the text is drawn.
  87. //     pBarItem - A pointer to a CXTOutBarItem object.  Used to maintain information
  88. //                about the folder item.  Contains the text to draw.
  89. //     nFormat  - The method of formatting the text.  Can be any valid formatting
  90. //                used for the MFC CDC::DrawText function.
  91. //-----------------------------------------------------------------------
  92. virtual void DrawItemText(CDC* pDC, CRect rc, CXTOutBarItem* pBarItem, UINT nFormat);
  93. //-----------------------------------------------------------------------
  94. // Summary:
  95. //     Call this function to draw a filled rectangle specified at position rc.
  96. // Parameters:
  97. //     pDC - A CDC pointer that represents the current device
  98. //           context.
  99. //     rc  - A CRect object.  Used to specify the XY position of where
  100. //           the rectangle is drawn.
  101. //-----------------------------------------------------------------------
  102. virtual void FillInsideRect(CDC* pDC, CRect rc);
  103. //-----------------------------------------------------------------------
  104. // Summary:
  105. //     Call this function to draw the folder on the OutBar.  The folder can be drawn
  106. //     in any one of three states, normal, selected, and highlighted.
  107. // Parameters:
  108. //     pDC        - A CDC pointer that represents the current device
  109. //                  context.
  110. //     rect       - A CRect object that specifies the XY location of the folder.
  111. //     pBarFolder - A CXTOutBarFolder object that maintains information about the folder.
  112. //     eHilight   - An int that specifies the height of the folder.  The possible
  113. //                  values are: xtMouseNormal, xtMouseSelect, and xtMouseHover.
  114. //-----------------------------------------------------------------------
  115. virtual void DrawFolder(CDC* pDC, CRect rect, CXTOutBarFolder* pBarFolder, const XTMouseState eHilight);
  116. //-----------------------------------------------------------------------
  117. // Summary:
  118. //     Call this function to draw a 3D rectangle around an icon.
  119. // Parameters:
  120. //     pDC       - A CDC pointer that represents the current device
  121. //                 context.
  122. //     rcIcon    - A CRect object that specifies the XY location of the icon.
  123. //     bSelected - TRUE if the icon is currently selected.  FALSE otherwise.
  124. //     bPressed  - TRUE if the icon is pressed.  FALSE otherwise.
  125. //-----------------------------------------------------------------------
  126. virtual void DrawIconFrame(CDC* pDC, CRect rcIcon, BOOL bSelected, BOOL bPressed);
  127. protected:
  128. BOOL m_bFlatIcon;   // Set this to TRUE to draw flat icons.
  129. BOOL m_bPlainText;  // Set to TRUE to draw plain text.  Uses the system default font and font attributes.
  130. public:
  131. CXTPPaintManagerColor m_clrBack;    // The color used to draw the background of the OutBar.
  132. CXTPPaintManagerColor m_clrText;    // The color used to draw the text on the OutBar.
  133. };
  134. //===========================================================================
  135. // Summary:
  136. //     Class CXTOutBarCtrlThemeOfficeXP is derived form CXTOutBarCtrlTheme.
  137. //     This class is used to draw an OutBar with the Office XP theme.
  138. //===========================================================================
  139. class _XTP_EXT_CLASS CXTOutBarCtrlThemeOfficeXP : public CXTOutBarCtrlTheme
  140. {
  141. public:
  142. //-------------------------------------------------------------------------
  143. // Summary:
  144. //     Constructs a CXTOutBarCtrlThemeOfficeXP object.
  145. //-------------------------------------------------------------------------
  146. CXTOutBarCtrlThemeOfficeXP();
  147. //-------------------------------------------------------------------------
  148. // Summary:
  149. //     Refresh the colors on the OutBar.  Also, set the default colors
  150. //     for the background and the text on the OutBar.
  151. //-------------------------------------------------------------------------
  152. void RefreshMetrics();
  153. //-----------------------------------------------------------------------
  154. // Summary:
  155. //     Call this function to draw a 3D rectangle around an icon.
  156. // Parameters:
  157. //     pDC       - A CDC pointer that represents the current device
  158. //                 context.
  159. //     rcIcon    - A CRect object that specifies the XY location of the icon.
  160. //     bSelected - TRUE if the icon is currently selected.  FALSE otherwise.
  161. //     bPressed  - TRUE if the icon is pressed.  FALSE otherwise.
  162. //-----------------------------------------------------------------------
  163. virtual void DrawIconFrame(CDC* pDC, CRect rcIcon, BOOL bSelected, BOOL bPressed);
  164. };
  165. //===========================================================================
  166. // Summary:
  167. //     Class CXTOutBarCtrlThemeOffice2003 is derived form CXTOutBarCtrlThemeXP.
  168. //     This class is used to draw an OutBar with the Office XP theme.
  169. //===========================================================================
  170. class _XTP_EXT_CLASS CXTOutBarCtrlThemeOffice2003 : public CXTOutBarCtrlThemeOfficeXP
  171. {
  172. public:
  173. //-------------------------------------------------------------------------
  174. // Summary:
  175. //     Constructs a CXTOutBarCtrlThemeOffice2003 object.
  176. //-------------------------------------------------------------------------
  177. CXTOutBarCtrlThemeOffice2003();
  178. //-------------------------------------------------------------------------
  179. // Summary:
  180. //     Refresh the colors on the OutBar.  Also, set the default colors
  181. //     for the background and the text on the OutBar.
  182. //-------------------------------------------------------------------------
  183. virtual void RefreshMetrics();
  184. //-----------------------------------------------------------------------
  185. // Summary:
  186. //     Call this function to draw the folder on the OutBar.  The folder can be drawn
  187. //     in any one of three states, normal, selected, or highlighted.
  188. // Parameters:
  189. //     pDC        - A CDC pointer that represents the current device
  190. //                  context.
  191. //     rect       - A CRect object that specifies the XY location of the folder.
  192. //     pBarFolder - A CXTOutBarFolder object that maintains information about the folder.
  193. //     eHilight   - An int that specifies the height of the folder.  The possible
  194. //                  values are: xtMouseNormal, xtMouseSelect, and xtMouseHover.
  195. //-----------------------------------------------------------------------
  196. virtual void DrawFolder(CDC* pDC, CRect rect, CXTOutBarFolder* pBarFolder, const XTMouseState eHilight);
  197. //-----------------------------------------------------------------------
  198. // Summary:
  199. //     Call this function to draw a 3D rectangle around an icon.
  200. // Parameters:
  201. //     pDC       - A CDC pointer that represents the current device
  202. //                 context.
  203. //     rcIcon    - A CRect object that specifies the XY location of the icon.
  204. //     bSelected - TRUE if the icon is currently selected.  FALSE otherwise.
  205. //     bPressed  - TRUE if the icon is pressed.  FALSE otherwise.
  206. //-----------------------------------------------------------------------
  207. virtual void DrawIconFrame(CDC* pDC, CRect rcIcon, BOOL bSelected, BOOL bPressed);
  208. protected:
  209. CXTPPaintManagerColorGradient m_grcSelected; // The selected gradient color.
  210. CXTPPaintManagerColorGradient m_grcHot;      // The hot gradient color.
  211. CXTPPaintManagerColorGradient m_grcPushed;   // The pushed gradient color.
  212. BOOL                          m_bLunaTheme;  // TRUE if the current theme is a Luna Theme.
  213. };
  214. /////////////////////////////////////////////////////////////////////////////
  215. #endif // !defined(__XTOUTBARCTRLTHEME_H__)