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

对话框与窗口

开发平台:

Visual C++

  1. // XTPShortcutBarPaintManager.h interface for the CXTPShortcutBarPaintManager class.
  2. //
  3. // This file is a part of the XTREME SHORTCUTBAR 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(__XTPSHORTCUTBARPAINTMANAGER_H__)
  22. #define __XTPSHORTCUTBARPAINTMANAGER_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. #include "Common/XTPColorManager.h"
  28. //-----------------------------------------------------------------------
  29. // Summary:
  30. //     XTPShortcutBarPaintTheme is an enumeration used by CXTPShortcutBar to set the theme of the control.
  31. // Example:
  32. // <code>
  33. //     m_wndShortcutBar.SetTheme(xtpShortcutThemeOffice2003);
  34. // </code>
  35. // See Also:
  36. //     CXTPShortcutBar::GetCurrentTheme, CXTPShortcutBar::SetTheme, CXTPShortcutBar::SetCustomTheme
  37. //
  38. // <KEYWORDS xtpShortcutThemeOffice2000, xtpShortcutThemeOfficeXP, xtpShortcutThemeOffice2003>
  39. //-----------------------------------------------------------------------
  40. enum XTPShortcutBarPaintTheme
  41. {
  42. xtpShortcutThemeOffice2000,   // Office 2000 style theme.
  43. xtpShortcutThemeOfficeXP,     // Office XP style theme.
  44. xtpShortcutThemeOffice2003,   // Office 2003 style theme.
  45. xtpShortcutThemeOffice2007    // Office 2007 style theme.
  46. };
  47. class CXTPShortcutBar;
  48. class CXTPShortcutBarItem;
  49. class CXTPShortcutBarPane;
  50. class CXTPShortcutBarPaneItem;
  51. class CXTPImageManagerIcon;
  52. //===========================================================================
  53. // Summary:
  54. //     Standalone class used by CXTPShortcutBar as paint manager.
  55. //===========================================================================
  56. class _XTP_EXT_CLASS CXTPShortcutBarPaintManager : public CXTPCmdTarget
  57. {
  58. public:
  59. //-----------------------------------------------------------------------
  60. // Summary:
  61. //     Constructs a CXTPShortcutBarPaintManager object
  62. //-----------------------------------------------------------------------
  63. CXTPShortcutBarPaintManager();
  64. //-----------------------------------------------------------------------
  65. // Summary:
  66. //     Destroys a CXTPShortcutBarPaintManager object, handles cleanup and deallocation
  67. //-----------------------------------------------------------------------
  68. virtual ~CXTPShortcutBarPaintManager();
  69. public:
  70. //-----------------------------------------------------------------------
  71. // Summary:
  72. //     This method is called to refresh the visual metrics of the shortcut
  73. //     bar paint manager.
  74. // Remarks:
  75. //     This refreshes all the visual metrics of the shortcut bar such
  76. //     as the pane caption color, pane font, pane caption height, etc.
  77. //-----------------------------------------------------------------------
  78. virtual void RefreshMetrics();
  79. //-----------------------------------------------------------------------
  80. // Summary:
  81. //     This method is called to draw the specified item of the ShortcutBar item.
  82. // Parameters:
  83. //     pDC - Points to the client device context.
  84. //     pItem - Item to be drawn.
  85. //-----------------------------------------------------------------------
  86. virtual void DrawShortcutItem(CDC* pDC, CXTPShortcutBarItem* pItem);
  87. //-----------------------------------------------------------------------
  88. // Summary:
  89. //     This method is called to fill the client area of the ShortcutBar control
  90. // Parameters:
  91. //     pDC - Points to the client device context.
  92. //     pShortcutBar - Points to the ShortcutBar control
  93. //-----------------------------------------------------------------------
  94. virtual void FillShortcutBar(CDC* pDC, CXTPShortcutBar* pShortcutBar) = 0;
  95. //-----------------------------------------------------------------------
  96. // Summary:
  97. //     This method is called to draw the frame of the ShortcutBar control.
  98. // Parameters:
  99. //     pDC - Points to the client device context.
  100. //     pShortcutBar - Points to the ShortcutBar control.
  101. // Remarks:
  102. //     This is the border that is drawn around the entire shortcut bar.
  103. //-----------------------------------------------------------------------
  104. virtual void DrawShortcutBarFrame(CDC* pDC, CXTPShortcutBar* pShortcutBar) = 0;
  105. //-----------------------------------------------------------------------
  106. // Summary:
  107. //     This method is called to draw the specified item of the ShortcutBar control
  108. // Parameters:
  109. //     pDC - Points to the client device context.
  110. //     pItem - Item to be drawn.
  111. //-----------------------------------------------------------------------
  112. virtual void FillShortcutItemEntry(CDC* pDC, CXTPShortcutBarItem* pItem) = 0;
  113. //-----------------------------------------------------------------------
  114. // Summary:
  115. //     This method is called to draw gripper of the ShortcutBar control
  116. // Parameters:
  117. //     pDC - Points to the client device context.
  118. //     pShortcutBar - Points to the ShortcutBar control
  119. //     bDraw - TRUE to draw, FALSE to determine size of the gripper.
  120. // Returns:
  121. //     Size of the gripper.
  122. //-----------------------------------------------------------------------
  123. virtual int DrawGripper(CDC* pDC, CXTPShortcutBar* pShortcutBar, BOOL bDraw) = 0;
  124. //-----------------------------------------------------------------------
  125. // Summary:
  126. //     This method is called to draw the caption of the specified pane.
  127. // Parameters:
  128. //     pDC - Points to the client device context.
  129. //     pPane - Shortcut Pane to be drawn
  130. //     bDraw - TRUE to draw pane, FALSE to determine size of the caption
  131. // Remarks:
  132. //     Panes of the shortcut bar are displayed in the shortcut bar's client
  133. //     area.  Each pane consists of a caption and one or more sub-panes.
  134. //     Each sub-pane has it's own caption and is drawn with the
  135. //     DrawPaneItemCaption method.
  136. //
  137. //     The caption of the shortcut bar pane is the bar on the top the pane.
  138. //     The caption of the pane is set when the pane is created in the
  139. //     CXTPShortcutBarPane::Create method.
  140. //
  141. //     The pane caption can be retrieved with CXTPShortcutBarPane::GetCaption
  142. //
  143. //     Shortcut bar pane's have sub-item's which also have a caption that is
  144. //     drawn with the DrawPaneItemCaption method.
  145. // Returns:
  146. //     Size of the caption.  Unless overridden, the default caption is 24 pixes.
  147. //-----------------------------------------------------------------------
  148. virtual int DrawPaneCaption(CDC* pDC, CXTPShortcutBarPane* pPane, BOOL bDraw);
  149. //-----------------------------------------------------------------------
  150. // Summary:
  151. //     This method is called to draw the caption of the specified shortcut
  152. //     pane item.  This is the sub-pane of a shortcut bar pane.
  153. // Parameters:
  154. //     pDC - Points to the client device context.
  155. //     pItem - Shortcut item pane to be drawn
  156. //     bDraw - bDraw - TRUE to draw, FALSE to determine size of the shortcut
  157. //             pane caption.
  158. // Remarks:
  159. //     Panes of the shortcut bar are displayed in the shortcut bar's client
  160. //     area.  Each pane consists of a caption and one or more sub-panes.
  161. //     Each sub-pane has it's own caption and is drawn with the
  162. //     DrawPaneItemCaption method.
  163. //
  164. //     The caption of the pane item is set when the pane item is created in the
  165. //     CXTPShortcutBarPane::AddItem method.
  166. //
  167. //     The sub-items of a pane can be retrieved with the CXTPShortcutBarPane::GetItem
  168. //     method.
  169. // Returns:
  170. //     Size of the pane item caption.  This is retrieved from m_nPaneItemHeight.
  171. //-----------------------------------------------------------------------
  172. virtual int DrawPaneItemCaption(CDC* pDC, CXTPShortcutBarPaneItem* pItem, BOOL bDraw);
  173. //-----------------------------------------------------------------------
  174. // Summary:
  175. //     This method is called to draw the expand button.
  176. // Parameters:
  177. //     pDC - Points to the client device context.
  178. //     rc - Client rectangle of the expand button.
  179. //-----------------------------------------------------------------------
  180. virtual void DrawExpandButton(CDC* pDC, CRect rc);
  181. //-----------------------------------------------------------------------
  182. // Summary:
  183. //     This method is called to draw the image of a Shortcut Bar item.
  184. // Parameters:
  185. //     pDC       - Points to the client device context.
  186. //     pt        - Location at which to draw the image within the specified
  187. //                 device context.
  188. //     sz        - Size of the image.
  189. //     pImage    - Points to a CXTPImageManagerIcon object.
  190. //     bSelected - TRUE if the shortcut bar item is selectedhas focus.
  191. //                 I.e. When the user clicks on the item.
  192. //     bPressed  - TRUE if the shortcut bar item is currently pressed.
  193. //                 I.e. The user is clicking on the item.
  194. //     bChecked  - TRUE if the shortcut bar item is checked.  I.e.
  195. //                 toggle buttons.
  196. // Remarks:
  197. //     This member draws the image of a shortcut bar item.  The
  198. //     DrawShortcutItem method uses this method to draw shortcut bar
  199. //     images.
  200. //-----------------------------------------------------------------------
  201. virtual void DrawImage(CDC* pDC, CPoint pt, CSize sz, CXTPImageManagerIcon* pImage, BOOL bSelected, BOOL bPressed, BOOL bChecked) = 0;
  202. public:
  203. //-----------------------------------------------------------------------
  204. // Summary:
  205. //     This method is called to draw a rectangle.  The rectangle is
  206. //     used to draw the shortcut items in the Office XP theme.
  207. // Parameters:
  208. //     pDC    - Pointer to a valid device context
  209. //     rc     - Specifies the rectangle in logical units.
  210. //     nPen   - Specifies the color used to paint the rectangle.
  211. //     nBrush - Specifies the color used to fill the rectangle.
  212. //-----------------------------------------------------------------------
  213. void Rectangle(CDC* pDC, CRect rc, int nPen, int nBrush);
  214. //-----------------------------------------------------------------------
  215. // Summary:
  216. //     This method is called to draw the "gripper" lines in the gripper.
  217. // Parameters:
  218. //     pDC  - Points to the client device context.
  219. //     x0   - Specifies the logical x-coordinate of the start position.
  220. //     y0   - Specifies the logical y-coordinate of the start position.
  221. //     x1   - Specifies the logical x-coordinate of the endpoint for the line.
  222. //     y1   - Specifies the logical y-coordinate of the endpoint for the line.
  223. //     nPen - Specifies the color used to paint the line.
  224. //-----------------------------------------------------------------------
  225. void Line(CDC* pDC, int x0, int y0, int x1, int y1, int nPen);
  226. //-----------------------------------------------------------------------
  227. // Summary:
  228. //     This method is used to check whether the expanded shortcut item text
  229. //     item has been truncated because the shortcut item is not wide enough
  230. //     to display the entire string.
  231. // Parameters:
  232. //     pDC - Points to the client device context.
  233. //     pItem - Pointer to CXTPShortcutBarItem to check to see if the caption
  234. //             text has been truncated.
  235. // Remarks:
  236. //     Checks whether the caption text of an expanded
  237. //     item has been truncated because the caption width is too wide to
  238. //     display.
  239. // Returns:
  240. //     Returns False if pItem it is not expanded or if the caption of an
  241. //     expanded item is not truncated and fully displayed.
  242. //     returns True if the item is not expanded or the caption text has
  243. //     been truncated.
  244. //-----------------------------------------------------------------------
  245. BOOL IsShortcutItemTruncated(CDC* pDC, CXTPShortcutBarItem* pItem);
  246. public:
  247. CFont m_fntText;            // Text font.
  248. CFont m_fntPaneCaption;     // Caption font.
  249. CFont m_fntPaneItemCaption; // Sub-caption font.
  250. int m_nPaneItemHeight;      // Height of sub-pane caption.
  251. CXTPImageManagerIcon* m_pExpandIcon;        // Pointer to expand icon
  252. int m_nNormalIconWidth;     // Width of the icons.
  253. int m_nExpandedIconWidth;   // Width of the expanded icons.
  254. BOOL m_bBoldItemCaptionFont;        // TRUE to draw item with bold font
  255. BOOL m_bClearTypeTextQuality;       // TRUE to use ClearType font
  256. BOOL m_bUseStandardFont;            // TRUE to use standard font
  257. CRect m_rcCaptionPadding;
  258. CRect m_rcItemCaptionPadding;
  259. CString m_strOfficeFont;
  260. public:
  261. CXTPPaintManagerColor m_clrPushedText;                  // Color of Caption text when an CXTPShortcutBarItem is pressed.
  262. CXTPPaintManagerColor m_clrSelectedText;                // Color of Caption text when an CXTPShortcutBarItem is selected, this happens after the item is clicked.
  263. CXTPPaintManagerColor m_clrHotText;                     // Color of Caption text when the mouse cursor is positioned over an CXTPShortcutBarItem.
  264. CXTPPaintManagerColor m_clrNormalText;                  // Color of Caption text when an CXTPShortcutBarItem is displayed normally.
  265. CXTPPaintManagerColorGradient m_grcSelected;            // Color gradient of currently selected item,
  266. CXTPPaintManagerColorGradient m_grcHot;                 // Color gradient of "hot" items.  And item is hot when the mouse cursor is positioned over the item.
  267. CXTPPaintManagerColorGradient m_grcPushed;              // Color gradient of item when clicked on.  This color is also used to color the currently selected item on mouse over.  I.e. When the selected item is "hot."
  268. CXTPPaintManagerColorGradient m_grcShortcutItem;        // Color gradient of shortcut bar item's.
  269. CXTPPaintManagerColor m_clrShortcutItemShadow;          // Color of line border that goes around each item.
  270. CXTPPaintManagerColorGradient m_grcShortcutBarGripper;  // Color Gradient used to draw the shortcut bar gripper.
  271. };
  272. //===========================================================================
  273. // Summary:
  274. //     CXTPShortcutBarOffice2003Theme is a CXTPShortcutBarPaintManager derived
  275. //     class that represents the Office 2003 shortcut bar theme.
  276. //===========================================================================
  277. class _XTP_EXT_CLASS CXTPShortcutBarOffice2003Theme : public CXTPShortcutBarPaintManager
  278. {
  279. public:
  280. //-------------------------------------------------------------------------
  281. // Summary:
  282. //     Constructs a CXTPShortcutBarOffice2003Theme object.
  283. //-------------------------------------------------------------------------
  284. CXTPShortcutBarOffice2003Theme();
  285. public:
  286. //-----------------------------------------------------------------------
  287. // Summary:
  288. //     This method is called to fill the client area of the ShortcutBar control.
  289. // Parameters:
  290. //     pDC - Points to the client device context.
  291. //     pShortcutBar - Points to the ShortcutBar control.
  292. //-----------------------------------------------------------------------
  293. void FillShortcutBar(CDC* pDC, CXTPShortcutBar* pShortcutBar);
  294. //-----------------------------------------------------------------------
  295. // Summary:
  296. //     This method is called to draw the frame of the ShortcutBar control.
  297. // Parameters:
  298. //     pDC - Points to the client device context.
  299. //     pShortcutBar - Points to the ShortcutBar control.
  300. // Remarks:
  301. //     This is the border that is drawn around the entire shortcut bar.
  302. //-----------------------------------------------------------------------
  303. void DrawShortcutBarFrame(CDC* pDC, CXTPShortcutBar* pShortcutBar);
  304. //-----------------------------------------------------------------------
  305. // Summary:
  306. //     This method is called to draw the specified item of the ShortcutBar control.
  307. // Parameters:
  308. //     pDC - Points to the client device context.
  309. //     pItem - Item to be drawn.
  310. //-----------------------------------------------------------------------
  311. void FillShortcutItemEntry(CDC* pDC, CXTPShortcutBarItem* pItem);
  312. //-----------------------------------------------------------------------
  313. // Summary:
  314. //     This method is called to draw gripper of the ShortcutBar control
  315. // Parameters:
  316. //     pDC - Points to the client device context.
  317. //     pShortcutBar - Points to the ShortcutBar control
  318. //     bDraw - TRUE to draw, FALSE to determine size of the gripper.
  319. // Returns:
  320. //     Size of the gripper, which is 7 pixels for the Office 2003 theme.
  321. //-----------------------------------------------------------------------
  322. int DrawGripper(CDC* pDC, CXTPShortcutBar* pShortcutBar, BOOL bDraw);
  323. //-----------------------------------------------------------------------
  324. // Summary:
  325. //     This method is called to draw the caption of the specified pane.
  326. // Parameters:
  327. //     pDC - Points to the client device context.
  328. //     pPane - Shortcut Pane to be drawn
  329. //     bDraw - TRUE to draw pane, FALSE to determine size of the caption
  330. // Remarks:
  331. //     Panes of the shortcut bar are displayed in the shortcut bar's client
  332. //     area.  Each pane consists of a caption and one or more sub-panes.
  333. //     Each sub-pane has it's own caption and is drawn with the
  334. //     DrawPaneItemCaption method.
  335. //
  336. //     The caption of the shortcut bar pane is the bar on the top the pane.
  337. //     The caption of the pane is set when the pane is created in the
  338. //     CXTPShortcutBarPane::Create method.
  339. //
  340. //     The pane caption can be retrieved with CXTPShortcutBarPane::GetCaption
  341. //
  342. //     Shortcut bar pane's have sub-item's which also have a caption that is
  343. //     drawn with the DrawPaneItemCaption method.
  344. // Returns:
  345. //     Size of the caption.  Which is 24 pixes.
  346. //-----------------------------------------------------------------------
  347. int DrawPaneCaption(CDC* pDC, CXTPShortcutBarPane* pPane, BOOL bDraw);
  348. //-----------------------------------------------------------------------
  349. // Summary:
  350. //     This method is called to draw the caption of the specified shortcut
  351. //     pane item.  This is the sub-pane of a shortcut bar pane.
  352. // Parameters:
  353. //     pDC - Points to the client device context.
  354. //     pItem - Shortcut item pane to be drawn
  355. //     bDraw - TRUE to draw, FALSE to determine size of the shortcut
  356. //             pane caption.
  357. // Remarks:
  358. //     Panes of the shortcut bar are displayed in the shortcut bar's client
  359. //     area.  Each pane consists of a caption and one or more sub-panes.
  360. //     Each sub-pane has it's own caption and is drawn with the
  361. //     DrawPaneItemCaption method.
  362. //
  363. //     The caption of the pane item is set when the pane item is created in the
  364. //     CXTPShortcutBarPane::AddItem method.
  365. //
  366. //     The sub-items of a pane can be retrieved with the CXTPShortcutBarPane::GetItem
  367. //     method.
  368. // Returns:
  369. //     Size of the pane item caption.  This is retrieved from CXTPShortcutBarPaintManager::m_nPaneItemHeight.
  370. //-----------------------------------------------------------------------
  371. int DrawPaneItemCaption(CDC* pDC, CXTPShortcutBarPaneItem* pItem, BOOL bDraw);
  372. //-------------------------------------------------------------------------
  373. // Summary:
  374. //     This method is called to refresh the visual metrics of the shortcut
  375. //     bar paint manager.
  376. // Remarks:
  377. //     This refreshes all the visual metrics of the shortcut bar such
  378. //     as the pane caption color, pane font, pane caption height, etc.
  379. //
  380. //     If luna colors are enabled, the the shortcut bar will be colored
  381. //     to match the current system them if the XTPCurrentSystemTheme is
  382. //     xtpSystemThemeBlue, xtpSystemThemeSilver, or xtpSystemThemeOlive.
  383. //-------------------------------------------------------------------------
  384. void RefreshMetrics();
  385. //-----------------------------------------------------------------------
  386. // Summary:
  387. //     This method is called to draw the image of a Shortcut Bar item.
  388. // Parameters:
  389. //     pDC       - Points to the client device context.
  390. //     pt        - Location at which to draw the image within the specified
  391. //                 device context.
  392. //     sz        - Size of the image.
  393. //     pImage    - Points to a CXTPImageManagerIcon object.
  394. //     bSelected - TRUE if the shortcut bar item is selectedhas focus.
  395. //                 I.e. When the user clicks on the item.
  396. //     bPressed  - TRUE if the shortcut bar item is currently pressed.
  397. //                 I.e. The user is clicking on the item.
  398. //     bChecked  - TRUE if the shortcut bar item is checked.  I.e.
  399. //                 toggle buttons.
  400. // Remarks:
  401. //     This member draws the image of a shortcut bar item.  The
  402. //     DrawShortcutItem method uses this method to draw shortcut bar
  403. //     images.
  404. //-----------------------------------------------------------------------
  405. void DrawImage(CDC* pDC, CPoint pt, CSize sz, CXTPImageManagerIcon* pImage, BOOL bSelected, BOOL bPressed, BOOL bChecked);
  406. public:
  407. CXTPPaintManagerColorGradient m_grcCaption;         // Caption color
  408. CXTPPaintManagerColorGradient m_grcItemCaption;     // Items color
  409. CXTPPaintManagerColorGradient m_grcItemHotCaption;     // Items color
  410. CXTPPaintManagerColor m_clrItemCaptionShadow;       // Color of subcaption shadow
  411. CXTPPaintManagerColor m_clrItemCaptionTop;          // Color under subcaption rectangle
  412. CXTPPaintManagerColor m_clrCaptionText;             // Color of items text
  413. CXTPPaintManagerColor m_clrItemCaptionText;         // Color of subcaption text
  414. BOOL m_bShowTopLeftCaptionShadow;                   // True to draw rectangle around items
  415. };
  416. //===========================================================================
  417. // Summary:
  418. //     CXTPShortcutBarOffice2007Theme is a CXTPShortcutBarOffice2003Theme derived
  419. //     class that represents the Office 2007 shortcut bar theme.
  420. //===========================================================================
  421. class _XTP_EXT_CLASS CXTPShortcutBarOffice2007Theme : public CXTPShortcutBarOffice2003Theme
  422. {
  423. public:
  424. //-------------------------------------------------------------------------
  425. // Summary:
  426. //     Constructs a CXTPShortcutBarOffice2007Theme object.
  427. //-------------------------------------------------------------------------
  428. CXTPShortcutBarOffice2007Theme();
  429. public:
  430. //-------------------------------------------------------------------------
  431. // Summary:
  432. //     This method is called to refresh the visual metrics of the shortcut
  433. //     bar paint manager.
  434. // Remarks:
  435. //     This refreshes all the visual metrics of the shortcut bar such
  436. //     as the pane caption color, pane font, pane caption height, etc.
  437. //-------------------------------------------------------------------------
  438. virtual void RefreshMetrics();
  439. //-----------------------------------------------------------------------
  440. // Summary:
  441. //     This method is called to draw gripper of the ShortcutBar control
  442. // Parameters:
  443. //     pDC - Points to the client device context.
  444. //     pShortcutBar - Points to the ShortcutBar control
  445. //     bDraw - TRUE to draw, FALSE to determine size of the gripper.
  446. // Returns:
  447. //     Size of the gripper, which is 7 pixels for the Office XP theme.
  448. //-----------------------------------------------------------------------
  449. int DrawGripper(CDC* pDC, CXTPShortcutBar* pShortcutBar, BOOL bDraw);
  450. //-----------------------------------------------------------------------
  451. // Summary:
  452. //     This method is called to draw the specified item of the ShortcutBar control.
  453. // Parameters:
  454. //     pDC - Points to the client device context.
  455. //     pItem - Item to be drawn.
  456. //-----------------------------------------------------------------------
  457. void FillShortcutItemEntry(CDC* pDC, CXTPShortcutBarItem* pItem);
  458. //-----------------------------------------------------------------------
  459. // Summary:
  460. //     This method is called to fill the client area of the ShortcutBar control.
  461. // Parameters:
  462. //     pDC - Points to the client device context.
  463. //     pShortcutBar - Points to the ShortcutBar control.
  464. //-----------------------------------------------------------------------
  465. void FillShortcutBar(CDC* pDC, CXTPShortcutBar* pShortcutBar);
  466. //-----------------------------------------------------------------------
  467. // Summary:
  468. //     This method is called to draw the caption of the specified shortcut
  469. //     pane item.  This is the sub-pane of a shortcut bar pane.
  470. // Parameters:
  471. //     pDC - Points to the client device context.
  472. //     pItem - Shortcut item pane to be drawn
  473. //     bDraw - bDraw - TRUE to draw, FALSE to determine size of the shortcut
  474. //             pane caption.
  475. // Remarks:
  476. //     Panes of the shortcut bar are displayed in the shortcut bar's client
  477. //     area.  Each pane consists of a caption and one or more sub-panes.
  478. //     Each sub-pane has it's own caption and is drawn with the
  479. //     DrawPaneItemCaption method.
  480. //
  481. //     The caption of the pane item is set when the pane item is created in the
  482. //     CXTPShortcutBarPane::AddItem method.
  483. //
  484. //     The sub-items of a pane can be retrieved with the CXTPShortcutBarPane::GetItem
  485. //     method.
  486. // Returns:
  487. //     Size of the pane item caption.  This is retrieved from m_nPaneItemHeight.
  488. //-----------------------------------------------------------------------
  489. virtual int DrawPaneItemCaption(CDC* pDC, CXTPShortcutBarPaneItem* pItem, BOOL bDraw);
  490. //-----------------------------------------------------------------------
  491. // Summary:
  492. //     This method is called to draw the expand button.
  493. // Parameters:
  494. //     pDC - Points to the client device context.
  495. //     rc - Client rectangle of the expand button.
  496. //-----------------------------------------------------------------------
  497. virtual void DrawExpandButton(CDC* pDC, CRect rc);
  498. };
  499. //===========================================================================
  500. // Summary:
  501. //     CXTPShortcutBarOfficeXPTheme is a CXTPShortcutBarPaintManager derived
  502. //     class that represents the Office 2003 shortcut bar theme.
  503. //===========================================================================
  504. class _XTP_EXT_CLASS CXTPShortcutBarOfficeXPTheme : public CXTPShortcutBarPaintManager
  505. {
  506. public:
  507. //-----------------------------------------------------------------------
  508. // Summary:
  509. //     This method is called to fill the client area of the ShortcutBar control.
  510. // Parameters:
  511. //     pDC - Points to the client device context.
  512. //     pShortcutBar - Points to the ShortcutBar control.
  513. //-----------------------------------------------------------------------
  514. void FillShortcutBar(CDC* pDC, CXTPShortcutBar* pShortcutBar);
  515. //-----------------------------------------------------------------------
  516. // Summary:
  517. //     This method is called to draw the frame of the ShortcutBar control.
  518. // Parameters:
  519. //     pDC - Points to the client device context.
  520. //     pShortcutBar - Points to the ShortcutBar control.
  521. // Remarks:
  522. //     This is the border that is drawn around the entire shortcut bar.
  523. //-----------------------------------------------------------------------
  524. void DrawShortcutBarFrame(CDC* pDC, CXTPShortcutBar* pShortcutBar);
  525. //-----------------------------------------------------------------------
  526. // Summary:
  527. //     This method is called to draw the specified item of the ShortcutBar control.
  528. // Parameters:
  529. //     pDC - Points to the client device context.
  530. //     pItem - Item to be drawn.
  531. //-----------------------------------------------------------------------
  532. void FillShortcutItemEntry(CDC* pDC, CXTPShortcutBarItem* pItem);
  533. //-----------------------------------------------------------------------
  534. // Summary:
  535. //     This method is called to draw gripper of the ShortcutBar control
  536. // Parameters:
  537. //     pDC - Points to the client device context.
  538. //     pShortcutBar - Points to the ShortcutBar control
  539. //     bDraw - TRUE to draw, FALSE to determine size of the gripper.
  540. // Returns:
  541. //     Size of the gripper, which is 7 pixels for the Office XP theme.
  542. //-----------------------------------------------------------------------
  543. int DrawGripper(CDC* pDC, CXTPShortcutBar* pShortcutBar, BOOL bDraw);
  544. //-----------------------------------------------------------------------
  545. // Summary:
  546. //     This method is called to draw the image of a Shortcut Bar item.
  547. // Parameters:
  548. //     pDC       - Points to the client device context.
  549. //     pt        - Location at which to draw the image within the specified
  550. //                 device context.
  551. //     sz        - Size of the image.
  552. //     pImage    - Points to a CXTPImageManagerIcon object.
  553. //     bSelected - TRUE if the shortcut bar item is selectedhas focus.
  554. //                 I.e. When the user clicks on the item.
  555. //     bPressed  - TRUE if the shortcut bar item is currently pressed.
  556. //                 I.e. The user is clicking on the item.
  557. //     bChecked  - TRUE if the shortcut bar item is checked.  I.e.
  558. //                 toggle buttons.
  559. // Remarks:
  560. //     This member draws the image of a shortcut bar item.  The
  561. //     DrawShortcutItem method uses this method to draw shortcut bar
  562. //     images.
  563. //-----------------------------------------------------------------------
  564. void DrawImage(CDC* pDC, CPoint pt, CSize sz, CXTPImageManagerIcon* pImage, BOOL bSelected, BOOL bPressed, BOOL bChecked);
  565. };
  566. //===========================================================================
  567. // Summary:
  568. //     CXTPShortcutBarOffice2000Theme is a CXTPShortcutBarPaintManager derived
  569. //     class that represents the Office 2003 shortcut bar theme.
  570. //===========================================================================
  571. class _XTP_EXT_CLASS CXTPShortcutBarOffice2000Theme : public CXTPShortcutBarPaintManager
  572. {
  573. public:
  574. //-----------------------------------------------------------------------
  575. // Summary:
  576. //     This method is called to fill the client area of the ShortcutBar control.
  577. // Parameters:
  578. //     pDC - Points to the client device context.
  579. //     pShortcutBar - Points to the ShortcutBar control.
  580. //-----------------------------------------------------------------------
  581. void FillShortcutBar(CDC* pDC, CXTPShortcutBar* pShortcutBar);
  582. //-----------------------------------------------------------------------
  583. // Summary:
  584. //     This method is called to draw the frame of the ShortcutBar control.
  585. // Parameters:
  586. //     pDC - Points to the client device context.
  587. //     pShortcutBar - Points to the ShortcutBar control.
  588. // Remarks:
  589. //     This is the border that is drawn around the entire shortcut bar.
  590. //-----------------------------------------------------------------------
  591. void DrawShortcutBarFrame(CDC* pDC, CXTPShortcutBar* pShortcutBar);
  592. //-----------------------------------------------------------------------
  593. // Summary:
  594. //     This method is called to draw the specified item of the ShortcutBar control.
  595. // Parameters:
  596. //     pDC - Points to the client device context.
  597. //     pItem - Item to be drawn.
  598. //-----------------------------------------------------------------------
  599. void FillShortcutItemEntry(CDC* pDC, CXTPShortcutBarItem* pItem);
  600. //-----------------------------------------------------------------------
  601. // Summary:
  602. //     This method is called to draw gripper of the ShortcutBar control
  603. // Parameters:
  604. //     pDC - Points to the client device context.
  605. //     pShortcutBar - Points to the ShortcutBar control
  606. //     bDraw - TRUE to draw, FALSE to determine size of the gripper.
  607. // Returns:
  608. //     Size of the gripper, which is 4 pixels for the Office 2000 theme.
  609. //-----------------------------------------------------------------------
  610. int DrawGripper(CDC* pDC, CXTPShortcutBar* pShortcutBar, BOOL bDraw);
  611. //-----------------------------------------------------------------------
  612. // Summary:
  613. //     This method is called to draw a rectangle.  The rectangle is
  614. //     used to draw the shortcut items.
  615. // Parameters:
  616. //     pDC    - Pointer to a valid device context
  617. //     rc     - Specifies the rectangle in logical units.
  618. //     nPen   - Specifies the color used to paint the rectangle.
  619. //     nBrush - Specifies the color used to fill the rectangle.
  620. // Remarks:
  621. //     Rectangle is used to draw the rectangle of the shortcut bar items
  622. //     in the Office XP theme.  This will draw the normal, pressed, and
  623. //     hot versions of the item.
  624. //-----------------------------------------------------------------------
  625. void Rectangle(CDC* pDC, CRect rc, int nPen, int nBrush);
  626. //-----------------------------------------------------------------------
  627. // Summary:
  628. //     This method is called to draw the "gripper" lines in the gripper.
  629. // Parameters:
  630. //     pDC  - Points to the client device context.
  631. //     x0   - Specifies the logical x-coordinate of the start position.
  632. //     y0   - Specifies the logical y-coordinate of the start position.
  633. //     x1   - Specifies the logical x-coordinate of the endpoint for the line.
  634. //     y1   - Specifies the logical y-coordinate of the endpoint for the line.
  635. //     nPen - Specifies the color used to paint the line.
  636. //-----------------------------------------------------------------------
  637. void Line(CDC* pDC, int x0, int y0, int x1, int y1, int nPen);
  638. //-----------------------------------------------------------------------
  639. // Summary:
  640. //     This method is called to draw the image of a Shortcut Bar item.
  641. // Parameters:
  642. //     pDC       - Points to the client device context.
  643. //     pt        - Location at which to draw the image within the specified
  644. //                 device context.
  645. //     sz        - Size of the image.
  646. //     pImage    - Points to a CXTPImageManagerIcon object.
  647. //     bSelected - TRUE if the shortcut bar item is selectedhas focus.
  648. //                 I.e. When the user clicks on the item.
  649. //     bPressed  - TRUE if the shortcut bar item is currently pressed.
  650. //                 I.e. The user is clicking on the item.
  651. //     bChecked  - TRUE if the shortcut bar item is checked.  I.e.
  652. //                 toggle buttons.
  653. // Remarks:
  654. //     This member draws the image of a shortcut bar item.  The
  655. //     DrawShortcutItem method uses this method to draw shortcut bar
  656. //     images.
  657. //-----------------------------------------------------------------------
  658. void DrawImage(CDC* pDC, CPoint pt, CSize sz, CXTPImageManagerIcon* pImage, BOOL bSelected, BOOL bPressed, BOOL bChecked);
  659. };
  660. #endif // !defined(__XTPSHORTCUTBARPAINTMANAGER_H__)