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

对话框与窗口

开发平台:

Visual C++

  1. // XTPControlPopupColor.h : interface for the CXTPControlPopupColor class.
  2. //
  3. // This file is a part of the XTREME COMMANDBARS 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(__XTPCONTROLPOPUPCOLOR_H__)
  22. #define __XTPCONTROLPOPUPCOLOR_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER >= 1000
  25. #pragma once
  26. #endif // _MSC_VER >= 1000
  27. class CXTPImageManagerIcon;
  28. class CXTPImageManagerIconHandle;
  29. //===========================================================================
  30. // Summary:
  31. //     CXTPControlPopupColor is a CXTPControlPopup derived class.
  32. //     It represents a color picker control.
  33. //===========================================================================
  34. class _XTP_EXT_CLASS CXTPControlPopupColor : public CXTPControlPopup
  35. {
  36. //{{AFX_CODEJOCK_PRIVATE
  37. DECLARE_XTP_CONTROL(CXTPControlPopupColor)
  38. //}}AFX_CODEJOCK_PRIVATE
  39. public:
  40. //-----------------------------------------------------------------------
  41. // Summary:
  42. //     Constructs a CXTPControlPopupColor object
  43. //-----------------------------------------------------------------------
  44. CXTPControlPopupColor();
  45. //-----------------------------------------------------------------------
  46. // Summary:
  47. //     Destroys a CXTPControlPopupColor object, handles cleanup and
  48. //     deallocation
  49. //-----------------------------------------------------------------------
  50. ~CXTPControlPopupColor();
  51. //-----------------------------------------------------------------------
  52. // Summary:
  53. //     Call this member to set the picker color.
  54. // Parameters:
  55. //     clr - Color to set.
  56. //-----------------------------------------------------------------------
  57. void SetColor(COLORREF clr);
  58. //-----------------------------------------------------------------------
  59. // Summary:
  60. //     Call this member to retrieve the control color.
  61. // Returns:
  62. //     Color of the color picker.
  63. //-----------------------------------------------------------------------
  64. COLORREF GetColor() const;
  65. protected:
  66. //-----------------------------------------------------------------------
  67. // Summary:
  68. //     This method is called to copy the control.
  69. // Parameters:
  70. //     pControl - Points to a source CXTPControl object
  71. //     bRecursive - TRUE to copy recursively.
  72. //-----------------------------------------------------------------------
  73. void Copy(CXTPControl* pControl, BOOL bRecursive = FALSE);
  74. private:
  75. void RedrawIcon(CXTPImageManagerIcon* pImage, CXTPImageManagerIconHandle& hIcon);
  76. private:
  77. COLORREF m_clr;
  78. };
  79. //===========================================================================
  80. // Summary:
  81. //     CXTPControlButtonColor is a CXTPControlButton derived class.
  82. //     It represents a text button in the color picker popup.
  83. //===========================================================================
  84. class _XTP_EXT_CLASS CXTPControlButtonColor: public CXTPControlButton
  85. {
  86. //{{AFX_CODEJOCK_PRIVATE
  87. DECLARE_XTP_CONTROL(CXTPControlButtonColor)
  88. //}}AFX_CODEJOCK_PRIVATE
  89. public:
  90. //-----------------------------------------------------------------------
  91. // Summary:
  92. //     Constructs a CXTPControlButtonColor object
  93. //-----------------------------------------------------------------------
  94. CXTPControlButtonColor();
  95. //-----------------------------------------------------------------------
  96. // Summary:
  97. //     Call this member to retrieve the color of the control.
  98. // Returns:
  99. //     Color of the selector.
  100. //-----------------------------------------------------------------------
  101. COLORREF GetColor() const;
  102. //-----------------------------------------------------------------------
  103. // Summary:
  104. //     Call this method to set the color of the control.
  105. // Parameters:
  106. //     clr - Color to set.
  107. //-----------------------------------------------------------------------
  108. void SetColor(COLORREF clr);
  109. protected:
  110. //-----------------------------------------------------------------------
  111. // Summary:
  112. //     This method is called to copy the control.
  113. // Parameters:
  114. //     pControl - Points to a source CXTPControl object
  115. //     bRecursive - TRUE to copy recursively.
  116. //-----------------------------------------------------------------------
  117. void Copy(CXTPControl* pControl, BOOL bRecursive = FALSE);
  118. //-----------------------------------------------------------------------
  119. // Summary:
  120. //     Reads or writes this object from or to an archive.
  121. // Parameters:
  122. //     pPX - A CXTPPropExchange object to serialize to or from.
  123. //----------------------------------------------------------------------
  124. void DoPropExchange(CXTPPropExchange* pPX);
  125. //-----------------------------------------------------------------------
  126. // Summary:
  127. //     This method is called to determine the size of the control.
  128. // Parameters:
  129. //     pDC - Pointer to a valid device context
  130. // Returns:
  131. //     Size of the control.
  132. //-----------------------------------------------------------------------
  133. CSize GetSize(CDC* pDC);
  134. //-----------------------------------------------------------------------
  135. // Summary:
  136. //     This method is called to draw the control.
  137. // Parameters:
  138. //     pDC - Pointer to a valid device context.
  139. //-----------------------------------------------------------------------
  140. void Draw(CDC* pDC);
  141. protected:
  142. COLORREF m_clr;
  143. };
  144. //===========================================================================
  145. // Summary:
  146. //     CXTPControlColorSelector is a CXTPControl derived class.
  147. //     It represents a color selector control.
  148. //===========================================================================
  149. class _XTP_EXT_CLASS CXTPControlColorSelector: public CXTPControl
  150. {
  151. //{{AFX_CODEJOCK_PRIVATE
  152. DECLARE_XTP_CONTROL(CXTPControlColorSelector)
  153. //}}AFX_CODEJOCK_PRIVATE
  154. //-----------------------------------------------------------------------
  155. // Summary:
  156. //     Internal helper class.
  157. //-----------------------------------------------------------------------
  158. struct CColorInfo;
  159. public:
  160. //-----------------------------------------------------------------------
  161. // Summary:
  162. //     Constructs a CXTPControlColorSelector object
  163. //-----------------------------------------------------------------------
  164. CXTPControlColorSelector();
  165. //-----------------------------------------------------------------------
  166. // Summary:
  167. //     Call this member to retrieve the color of the selector control.
  168. // Returns:
  169. //     Color of the selector.
  170. //-----------------------------------------------------------------------
  171. COLORREF GetColor() const;
  172. //-----------------------------------------------------------------------
  173. // Summary:
  174. //     Call this method to set the color of the control.
  175. // Parameters:
  176. //     clr - Color to set.
  177. //-----------------------------------------------------------------------
  178. void SetColor(COLORREF clr);
  179. protected:
  180. //-----------------------------------------------------------------------
  181. // Summary:
  182. //     This method is called to determine the size of the control.
  183. // Parameters:
  184. //     pDC - Pointer to a valid device context
  185. // Returns:
  186. //     Size of the control.
  187. //-----------------------------------------------------------------------
  188. CSize GetSize(CDC* pDC);
  189. //-----------------------------------------------------------------------
  190. // Summary:
  191. //     This method is called to draw the control.
  192. // Parameters:
  193. //     pDC - Pointer to a valid device context.
  194. //-----------------------------------------------------------------------
  195. void Draw(CDC* pDC);
  196. //-----------------------------------------------------------------------
  197. // Summary:
  198. //     This member is called when the mouse cursor moves.
  199. // Parameters:
  200. //     point - Specifies the x- and y-coordinate of the cursor.
  201. //-----------------------------------------------------------------------
  202. void OnMouseMove(CPoint point);
  203. //-----------------------------------------------------------------------
  204. // Summary:
  205. //     This method is called when the control becomes selected.
  206. // Parameters:
  207. //     bSelected - TRUE if the control becomes selected.
  208. // Returns:
  209. //     TRUE if successful; otherwise returns FALSE
  210. //-----------------------------------------------------------------------
  211. BOOL OnSetSelected(int bSelected);
  212. //-----------------------------------------------------------------------
  213. // Summary:
  214. //     This method is called when the user clicks the control.
  215. // Parameters:
  216. //     bKeyboard - TRUE if the control is selected using the keyboard.
  217. //     pt - Mouse cursor position.
  218. //-----------------------------------------------------------------------
  219. void OnClick(BOOL bKeyboard = FALSE, CPoint pt = CPoint(0, 0));
  220. //-----------------------------------------------------------------------
  221. // Summary:
  222. //     This method is called when the control is executed.
  223. //-----------------------------------------------------------------------
  224. void OnExecute();
  225. //----------------------------------------------------------------------
  226. // Summary:
  227. //     This member is called when the user releases the left mouse button.
  228. // Parameters:
  229. //     point - Specifies the x- and y-coordinate of the cursor.
  230. //----------------------------------------------------------------------
  231. void OnLButtonUp(CPoint point);
  232. protected:
  233. virtual INT_PTR OnToolHitTest(CPoint point, TOOLINFO* pTI) const;
  234. private:
  235. CRect GetRect(int nIndex) const;
  236. int HitTest(CPoint point) const;
  237. BOOL IsFocused() const;
  238. BOOL OnHookKeyDown(UINT nChar, LPARAM /*lParam*/);
  239. void SetSelectedItem(int nItem);
  240. int GetItemCount() const;
  241. private:
  242. int m_nSelected;
  243. int m_nPressed;
  244. COLORREF m_clr;
  245. };
  246. // Obsolete define
  247. #define XTP_IDS_AUTOMATIC XTP_IDS_CLR_AUTOMATIC
  248. #define XTP_IDS_MORE_COLORS XTP_IDS_CLR_MORE
  249. #endif // #if !defined(__XTPCONTROLPOPUPCOLOR_H__)