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

对话框与窗口

开发平台:

Visual C++

  1. // XTPPopupItem.h: interface for the CXTPPopupItem 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(_XTPPOPUPITEM_H__)
  22. #define _XTPPOPUPITEM_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. class CXTPPopupControl;
  28. class CXTPImageManagerIcon;
  29. class CXTPRichRender;
  30. class CXTPMarkupUIElement;
  31. //-----------------------------------------------------------------------
  32. // Summary:
  33. //     Enumeration used to determine the icon type of CXTPPopupItem.
  34. // Example:
  35. // <code>
  36. // CXTPPopupItem* pItemIcon = m_wndPopupControl.AddItem(
  37. //     new CXTPPopupItem(CRect(14, 40, 20, 49)));
  38. // pItemIcon->SetIcons(IDB_LOGOOFFICE, 0, xtpPopupItemIconNormal);
  39. // </code>
  40. // See Also:
  41. //     CXTPPopupItem::SetIcon, CXTPPopupItem::SetIcons
  42. //
  43. // <KEYWORDS xtpPopupItemIconNormal, xtpPopupItemIconSelected, xtpPopupItemIconPressed>
  44. //-----------------------------------------------------------------------
  45. enum XTPPopupItemIcon
  46. {
  47. xtpPopupItemIconNormal = 1,     //normal icon handler
  48. xtpPopupItemIconSelected = 2,   //selected icon handler
  49. xtpPopupItemIconPressed = 4     //pressed icon handler
  50. };
  51. //===========================================================================
  52. // Summary:
  53. //     Cpecial Id for close item
  54. //===========================================================================
  55. #define XTP_ID_POPUP_CLOSE -1
  56. //===========================================================================
  57. // Summary:
  58. //     CXTPPopupItem is a class used to management popup item object
  59. //===========================================================================
  60. class _XTP_EXT_CLASS  CXTPPopupItem : public CXTPCmdTarget
  61. {
  62. DECLARE_DYNCREATE(CXTPPopupItem)
  63. public:
  64. //-----------------------------------------------------------------------
  65. // Summary:
  66. //     Constructs a CXTPPopupItem object.
  67. // Parameters:
  68. //     rcItem        - Bounding rectangle of the item.
  69. //     lpszCaption   - NULL terminated string specifying the caption
  70. //                     text.
  71. //     clrBackground - Background color of the item.
  72. //     clrBorder     - Border color of the item
  73. //-----------------------------------------------------------------------
  74. CXTPPopupItem(LPRECT rcItem = NULL, LPCTSTR lpszCaption = NULL, COLORREF clrBackground = (COLORREF)-1, COLORREF clrBorder = (COLORREF)-1);
  75. //-----------------------------------------------------------------------
  76. // Summary:
  77. //     Destroys a CXTPPopupItem object.
  78. //-----------------------------------------------------------------------
  79. ~CXTPPopupItem();
  80. public:
  81. //-----------------------------------------------------------------------
  82. // Summary:
  83. //     This method is called to draw the item.
  84. // Parameters:
  85. //     pDC - A CDC pointer that represents the current device context.
  86. //-----------------------------------------------------------------------
  87. virtual void Draw(CDC* pDC);
  88. //-----------------------------------------------------------------------
  89. // Summary:
  90. //     Call this member function to get rectangular of an item.
  91. // Returns:
  92. //     CRect object containing rectangular of an item.
  93. //-----------------------------------------------------------------------
  94. CRect GetRect() const;
  95. //-----------------------------------------------------------------------
  96. // Summary:
  97. //     Call this member function to get button state of an item.
  98. // Returns:
  99. //     TRUE if button state is enabled, otherwise returns FALSE.
  100. //-----------------------------------------------------------------------
  101. BOOL IsButton() const;
  102. //-----------------------------------------------------------------------
  103. // Summary:
  104. //     Call this member function to set button state of an item.
  105. // Parameters:
  106. //     bButton - TRUE to enable button state, FALSE otherwise.
  107. //-----------------------------------------------------------------------
  108. void SetButton(BOOL bButton);
  109. //-----------------------------------------------------------------------
  110. // Summary:
  111. //     Call this member function to get selected state of an item.
  112. // Returns:
  113. //     TRUE if item selected, otherwise returns FALSE.
  114. //-----------------------------------------------------------------------
  115. BOOL IsSelected() const;
  116. //-----------------------------------------------------------------------
  117. // Summary:
  118. //     Call this member function to get pressed state of an item.
  119. // Returns:
  120. //     TRUE if item pressed, otherwise returns FALSE.
  121. //-----------------------------------------------------------------------
  122. BOOL IsPressed() const;
  123. //-----------------------------------------------------------------------
  124. // Summary:
  125. //     Call this member function to set ID number for an item.
  126. // Parameters:
  127. //     nID - value of ID number.
  128. //-----------------------------------------------------------------------
  129. void SetID(int nID);
  130. //-----------------------------------------------------------------------
  131. // Summary:
  132. //     Call this member function to get ID number of an item.
  133. //     window.
  134. // Returns:
  135. //     Value of ID number.
  136. //-----------------------------------------------------------------------
  137. int GetID() const;
  138. //-----------------------------------------------------------------------
  139. // Summary:
  140. //     Call this member function to set the text of an item.
  141. // Parameters:
  142. //     str -  a CString object that represents the item text.
  143. //-----------------------------------------------------------------------
  144. void SetCaption(LPCTSTR str);
  145. //-----------------------------------------------------------------------
  146. // Summary:
  147. //     Call this member function to get the text of an item.
  148. // Returns:
  149. //     A CString object that represents the item text.
  150. //-----------------------------------------------------------------------
  151. CString GetCaption() const;
  152. //-----------------------------------------------------------------------
  153. // Summary:
  154. //     Call this member function to set RichText of an item.
  155. // Parameters:
  156. //     str -  a CString object that represents the item text.
  157. //-----------------------------------------------------------------------
  158. void SetRTFText(LPCTSTR str);
  159. void SetRTFText(UINT nIDResource);
  160. void SetMarkupText(LPCTSTR str);
  161. void FitToContent();
  162. //-----------------------------------------------------------------------
  163. // Summary:
  164. //     Call this member function to set the color of an item text.
  165. // Parameters:
  166. //     clrText -  COLORREF object that represents the color of an item
  167. //     text.
  168. //-----------------------------------------------------------------------
  169. void SetTextColor(COLORREF clrText);
  170. //-----------------------------------------------------------------------
  171. // Summary:
  172. //     Call this member function to get the color of an item text.
  173. // Returns:
  174. //     A COLORREF object that represents the color of an item text.
  175. //-----------------------------------------------------------------------
  176. COLORREF GetTextColor() const;
  177. //-----------------------------------------------------------------------
  178. // Summary:
  179. //     Call this member to get the background color of an item.
  180. // Returns:
  181. //     The background color of a popup control item.
  182. //-----------------------------------------------------------------------
  183. COLORREF GetBackgroundColor() const;
  184. //-----------------------------------------------------------------------
  185. // Summary:
  186. //     Call this member to get the border color of an item.
  187. // Returns:
  188. //     The border color of a popup control item.
  189. //-----------------------------------------------------------------------
  190. COLORREF GetBorderColor() const;
  191. //-----------------------------------------------------------------------
  192. // Summary:
  193. //     Call this member function to set the alignment of an item text.
  194. // Parameters:
  195. //     nAlign -  The alignment style of an item text.
  196. //-----------------------------------------------------------------------
  197. void SetTextAlignment(int nAlign);
  198. //-----------------------------------------------------------------------
  199. // Summary:
  200. //     Call this member function to get the alignment of an item text.
  201. // Returns:
  202. //     The alignment style of an item text.
  203. //-----------------------------------------------------------------------
  204. int GetTextAlignment() const;
  205. //-----------------------------------------------------------------------
  206. // Summary:
  207. //     Call this member function to set the font of an item text.
  208. // Parameters:
  209. //     pFntText -  point to CFont object.
  210. //     pLogfText -  point to LOGFONT structure.
  211. //-----------------------------------------------------------------------
  212. void SetTextFont(CFont* pFntText);
  213. void SetTextFont(PLOGFONT pLogfText); // <combine CXTPPopupItem::SetTextFont@CFont* >
  214. //-----------------------------------------------------------------------
  215. // Summary:
  216. //     Call this member function to set the font of an item text.
  217. // Returns:
  218. //     Pointer to CFont object.
  219. //-----------------------------------------------------------------------
  220. virtual CFont* GetTextFont();
  221. //-----------------------------------------------------------------------
  222. // Summary:
  223. //     Call this member function to get hyperlink support of a text
  224. //     item.
  225. // Returns:
  226. //     TRUE if hyperlink support, otherwise returns FALSE.
  227. //-----------------------------------------------------------------------
  228. BOOL IsHyperLink() const;
  229. //-----------------------------------------------------------------------
  230. // Summary:
  231. //     Call this member function to set hyperlink support of a text
  232. //     item.
  233. // Parameters:
  234. //     bHyperLink - TRUE to set hyperlink support, FALSE otherwise.
  235. //-----------------------------------------------------------------------
  236. void SetHyperLink(BOOL bHyperLink);
  237. //-----------------------------------------------------------------------
  238. // Summary:
  239. //     Call this member function to get bold state of a text item.
  240. // Returns:
  241. //     TRUE if item state is bold, otherwise returns FALSE.
  242. //-----------------------------------------------------------------------
  243. BOOL IsBold() const;
  244. //-----------------------------------------------------------------------
  245. // Summary:
  246. //     Call this member function to set bold state of a text item.
  247. // Parameters:
  248. //     bBold - TRUE to set bold state, FALSE otherwise.
  249. //-----------------------------------------------------------------------
  250. void SetBold(BOOL bBold);
  251. //-----------------------------------------------------------------------
  252. // Summary:
  253. //     Call this member function to update rectangular height of a text.
  254. //-----------------------------------------------------------------------
  255. void CalculateHeight();
  256. //-----------------------------------------------------------------------
  257. // Summary:
  258. //     Call this member function to update rectangular width of a text.
  259. //-----------------------------------------------------------------------
  260. void CalculateWidth();
  261. //-----------------------------------------------------------------------
  262. // Summary:
  263. //     Call this member function to set the normal, selected ore pressed
  264. //     icon for icon item.
  265. // Parameters:
  266. //     hIcon - Handle to the icon.
  267. //     itemIcon - type of icon in use, see XTPPopupItemIcon.
  268. //-----------------------------------------------------------------------
  269. void SetIcon(HICON hIcon, XTPPopupItemIcon itemIcon = xtpPopupItemIconNormal);
  270. //-----------------------------------------------------------------------
  271. // Summary:
  272. //     Call this member function to set the normal, selected ore pressed
  273. //     icon from resource bitmap picture.
  274. // Parameters:
  275. //     nIDBitmap - Resource ID for the bitmap.
  276. //     hBitmap        - bitmap handle to set.
  277. //     clrTransparent - transparent color.
  278. //     itemIcon - type of icon in use, see XTPPopupItemIcon.
  279. // Returns:
  280. //     TRUE if successful, otherwise returns FALSE.
  281. //-----------------------------------------------------------------------
  282. BOOL SetIcons(UINT nIDBitmap, COLORREF clrTransparent, int itemIcon);
  283. BOOL SetIcons(HBITMAP hBitmap, COLORREF clrTransparent, int itemIcon); // <combine CXTPPopupItem::SetIcons@UINT@COLORREF@int>
  284. //-----------------------------------------------------------------------
  285. // Summary:
  286. //     Call this member function to get a handle the normal, selected
  287. //     ore pressed icon from icon item.
  288. // Returns:
  289. //     CXTPImageManagerIcon pointer to icon.
  290. //-----------------------------------------------------------------------
  291. CXTPImageManagerIcon* GetImage() const;
  292. //-----------------------------------------------------------------------
  293. // Summary:
  294. //     Returns parent popup control object.
  295. // Returns:
  296. //     Pointer to parent CXTPPopupControl.
  297. //-----------------------------------------------------------------------
  298. CXTPPopupControl* GetPopupControl() const;
  299. //-------------------------------------------------------------------------
  300. // Summary:
  301. //     Calculates offset to move icon in center.
  302. //-------------------------------------------------------------------------
  303. void CenterIcon();
  304. //-----------------------------------------------------------------------
  305. // Summary:
  306. //     Retrieve icon offset.
  307. // Returns:
  308. //     Poisition of icon inside item bounding rectangle.
  309. //-----------------------------------------------------------------------
  310. CPoint GetIconOffset() const;
  311. //-----------------------------------------------------------------------
  312. // Summary:
  313. //     Retrieves icon index.
  314. // Returns:
  315. //     Icon index.
  316. // See Also: SetIconIndex, CXTPPopupControl::GetImageManager
  317. //-----------------------------------------------------------------------
  318. int GetIconIndex() const;
  319. //-----------------------------------------------------------------------
  320. // Summary:
  321. //     Call this method to set icon index of item.
  322. // Parameters:
  323. //     nIconIndex - Icon index to be set.
  324. // See Also: GetIconIndex, CXTPPopupControl::GetImageManager
  325. //-----------------------------------------------------------------------
  326. void SetIconIndex(int nIconIndex);
  327. protected:
  328. //-------------------------------------------------------------------------
  329. // Summary:
  330. //     Call this method to redraw parent control.
  331. //-------------------------------------------------------------------------
  332. void RedrawControl();
  333. //-------------------------------------------------------------------------
  334. // Summary:
  335. //     This method is called when item is inserted to control.
  336. //-------------------------------------------------------------------------
  337. virtual void OnItemInserted();
  338. protected:
  339. BOOL m_bButton;                 // Flag of button state
  340. int m_nID;                      // ID number of an item
  341. CRect m_rcItem;                 // Rectangular of  an item
  342. CXTPPopupControl* m_pControl;   // Point to CXTPPopupControl object containing this item
  343. CFont m_fntText;                // Font of an item text
  344. BOOL m_bHyperLink;              // Flag of a hyperlink support
  345. CString m_strCaption;           // Caption string
  346. int m_nAlign;                   // Alignment style of an item text
  347. BOOL m_bBold;                   // Flag of bold state text
  348. COLORREF m_clrText;             // Text color
  349. COLORREF m_clrBackground;       // Background color
  350. COLORREF m_clrBorder;           // Border color
  351. CPoint m_ptOffset;              // Icon offset
  352. int m_nIndex;                   // Index of item in parent list.
  353. int m_nIconIndex;               // Icon Index in parent image maanger;
  354. CXTPRichRender* m_pRichRender;  // Richext Render
  355. CXTPMarkupUIElement* m_pUIElement;
  356. protected:
  357. friend class CXTPPopupControl;
  358. friend class CXTPPopupPaintManager;
  359. };
  360. AFX_INLINE CRect CXTPPopupItem::GetRect() const {
  361. return m_rcItem;
  362. }
  363. AFX_INLINE BOOL CXTPPopupItem::IsButton() const {
  364. return m_bButton;
  365. }
  366. AFX_INLINE void CXTPPopupItem::SetButton(BOOL bButton) {
  367. m_bButton = bButton;
  368. }
  369. AFX_INLINE void CXTPPopupItem::SetID(int nID) {
  370. m_nID = nID;
  371. }
  372. AFX_INLINE int CXTPPopupItem::GetID() const {
  373. return m_nID;
  374. }
  375. AFX_INLINE COLORREF CXTPPopupItem::GetTextColor() const {
  376. return m_clrText;
  377. }
  378. AFX_INLINE int CXTPPopupItem::GetTextAlignment() const {
  379. return m_nAlign;
  380. }
  381. AFX_INLINE void CXTPPopupItem::SetTextAlignment(int nAlign) {
  382. m_nAlign = nAlign;
  383. RedrawControl();
  384. }
  385. AFX_INLINE CString CXTPPopupItem::GetCaption() const {
  386. return m_strCaption;
  387. }
  388. AFX_INLINE void CXTPPopupItem::SetTextColor(COLORREF clrText) {
  389. m_clrText = clrText;
  390. RedrawControl();
  391. }
  392. AFX_INLINE BOOL CXTPPopupItem::IsHyperLink() const {
  393. return m_bHyperLink;
  394. }
  395. AFX_INLINE BOOL CXTPPopupItem::IsBold() const {
  396. return m_bBold;
  397. }
  398. AFX_INLINE void CXTPPopupItem::SetBold(BOOL bBold) {
  399. m_bBold = bBold;
  400. RedrawControl();
  401. }
  402. AFX_INLINE void CXTPPopupItem::SetHyperLink(BOOL bHyperLink) {
  403. m_bHyperLink = bHyperLink;
  404. }
  405. AFX_INLINE COLORREF CXTPPopupItem::GetBackgroundColor() const {
  406. return m_clrBackground;
  407. }
  408. AFX_INLINE COLORREF CXTPPopupItem::GetBorderColor() const {
  409. return m_clrBorder;
  410. }
  411. AFX_INLINE CPoint CXTPPopupItem::GetIconOffset() const {
  412. return m_ptOffset;
  413. }
  414. AFX_INLINE void CXTPPopupItem::SetIconIndex(int nIconIndex) {
  415. m_nIconIndex = nIconIndex;
  416. RedrawControl();
  417. }
  418. AFX_INLINE int CXTPPopupItem::GetIconIndex() const {
  419. return m_nIconIndex == -1 ? m_nIndex : m_nIconIndex;
  420. }
  421. AFX_INLINE CXTPPopupControl* CXTPPopupItem::GetPopupControl() const {
  422. return m_pControl;
  423. }
  424. #endif // !defined(_XTPPOPUPITEM_H__)