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

对话框与窗口

开发平台:

Visual C++

  1. // XTPRibbonTheme.h: interface for the CXTPRibbonTheme class.
  2. //
  3. // This file is a part of the XTREME RIBBON 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(__XTPRIBBONTHEME_H__)
  22. #define __XTPRIBBONTHEME_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. class CXTPRibbonGroup;
  28. class CXTPRibbonBar;
  29. class CXTPRibbonTab;
  30. class CXTPOffice2007Image;
  31. class CXTPOffice2007Images;
  32. class CXTPTabPaintManager;
  33. class CXTPRibbonTabContextHeaders;
  34. class CXTPPopupToolBar;
  35. #include "CommandBars/XTPPaintManager.h"
  36. #include "CommandBars/XTPOffice2007Theme.h"
  37. //===========================================================================
  38. // Summary: Standalone class used by the CXTPRibbonBar as a paint manager.
  39. //===========================================================================
  40. class _XTP_EXT_CLASS CXTPRibbonTheme : public CXTPOffice2007Theme
  41. {
  42. private:
  43. class CRibbonAppearanceSet;
  44. class CRibbonColorSet;
  45. public:
  46. //-----------------------------------------------------------------------
  47. // Summary:
  48. //     Constructs a CXTPRibbonTheme object
  49. //-----------------------------------------------------------------------
  50. CXTPRibbonTheme();
  51. //-----------------------------------------------------------------------
  52. // Summary:
  53. //     Destroys a CXTPRibbonTheme object, handles cleanup and deallocation
  54. //-----------------------------------------------------------------------
  55. virtual ~CXTPRibbonTheme();
  56. public:
  57. //-----------------------------------------------------------------------
  58. // Summary:
  59. //     This method is called to fill background of a CXTPRibbonGroup.
  60. // Parameters:
  61. //               pDC - Pointer to a valid device context
  62. //               pActiveTab - Pointer to the tab that is currently active
  63. //               rcGroups - Bounding rectangle of the group
  64. // Remarks:
  65. //      Performs a gradient fill using the GROUP_COLOR::clrBackground for
  66. //      the main group background and GROUP_COLOR::clrCaption to fill the
  67. //      group caption rectangle.
  68. // See Also: CXTPRibbonGroup::GetRect, GROUP_COLOR
  69. //-----------------------------------------------------------------------
  70. virtual void FillGroupRect(CDC* pDC, CXTPRibbonTab* pActiveTab, CRect rcGroups);
  71. //-----------------------------------------------------------------------
  72. // Summary:
  73. //     This method is called to fill background of Ribbon Bar control.
  74. // Parameters:
  75. //     pDC - Pointer to a valid device context
  76. //     pRibbonBar - Points to a CXTPRibbonBar object
  77. //-----------------------------------------------------------------------
  78. virtual void FillRibbonBar(CDC* pDC, CXTPRibbonBar* pRibbonBar);
  79. //-------------------------------------------------------------------------
  80. // Summary:
  81. //      This method is called to refresh the visual metrics of manager.
  82. // Remarks:
  83. //      Refreshes all of the colors in the Ribbon Bar.  Many of the colors
  84. //      used are set with the GROUP_COLOR structure.
  85. // See Also:
  86. //     GROUP_COLOR
  87. //-------------------------------------------------------------------------
  88. virtual void RefreshMetrics();
  89. //-----------------------------------------------------------------------
  90. // Summary:
  91. //     Draws the specified CXTPRibbonGroup.
  92. // Parameters:
  93. //     pDC - Pointer to a valid device context
  94. //     pGroup - Pointer to the CXTPRibbonGroup to be drawn
  95. // Remarks:
  96. //     Draws the entire groups including background, caption and text.
  97. //     This will not draw the option button or group popup.
  98. // See Also: GROUP_COLOR, FillRibbonBar, FillGroupRect, RefreshMetrics
  99. //-----------------------------------------------------------------------
  100. virtual void DrawGroup(CDC* pDC, CXTPRibbonGroup* pGroup);
  101. //-----------------------------------------------------------------------
  102. // Summary:
  103. //     Gets the colors used to draw the specified CXTPRibbonGroup.
  104. // Parameters:
  105. //     pGroup - Pointer to the CXTPRibbonGroup to retrieve the colors from
  106. // Returns:
  107. //     A GROUP_COLOR object containing the colors used to draw a CXTPRibbonGroup
  108. // See Also: CXTPRibbonTheme::GROUP_COLOR, CXTPRibbonTheme::DrawGroup
  109. //-----------------------------------------------------------------------
  110. //virtual GROUP_COLOR* GetGroupColor(CXTPRibbonGroup* pGroup);
  111. //-----------------------------------------------------------------------
  112. // Summary:
  113. //     Gets the height of the group caption bar.
  114. // Returns:
  115. //     Integer containing the height of the group caption bar.
  116. // See Also: CXTPRibbonGroup::RepositionControls, CXTPRibbonGroup::SetRect
  117. //-----------------------------------------------------------------------
  118. int GetGroupCaptionHeight() const;
  119. //-----------------------------------------------------------------------
  120. // Summary:
  121. //     Draws the group popup button.
  122. // Parameters:
  123. //     pDC - Pointer to a valid device context
  124. //     pControlGroupPopup - Pointer to a CXTPControlPopup object.
  125. //     bDraw - TRUE to draw group popup button; FALSE to retrieve the size of the control.
  126. // Remarks:
  127. //     A single group button will be displayed if there is not enough
  128. //     room to display the items in the group.  A group popup is displayed
  129. //     when the button is clicked.  The popup contains all the items in
  130. //     the group.  When a group button is clicked, a CXTPControlPopup
  131. //     is displayed that contains the items of the group.
  132. // Returns:
  133. //     If bDraw is TRUE, then the size of the group popup button is returned.
  134. // See Also: CXTPRibbonGroup::GetControlGroupPopup
  135. //-----------------------------------------------------------------------
  136. virtual CSize DrawControlGroupPopup(CDC* pDC, CXTPControlPopup* pControlGroupPopup, BOOL bDraw);
  137. //-----------------------------------------------------------------------
  138. // Summary:
  139. //     Draws the group option button.
  140. // Parameters:
  141. //     pDC - Pointer to a valid device context
  142. //     pControlGroupOption - Pointer to a CXTPControl object.
  143. //     bDraw - TRUE to draw option button; FALSE to retrieve the size of the control.
  144. // Remarks:
  145. //     The option button is typically used to launch a dialog associated with the group.
  146. //     It is drawn on the right side of the group caption.
  147. // Returns:
  148. //     If bDraw is TRUE, then the size of the option button control is returned.
  149. // See Also: CXTPRibbonGroup::ShowOptionButton, CXTPRibbonGroup::GetControlGroupOption
  150. //-----------------------------------------------------------------------
  151. virtual CSize DrawControlGroupOption(CDC* pDC, CXTPControl* pControlGroupOption, BOOL bDraw);
  152. //-----------------------------------------------------------------------
  153. // Summary:
  154. //     This method is called to draw single tab of ribbon bar
  155. // Parameters:
  156. //     pDC - Pointer to a valid device context
  157. //     pItem - Ribbon tab to draw
  158. //-----------------------------------------------------------------------
  159. virtual void DrawRibbonTab(CDC* pDC, CXTPRibbonTab* pItem);
  160. //-----------------------------------------------------------------------
  161. // Summary:
  162. //     This method is called to draw popup toolbar of reduced group
  163. // Parameters:
  164. //     pDC - Pointer to a valid device context
  165. //     pGroup - Parent group of popuped toolbar
  166. //     pCommandBar - popup toolbar to draw
  167. //-----------------------------------------------------------------------
  168. virtual void FillGroupPopupToolBar(CDC* pDC, CXTPRibbonGroup* pGroup, CXTPCommandBar* pCommandBar);
  169. //-----------------------------------------------------------------------
  170. // Summary:
  171. //     This method is called to draw background of minimzed popup bar
  172. // Parameters:
  173. //     pDC - Pointer to device context
  174. //     pPopupToolBar - Pointer to popup toolbar.
  175. //-----------------------------------------------------------------------
  176. void FillTabPopupToolBar(CDC* pDC, CXTPPopupToolBar* pPopupToolBar);
  177. //-----------------------------------------------------------------------
  178. // Summary:
  179. //     This method is called to Draw Ribbon caption
  180. // Parameters:
  181. //     pDC - Pointer to a valid device context
  182. //     pRibbonBar - Ribbon Bar to draw
  183. //     bActive - TRUE if ribbon frame is active
  184. //-----------------------------------------------------------------------
  185. virtual void DrawRibbonFrameCaption(CDC* pDC, CXTPRibbonBar* pRibbonBar, BOOL bActive);
  186. //-----------------------------------------------------------------------
  187. // Summary:
  188. //     This method is called to draw ribbon caption if EnableFrameTheme was not called
  189. // Parameters:
  190. //     pDC -  Pointer to a valid device context
  191. //     pRibbonBar - Ribbon Bar to draw
  192. //-----------------------------------------------------------------------
  193. virtual void DrawRibbonFrameCaptionBar(CDC* pDC, CXTPRibbonBar* pRibbonBar);
  194. //-----------------------------------------------------------------------
  195. // Summary:
  196. //     Draws top-left system button
  197. // Parameters:
  198. //     pDC - Pointer to a valid device context
  199. //     pControl - System button control
  200. //     rc - Bounding rectangle of control
  201. //-----------------------------------------------------------------------
  202. virtual void DrawRibbonFrameSystemButton(CDC* pDC, CXTPControlPopup* pControl, CRect rc);
  203. //-----------------------------------------------------------------------
  204. // Summary:
  205. //     This method is called to draw ribbon context headers
  206. // Parameters:
  207. //     pDC - Pointer to a valid device context
  208. //     pContextHeaders - Collection of context header
  209. //     pRibbonBar - Parent RibbonBar pointer
  210. //-----------------------------------------------------------------------
  211. virtual void DrawRibbonFrameContextHeaders(CDC* pDC, CXTPRibbonBar* pRibbonBar, CXTPRibbonTabContextHeaders* pContextHeaders);
  212. //-----------------------------------------------------------------------
  213. // Summary:
  214. //     This method is called to draw quick access customize button
  215. // Parameters:
  216. //     pDC - Pointer to a valid device context
  217. //     pControl - Pointer to Quick Access customize button
  218. // See Also: DrawRibbonQuickAccessMoreButton
  219. //-----------------------------------------------------------------------
  220. virtual void DrawRibbonQuickAccessButton(CDC* pDC, CXTPControlPopup* pControl);
  221. //-----------------------------------------------------------------------
  222. // Summary:
  223. //     This method is called to draw quick access more button
  224. // Parameters:
  225. //     pDC - Pointer to a valid device context
  226. //     pControl - Pointer to Quick Access more button
  227. // See Also: DrawRibbonQuickAccessButton
  228. //-----------------------------------------------------------------------
  229. virtual void DrawRibbonQuickAccessMoreButton(CDC* pDC, CXTPControlPopup* pControl);
  230. //-----------------------------------------------------------------------
  231. // Summary:
  232. //     This method is called to draw scroll groups buttons
  233. // Parameters:
  234. //     pDC - Pointer to a valid device context
  235. //     pControl - Scroll button to draw
  236. //     bScrollLeft - TRUE to draw left button; FALSE - right
  237. //-----------------------------------------------------------------------
  238. virtual void DrawRibbonScrollButton(CDC* pDC, CXTPControl* pControl, BOOL bScrollLeft);
  239. //-----------------------------------------------------------------------
  240. // Summary:
  241. //     Retrieves edit control height
  242. //-----------------------------------------------------------------------
  243. int GetEditHeight() const;
  244. //-----------------------------------------------------------------------
  245. // Summary:
  246. //     Call this method to set font height used for Ribbon
  247. // Parameters:
  248. //     nFontHeight - New font height
  249. // See Also: GetFontHeight
  250. //-----------------------------------------------------------------------
  251. void SetFontHeight(int nFontHeight);
  252. //-----------------------------------------------------------------------
  253. // Summary:
  254. //     Call this method to get font height used for Ribbon
  255. // Returns:
  256. //     Font height used for Ribbon
  257. // See Also: SetFontHeight
  258. //-----------------------------------------------------------------------
  259. int GetFontHeight() const;
  260. //-----------------------------------------------------------------------
  261. // Summary:
  262. //     This method is called to draw popup bar of more button
  263. // Parameters:
  264. //      pDC - Pointer to a valid device context
  265. //      pBar - ToolBar to fill
  266. //-----------------------------------------------------------------------
  267. virtual void FillMorePopupToolBarEntry(CDC* pDC, CXTPCommandBar* pBar);
  268. //-----------------------------------------------------------------------
  269. // Summary:
  270. //     Call this member function to draw a check mark.
  271. // Parameters:
  272. //     pDC        - Pointer to a valid device context
  273. //     rcCheck    - Specifies the rectangle in logical units.
  274. //     clr        - Color to fill.
  275. //-----------------------------------------------------------------------
  276. virtual void DrawPopupBarCheckMark(CDC* pDC, CRect rcCheck, BOOL bEnabled, COLORREF clr);
  277. //-----------------------------------------------------------------------
  278. // Summary:
  279. //     Call this member function to draw a radio button.
  280. // Parameters:
  281. //     pDC        - Pointer to a valid device context
  282. //     rcCheck    - Specifies the rectangle in logical units.
  283. //     clr        - Color to fill.
  284. //-----------------------------------------------------------------------
  285. virtual void DrawPopupBarRadioMark(CDC* pDC, CRect rcCheck, BOOL bEnabled, COLORREF clr);
  286. public:
  287. //-----------------------------------------------------------------------
  288. // Summary:
  289. //     Call this member to get a pointer to the tab paint manager.
  290. //     The tab paint manager is used to customize the appearance of
  291. //     CXTPTabManagerItem objects and the tab manager.  I.e. Tab colors,
  292. //     styles, etc...  This member must be overridden in
  293. //     derived classes.
  294. // Returns:
  295. //     Pointer to CXTPTabPaintManager that contains the visual elements
  296. //     of the tabs.
  297. //-----------------------------------------------------------------------
  298. CXTPTabPaintManager* GetTabPaintManager() const;
  299. protected:
  300. //-----------------------------------------------------------------------
  301. // Summary:
  302. //     Returns a CXTPTabPaintManager object used to
  303. //     store the color and appearance information of the tabs in the
  304. //     Ribbon Bar.
  305. //-----------------------------------------------------------------------
  306. virtual CXTPTabPaintManager* CreateTabPaintManager();
  307. protected:
  308. //-----------------------------------------------------------------------
  309. // Summary:
  310. //     This method is called to fill the control's face
  311. // Parameters:
  312. //     pDC         - Pointer to a valid device context
  313. //     pButton - Points to a CXTPControl object to draw.
  314. //-----------------------------------------------------------------------
  315. virtual void DrawControlEntry(CDC* pDC, CXTPControl* pButton);
  316. //-----------------------------------------------------------------------
  317. // Summary:
  318. //     This method is called to determine offset of popuped bar.
  319. // Parameters:
  320. //     rc        - Control's bounding rectangle.
  321. //     pControl  - Points to a CXTPControl object
  322. //     bVertical - TRUE if control docked vertically.
  323. //-----------------------------------------------------------------------
  324. virtual void AdjustExcludeRect(CRect& rc, CXTPControl* pControl, BOOL bVertical);
  325. //-----------------------------------------------------------------------
  326. // Summary:
  327. //     This method is called to draw the frame for the SplitButton
  328. //     control
  329. // Parameters:
  330. //     pDC     - Pointer to a valid device context
  331. //     pButton - Points to a CXTPControl object
  332. //     rc      - Bounding rectangle to draw
  333. //-----------------------------------------------------------------------
  334. virtual void DrawSplitButtonFrame(CDC* pDC, CXTPControl* pButton, CRect rc);
  335. //-----------------------------------------------------------------------
  336. // Summary:
  337. //     This method is called to draw popup bar right gripper.
  338. // Parameters:
  339. //     pDC       - Points to a valid device context.
  340. //     xPos      - Specifies the logical x-coordinate of the upper-left corner of the rectangle.
  341. //     yPos      - Specifies the logical y-coordinate of the upper-left corner of the destination rectangle.
  342. //     cx        - Specifies the width of the rectangle.
  343. //     cy        - Specifies the height of the rectangle.
  344. //     bExpanded - TRUE if expanded.gripper.
  345. //-----------------------------------------------------------------------
  346. virtual void DrawPopupBarGripper(CDC* pDC, int xPos, int yPos, int cx, int cy, BOOL bExpanded = FALSE);
  347. //-----------------------------------------------------------------------
  348. // Summary:
  349. //     This method is called to fill the command bar's face.
  350. // Parameters:
  351. //     pDC  - Pointer to a valid device context
  352. //     pBar - Points to a CXTPCommandBar object to draw.
  353. //-----------------------------------------------------------------------
  354. virtual void FillCommandBarEntry(CDC* pDC, CXTPCommandBar* pBar);
  355. //-----------------------------------------------------------------------
  356. // Summary:
  357. //     This method is called to fill the control's face
  358. // Parameters:
  359. //     pDC         - Pointer to a valid device context
  360. //     rc          - Rectangle to draw.
  361. //     bSelected   - TRUE if the control is selected.
  362. //     bPressed    - TRUE if the control is pushed.
  363. //     bEnabled    - TRUE if the control is enabled.
  364. //     bChecked    - TRUE if the control is checked.
  365. //     bPopuped    - TRUE if the control is popuped.
  366. //     barType     - Parent's bar type
  367. //     barPosition - Parent's bar position.
  368. //-----------------------------------------------------------------------
  369. virtual void DrawRectangle(CDC* pDC, CRect rc, BOOL bSelected, BOOL bPressed, BOOL bEnabled, BOOL bChecked, BOOL bPopuped, XTPBarType barType, XTPBarPosition barPosition);
  370. //-----------------------------------------------------------------------
  371. // Summary:
  372. //     This method is called to draw a command bar's separator.
  373. // Parameters:
  374. //     pDC      - Pointer to a valid device context
  375. //     pBar     - Points to a CXTPCommandBar object
  376. //     pControl - Points to a CXTPControl object
  377. //     bDraw    - TRUE to draw; FALSE to retrieve the size of the separator.
  378. // Returns:
  379. //     This method is called to draw a command bar's separator.
  380. //-----------------------------------------------------------------------
  381. virtual CSize DrawCommandBarSeparator(CDC* pDC, CXTPCommandBar* pBar, CXTPControl* pControl, BOOL bDraw);
  382. //-----------------------------------------------------------------------
  383. // Summary:
  384. //     This method is called to fill a status bar.
  385. // Parameters:
  386. //     pDC  - Pointer to a valid device context
  387. //     pBar - Points to a CXTPStatusBar object
  388. //-----------------------------------------------------------------------
  389. virtual void FillStatusBar(CDC* pDC, CXTPStatusBar* pBar);
  390. //-----------------------------------------------------------------------
  391. // Summary:
  392. //     This method is called to draw the status bar's gripper.
  393. // Parameters:
  394. //     pDC      - Pointer to a valid device context
  395. //     rcClient - Client rectangle of the status bar.
  396. //-----------------------------------------------------------------------
  397. virtual void DrawStatusBarGripper(CDC* pDC, CRect rcClient);
  398. //-----------------------------------------------------------------------
  399. // Summary:
  400. //     This method is called to draw frame of single cell of status bar.
  401. // Parameters:
  402. //     pDC - Points to a valid device context.
  403. //     rc - CRect object specifying size of area.
  404. //     pPane - The status bar pane need to draw
  405. //     bGripperPane - TRUE if pane is last cell of status bar
  406. //-----------------------------------------------------------------------
  407. virtual void DrawStatusBarPaneBorder(CDC* pDC, CRect rc, CXTPStatusBarPane* pPane, BOOL bGripperPane);
  408. virtual void DrawStatusBarPaneSeparator(CDC* pDC, CRect rc, CXTPStatusBarPane* pPane);
  409. virtual int DrawStatusBarSwitchPane(CDC* pDC, CRect rcItem, CXTPStatusBarSwitchPane* pPane);
  410. //-----------------------------------------------------------------------
  411. // Summary:
  412. //     This method retrieves buttons text color
  413. // Parameters:
  414. //     bSelected   - TRUE if the control is selected.
  415. //     bPressed    - TRUE if the control is pushed.
  416. //     bEnabled    - TRUE if the control is enabled.
  417. //     bChecked    - TRUE if the control is checked.
  418. //     bPopuped    - TRUE if the control is popuped.
  419. //     barType     - Parent's bar type
  420. //     barPosition - Parent's bar position.
  421. //-----------------------------------------------------------------------
  422. virtual COLORREF GetRectangleTextColor(BOOL bSelected, BOOL bPressed, BOOL bEnabled, BOOL bChecked, BOOL bPopuped, XTPBarType barType, XTPBarPosition barPosition);
  423. //-----------------------------------------------------------------------
  424. // Summary:
  425. //     This method returns control text color to draw
  426. // Parameters:
  427. //     pButton - Points to a CXTPControl object to draw.
  428. // Returns: Button text color
  429. //-----------------------------------------------------------------------
  430. virtual COLORREF GetControlTextColor(CXTPControl* pButton);
  431. //-----------------------------------------------------------------------
  432. // Summary:
  433. //     This method is called to draw the control.
  434. // Parameters:
  435. //     pDC   - Pointer to a valid device context
  436. //     bDraw - TRUE to draw; FALSE to retrieve the size of the control.
  437. //     pControlEdit - Edit control to draw.
  438. // Returns:
  439. //     Size of the control.
  440. //-----------------------------------------------------------------------
  441. CSize DrawControlEdit(CDC* pDC, CXTPControlEdit* pControlEdit, BOOL bDraw);
  442. //-----------------------------------------------------------------------
  443. // Summary:
  444. //     This method is called to draw the control.
  445. // Parameters:
  446. //     pDC       - Pointer to a valid device context
  447. //     pComboBox - ComboBox to draw.
  448. //     bDraw     - TRUE to draw; FALSE to retrieve the size of the control.
  449. // Returns:
  450. //     Size of the control.
  451. //-----------------------------------------------------------------------
  452. CSize DrawControlComboBox(CDC* pDC, CXTPControlComboBox* pComboBox, BOOL bDraw);
  453. //-----------------------------------------------------------------------
  454. // Summary:
  455. //     This method returns the edit control back color to draw.
  456. // Parameters:
  457. //     pControl - Points to a CXTPControl object to get the back color from.
  458. // Returns: Edit control back color.
  459. //-----------------------------------------------------------------------
  460. virtual COLORREF GetControlEditBackColor(CXTPControl* pControl);
  461. //-----------------------------------------------------------------------
  462. // Summary:
  463. //     Retrieves the base theme of the manager.
  464. // Returns:
  465. //     Returns the base theme.
  466. //-----------------------------------------------------------------------
  467. XTPPaintTheme BaseTheme() { return xtpThemeRibbon; }
  468. //-----------------------------------------------------------------------
  469. // Summary:
  470. //     This method is called to set bounding region for popup bars
  471. // Parameters:
  472. //     pCommandBar - Pointer to popup bar which region need to set
  473. //-----------------------------------------------------------------------
  474. virtual void SetCommandBarRegion(CXTPCommandBar* pCommandBar);
  475. //-----------------------------------------------------------------------
  476. // Summary:
  477. //     This method is called to draw menu split button dropdown rect
  478. // Parameters:
  479. //     pDC - Pointer to a valid device context
  480. //     pButton - Split button to draw
  481. //-----------------------------------------------------------------------
  482. virtual void DrawSplitButtonPopup(CDC* pDC, CXTPControl* pButton);
  483. //-----------------------------------------------------------------------
  484. // Summary:
  485. //     This method is called to draw menu popup Glyph
  486. // Parameters:
  487. //     pDC - Pointer to a valid device context
  488. //     pButton - Popup button to draw Glyph
  489. //-----------------------------------------------------------------------
  490. virtual void DrawControlPopupGlyph(CDC* pDC, CXTPControl* pButton);
  491. //-----------------------------------------------------------------------
  492. // Summary:
  493. //     This method is called to draw menu label background
  494. // Parameters:
  495. //     pDC - Pointer to a valid device context
  496. //     rc - Bounding rectangle of button
  497. //-----------------------------------------------------------------------
  498. virtual void FillPopupLabelEntry(CDC* pDC, CRect rc);
  499. //-----------------------------------------------------------------------
  500. // Summary:
  501. //     This method is called to draw caption text for Aero transparent caption
  502. // Parameters:
  503. //     pDC - Pointer to a valid device context
  504. //     rcCaptionText - Caption text rectangle
  505. //     strText - Caption text
  506. //     pSite - Frame to draw
  507. //     bActive - TRUE if frame is active
  508. //-----------------------------------------------------------------------
  509. void DrawDwmCaptionText(CDC* pDC, CRect rcCaptionText, CString strText, CWnd* pSite, BOOL bActive);
  510. //-------------------------------------------------------------------------
  511. // Summary:
  512. //     This method is called to refresh fonts
  513. //-------------------------------------------------------------------------
  514. void UpdateFonts();
  515. //-----------------------------------------------------------------------
  516. // Summary:
  517. //     This method is called to set rounded rectangle region for window
  518. // Parameters:
  519. //     pWnd - Window to set region to
  520. //-----------------------------------------------------------------------
  521. void SetRoundRectRegion(CWnd* pWnd);
  522. //-----------------------------------------------------------------------
  523. // Summary:
  524. //     This method is called to draw ribbon keyboard tip
  525. // Parameters:
  526. //     pDC - Pointer to a valid device context
  527. //     pWnd - Keyboard tip window
  528. //     bSetRegion - TRUE to set region
  529. //-----------------------------------------------------------------------
  530. virtual void DrawKeyboardTip(CDC* pDC, CXTPCommandBarKeyboardTip* pWnd, BOOL bSetRegion);
  531. //-----------------------------------------------------------------------
  532. // Summary:
  533. //     This method is called to draw the specified controls.
  534. // Parameters:
  535. //     pDC         - Pointer to a valid device context
  536. //     controlType - Special control enumerator.
  537. //     pButton     - Points to a CXTPControl object to draw.
  538. //     pBar        - Parent CXTPCommandBar object.
  539. //     bDraw       - TRUE to draw; FALSE to retrieve the size of the
  540. //                   control.
  541. //     lpParam     - Specified parameter.
  542. // Returns:
  543. //     Size of the control.
  544. //-----------------------------------------------------------------------
  545. virtual CSize DrawSpecialControl(CDC* pDC, XTPSpecialControl controlType, CXTPControl* pButton, CXTPCommandBar* pBar, BOOL bDraw, LPVOID lpParam);
  546. void DrawPopupResizeGripper(CDC* pDC, CRect rcGripper, int nFlags);
  547. protected:
  548. //-----------------------------------------------------------------------
  549. // Summary:
  550. //     Determines if images is available
  551. // Returns:
  552. //     TRUE if images exist in application
  553. //-----------------------------------------------------------------------
  554. BOOL IsImagesAvailable();
  555. //{{AFX_CODEJOCK_PRIVATE
  556. virtual void DrawDropDownGlyph(CDC* pDC, CXTPControl* pControl, CPoint pt, BOOL bSelected, BOOL bPopuped, BOOL bEnabled, BOOL bVert);
  557. virtual CSize DrawControlCheckBoxMark(CDC* pDC, CRect rc, BOOL bDraw, BOOL bSelected, BOOL bPressed, BOOL bChecked, BOOL bEnabled);
  558. virtual CSize DrawControlRadioButtonMark(CDC* pDC, CRect rc, BOOL bDraw, BOOL bSelected, BOOL bPressed, BOOL bChecked, BOOL bEnabled);
  559. //}}AFX_CODEJOCK_PRIVATE
  560. public:
  561. BOOL m_bHotTrackingGroups;              // TRUE to highlight group under cursor
  562. int m_nTabsHeight;                      // Tabs heights
  563. CXTPPaintManagerFont m_fontGroupCaption;   // Font used to draw text in the group caption
  564. protected:
  565. int m_nGroupCaptionHeight;              // Group caption bar height
  566. int m_nFontHeight;                      // Ribbon font height
  567. CXTPTabPaintManager* m_pTabPaintManager;// Tab paint manager
  568. protected:
  569. COLORREF m_clrRibbonFace;               // Ribbon face color
  570. COLORREF m_clrRibbonText;               // Ribbon text color
  571. COLORREF m_clrRibbonGroupCaptionText;   // Ribbon group captions color
  572. COLORREF m_clrControlEditNormal;        // Edit control color
  573. COLORREF m_clrMinimizedFrameEdgeHighLight;      // Minimzed bottom edge
  574. COLORREF m_clrMinimizedFrameEdgeShadow;         // Minimzed bottom edge shadow
  575. CXTPPaintManagerColorGradient m_clrMenuGripper;
  576. protected:
  577. friend class CXTPRibbonBar;
  578. };
  579. AFX_INLINE int CXTPRibbonTheme::GetGroupCaptionHeight() const {
  580. return m_nGroupCaptionHeight;
  581. }
  582. AFX_INLINE CXTPTabPaintManager* CXTPRibbonTheme::GetTabPaintManager() const {
  583. return m_pTabPaintManager;
  584. }
  585. AFX_INLINE int CXTPRibbonTheme::GetEditHeight() const {
  586. return m_nEditHeight;
  587. }
  588. AFX_INLINE void CXTPRibbonTheme::SetFontHeight(int nFontHeight) {
  589. m_nFontHeight = nFontHeight;
  590. RefreshMetrics();
  591. }
  592. AFX_INLINE int CXTPRibbonTheme::GetFontHeight() const {
  593. return m_nFontHeight;
  594. }
  595. #endif // !defined(__XTPRIBBONTHEME_H__)