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

对话框与窗口

开发平台:

Visual C++

  1. // XTMenuListBoxTheme.h: interface for the CXTMenuListBoxTheme 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(__XTMENULISTBOXTHEME_H__)
  22. #define __XTMENULISTBOXTHEME_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 CXTMenuListBox;
  30. class CXTPImageManagerIcon;
  31. DECLARE_THEME_FACTORY(CXTMenuListBoxTheme)
  32. //===========================================================================
  33. // Summary:
  34. //     CXTMenuListBoxTheme is used to draw the CXTMenuListBox object.  All themes
  35. //     used for CXTButton should inherit from this base class.
  36. //     Note:  A Menu List box is similar in appearance to an outlook bar.
  37. //===========================================================================
  38. class _XTP_EXT_CLASS CXTMenuListBoxTheme : public CXTThemeManagerStyle
  39. {
  40. public:
  41. //-----------------------------------------------------------------------
  42. // Summary:
  43. //     Constructs a CXTMenuListBoxTheme object.
  44. //-----------------------------------------------------------------------
  45. CXTMenuListBoxTheme();
  46. //-----------------------------------------------------------------------
  47. // Summary:
  48. //     Destroys a CXTMenuListBoxTheme object, handles cleanup and deallocation.
  49. //-----------------------------------------------------------------------
  50. virtual ~CXTMenuListBoxTheme();
  51. public:
  52. //-------------------------------------------------------------------------
  53. // Summary:
  54. //     Call this function to refresh the colors for the list box control.
  55. //     Also, this function gets the system default size for icons, and the
  56. //     default dimensions of a 3D border.  Lastly, the function sets the
  57. //     default color values for the different parts of buttons. i.e button
  58. //     pressed style, button highlight, button top left color, and button
  59. //     bottom right color.
  60. //-------------------------------------------------------------------------
  61. virtual void RefreshMetrics();
  62. public:
  63. //-----------------------------------------------------------------------
  64. // Summary:
  65. //     Call this function to draw an item in the menu list box.
  66. // Parameters:
  67. //     pMenuListBox - A pointer to a CXTMenuListBox object.
  68. //     lpDIS        - A LPDRAWITEMSTRUCT struct that contains information
  69. //                    about how the list box should be drawn.
  70. //-----------------------------------------------------------------------
  71. virtual void DrawItem(CXTMenuListBox* pMenuListBox, LPDRAWITEMSTRUCT lpDIS);
  72. //-----------------------------------------------------------------------
  73. // Summary:
  74. //     Call this function to get the background color of the menu list box.
  75. // Returns:
  76. //     A COLORREF value corresponding to the background color.
  77. //-----------------------------------------------------------------------
  78. COLORREF GetBackColor();
  79. //-----------------------------------------------------------------------
  80. // Summary:
  81. //     Call this function to get the color of the text used in the menu list box.
  82. // Returns:
  83. //     A COLORREF value corresponding to the text color.
  84. //-----------------------------------------------------------------------
  85. COLORREF GetTextColor();
  86. public:
  87. CXTPPaintManagerColor m_crItemText;
  88. CXTPPaintManagerColor m_crItemTextDisabled;
  89. CXTPPaintManagerColorGradient m_crgBack;
  90. CXTPPaintManagerColorGradient m_crgItemBorder;
  91. CXTPPaintManagerColorGradient m_crgItemBackHot;
  92. CXTPPaintManagerColorGradient m_crgItemBackPressed;
  93. public:
  94. int m_cyEdge;  // Height in pixels of the space between the icon an text.
  95. int m_cxIcon;  // Width of the menu icon.
  96. int m_cyIcon;  // Height of the menu icon.
  97. protected:
  98. virtual void DrawImage(CDC* pDC, CRect& rcIcon, CXTPImageManagerIcon* pImage, BOOL bEnabled, BOOL bSelected, BOOL bPressed);
  99. virtual void DrawText(CDC* pDC, CRect& rcText, CXTMenuListBox::CONTENT_ITEM* pCI);
  100. };
  101. //===========================================================================
  102. // Summary:
  103. //     Class CXTMenuListBoxThemeOfficeXP is derived from CXTMenuListBoxTheme.
  104. //     This class is used to implement the Office XP theme for Menu List Boxes.
  105. //===========================================================================
  106. class _XTP_EXT_CLASS CXTMenuListBoxThemeOfficeXP : public CXTMenuListBoxTheme
  107. {
  108. public:
  109. //-------------------------------------------------------------------------
  110. // Summary:
  111. //     Constructs a CXTMenuListBoxThemeOfficeXP object.
  112. //-------------------------------------------------------------------------
  113. CXTMenuListBoxThemeOfficeXP();
  114. //-------------------------------------------------------------------------
  115. // Summary:
  116. //     Call this function to refresh the colors for the list box control.
  117. //     Also, this function gets the system default size for icons, and the
  118. //     default dimensions of a 3D border.  Lastly, the function sets the
  119. //     default color values for the different parts of buttons. i.e button
  120. //     pressed style, button highlight, button top left color, and button
  121. //     bottom right color.
  122. //-------------------------------------------------------------------------
  123. void RefreshMetrics();
  124. protected:
  125. virtual void DrawImage(CDC* pDC, CRect& rcIcon, CXTPImageManagerIcon* pImage, BOOL bEnabled, BOOL bSelected, BOOL bPressed);
  126. virtual void DrawText(CDC* pDC, CRect& rcText, CXTMenuListBox::CONTENT_ITEM* pCI);
  127. };
  128. //===========================================================================
  129. // Summary:
  130. //     Class CXTMenuListBoxThemeOffice2003 is derived from CXTMenuListBoxThemeXP.
  131. //     This class is used to implement the Office 2003 theme for Menu List Boxes.
  132. //===========================================================================
  133. class _XTP_EXT_CLASS CXTMenuListBoxThemeOffice2003 : public CXTMenuListBoxThemeOfficeXP
  134. {
  135. public:
  136. //-------------------------------------------------------------------------
  137. // Summary:
  138. //     Constructs a CXTMenuListBoxThemeOffice2003 object.
  139. //-------------------------------------------------------------------------
  140. CXTMenuListBoxThemeOffice2003();
  141. //-------------------------------------------------------------------------
  142. // Summary:
  143. //     Call this function to refresh the colors for the list box control.
  144. //     Also, this function gets the system default size for icons, and the
  145. //     default dimensions of a 3D border.  Lastly, the function sets the
  146. //     default color values for the different parts of buttons. i.e button
  147. //     pressed style, button highlight, button top left color, and button
  148. //     bottom right color.
  149. //-------------------------------------------------------------------------
  150. void RefreshMetrics();
  151. protected:
  152. virtual void DrawImage(CDC* pDC, CRect& rcIcon, CXTPImageManagerIcon* pImage, BOOL bEnabled, BOOL bSelected, BOOL bPressed);
  153. };
  154. /////////////////////////////////////////////////////////////////////////////
  155. #endif // !defined(__XTMENULISTBOXTHEME_H__)