ExtSkinPaintManager.h
上传用户:sesekoo
上传日期:2020-07-18
资源大小:21543k
文件大小:24k
源码类别:

界面编程

开发平台:

Visual C++

  1. // This is part of the Professional User Interface Suite library.
  2. // Copyright (C) 2001-2009 FOSS Software, Inc.
  3. // All rights reserved.
  4. //
  5. // http://www.prof-uis.com
  6. // mailto:support@prof-uis.com
  7. //
  8. // This source code can be used, modified and redistributed
  9. // under the terms of the license agreement that is included
  10. // in the Professional User Interface Suite package.
  11. //
  12. // Warranties and Disclaimers:
  13. // THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND
  14. // INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY,
  15. // FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
  16. // IN NO EVENT WILL FOSS SOFTWARE INC. BE LIABLE FOR ANY DIRECT,
  17. // INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES,
  18. // INCLUDING DAMAGES FOR LOSS OF PROFITS, LOSS OR INACCURACY OF DATA,
  19. // INCURRED BY ANY PERSON FROM SUCH PERSON'S USAGE OF THIS SOFTWARE
  20. // EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
  21. #if (!defined __PROF_SKIN_PAINT_MANAGER_H)
  22. #define __PROF_SKIN_PAINT_MANAGER_H
  23. #if (!defined __PROF_SKIN_H)
  24. #include <../ProfSkin/ProfSkin.h>
  25. #endif
  26. #if (!defined __PROF_SKIN_ITEM_H)
  27. #include <../ProfSkin/ExtSkinItem.h>
  28. #endif
  29. class CExtControlBar;
  30. class CExtToolControlBar;
  31. class CExtMenuControlBar;
  32. class CExtStatusControlBar;
  33. class CExtPopupMenuWnd;
  34. class CExtTabWnd;
  35. class __PROF_SKIN_API CExtPaintManagerSkin 
  36. : public CExtPaintManager
  37. {
  38. public:
  39. DECLARE_SERIAL( CExtPaintManagerSkin )
  40. CExtPaintManagerSkin(void);
  41. virtual ~CExtPaintManagerSkin(void);
  42. virtual void SerializeSynchronizationData( CArchive & ar );
  43. virtual e_paint_manager_name_t OnQueryPaintManagerName()
  44. {
  45. ASSERT_VALID( this );
  46. return ProfSkinPainter;
  47. }
  48. virtual bool OnStateSerialize(
  49. CArchive & ar,
  50. bool bEnableThrowExceptions = false
  51. );
  52. virtual bool NcFrame_IsSupported(
  53. const CWnd * pWnd,
  54. LPARAM lParam = 0L
  55. ) const;
  56. virtual HRGN NcFrame_GenerateSkinFrameRGN(
  57. const RECT & rcWnd,
  58. const CWnd * pWnd,
  59. LPARAM lParam = 0L
  60. ) const;
  61. virtual INT NcFrame_GetCaptionHeight(
  62. bool bActive,
  63. const CWnd * pWnd,
  64. LPARAM lParam = 0L
  65. ) const;
  66. virtual void NcFrame_GetMetrics(
  67. RECT & rcNcBorders,
  68. RECT & rcThemePadding,
  69. const CWnd * pWnd,
  70. LPARAM lParam = 0L
  71. ) const;
  72. virtual CRect NcFrame_GetHtRect(
  73. UINT nHT,
  74. bool bScreenMapping,
  75. bool bLayoutBordersH,
  76. bool bLayoutBordersV,
  77. const CExtCmdIcon * pIcon,
  78. const CWnd * pWnd,
  79. LPMINMAXINFO pMinMaxInfo = NULL,
  80. LPARAM lParam = 0L
  81. ) const;
  82. static __EXT_MFC_SAFE_LPCTSTR stat_NcFrameButton_NameFromState(
  83. e_nc_button_state_t eState
  84. );
  85. virtual void NcFrame_Paint(
  86. CDC & dc,
  87. const CExtCmdIcon * pIcon,
  88. __EXT_MFC_SAFE_LPCTSTR strCaption,
  89. UINT nDrawTextAlignFlags,
  90. const RECT & rcFrame,
  91. const RECT & rcClient,
  92. const RECT & rcIcon,
  93. const RECT & rcText,
  94. const RECT & rcHelp,
  95. const RECT & rcMinimize,
  96. const RECT & rcMaximizeRestore,
  97. const RECT & rcClose,
  98. bool bFrameActive,
  99. bool bFrameEnabled,
  100. bool bFrameMaximized,
  101. e_nc_button_state_t eStateButtonHelp,
  102. e_nc_button_state_t eStateButtonMinimize,
  103. e_nc_button_state_t eStateButtonMaximizeRestore,
  104. e_nc_button_state_t eStateButtonClose,
  105. const CWnd * pWnd,
  106. LPARAM lParam = 0L
  107. ) const;
  108. virtual void NcFrame_GetRects(
  109. CExtCmdIcon * pIcon,
  110. __EXT_MFC_SAFE_LPCTSTR strCaption,
  111. UINT nDrawTextAlignFlags,
  112. RECT & rcIcon,
  113. RECT & rcText,
  114. RECT & rcHelp,
  115. RECT & rcMinimize,
  116. RECT & rcMaximizeRestore,
  117. RECT & rcClose,
  118. const CWnd * pWnd,
  119. LPMINMAXINFO pMinMaxInfo = NULL,
  120. LPARAM lParam = 0L
  121. ) const;
  122. virtual bool Bar_MiniDockFrameGetNcMetrics(
  123. INT & nResizingFrameDX,
  124. INT & nResizingFrameDY,
  125. INT & nCaptionDY,
  126. CExtMiniDockFrameWnd * pMiniFrameWnd,
  127. CExtControlBar * pBar,
  128. LPARAM lParam = 0
  129. ) const;
  130. virtual bool Bar_MiniDockFrameNcCalcSize(
  131. RECT & rcAdjust,
  132. CExtMiniDockFrameWnd * pMiniFrameWnd,
  133. CExtControlBar * pBar,
  134. LPARAM lParam = 0
  135. ) const;
  136. virtual bool Bar_MiniDockFrameCaptionCalcRect(
  137. RECT & rcCaption,
  138. CExtMiniDockFrameWnd * pMiniFrameWnd,
  139. CExtControlBar * pBar,
  140. LPARAM lParam = 0
  141. ) const;
  142. virtual void PaintResizableBarSeparator(
  143. CDC & dc,
  144. const RECT & rc,
  145. bool bHorz,
  146. CExtControlBar * pBar,
  147. LPARAM lParam = 0
  148. );
  149. virtual bool Bar_LayoutNcAreaButton(
  150. RECT & rcButton,
  151. const RECT & rcCaption,
  152. CExtBarNcAreaButton * pLayoutBtn,
  153. CExtBarNcAreaButton * pPrevBtn,
  154. CObject * pHelperSrc,
  155. LPARAM lParam = 0L
  156. ) const;
  157. virtual CRect Bar_GetCaptionBordersForText(
  158. CExtControlBar * pBar,
  159. LPARAM lParam = 0
  160. ) const;
  161. virtual INT Bar_SeparatorWidthGet(
  162. CExtControlBar * pBar,
  163. LPARAM lParam = 0
  164. ) const;
  165. virtual INT Bar_SeparatorHeightGet(
  166. CExtControlBar * pBar,
  167. LPARAM lParam = 0
  168. ) const;
  169. virtual INT Bar_GripperWidthAtLeftGet(
  170. CExtControlBar * pBar,
  171. LPARAM lParam = 0
  172. ) const;
  173. virtual INT Bar_GripperHeightAtTopGet(
  174. CExtControlBar * pBar,
  175. LPARAM lParam = 0
  176. ) const;
  177. virtual HFONT Bar_GetCaptionFont(
  178. bool bHorz,
  179. CExtToolControlBar * pBar,
  180. LPARAM lParam = 0
  181. );
  182. virtual HFONT CreateDefaultFont();
  183. virtual CSize Toolbar_GetMinButtonSize(
  184. CObject * pHelperSrc,
  185. LPARAM lParam = 0
  186. );
  187. virtual void Toolbar_AdjustButtonSize(
  188. CExtBarButton * pTBB,
  189. CSize & sizePreCalc
  190. );
  191. virtual HFONT Toolbar_GetFont(
  192. bool bHorz,
  193. CExtControlBar * pBar,
  194. LPARAM lParam = 0
  195. );
  196. virtual bool Toolbar_GetBGInfo(
  197. RECT & rcBorders,
  198. INT & nGripWidthAtLeft,
  199. INT & nGripHeightAtTop,
  200. CExtToolControlBar * pBar,
  201. LPARAM lParam = 0
  202. ) const;
  203. virtual bool Toolbar_GetSizeOfCEB(
  204. SIZE & sizeReal,
  205. const SIZE & sizePreCalc,
  206. CDC & dc,
  207. BOOL bHorz,
  208. CExtBarContentExpandButton * pTBB,
  209. LPARAM lParam = 0
  210. );
  211. virtual void PaintToolbarExpandButton(
  212. CDC & dc,
  213. const RECT & rcButtonArea,
  214. bool bHorz, // if false - down
  215. bool bBarIsCompletelyVisible,
  216. bool bEnabled,
  217. bool bPushed,
  218. bool bHover,
  219. CObject * pHelperSrc,
  220. LPARAM lParam = 0L,
  221. bool bTransparentBackground = false
  222. );
  223. virtual void FixedBar_AdjustClientRect(
  224. const CExtControlBar * pBar,
  225. CRect & rcPreCalc
  226. )
  227. {
  228. ASSERT_VALID( this );
  229. pBar;
  230. rcPreCalc;
  231. return;
  232. }
  233. virtual INT FixedBar_GetRowDistance(
  234. const CExtToolControlBar * pBar
  235. )
  236. {
  237. ASSERT_VALID( this );
  238. pBar;
  239. return 4;
  240. }
  241. virtual bool FixedBar_IsPaintRowBkMode(
  242. const CExtToolControlBar * pBar
  243. )
  244. {
  245. ASSERT_VALID( this );
  246. pBar;
  247. return false;
  248. }
  249. virtual CSize GetPushedOffset()
  250. {
  251. ASSERT_VALID( this );
  252. return CSize( 0, 0 );
  253. }
  254. virtual CSize GetToolBarButtonOffset( BOOL bHorz )
  255. {
  256. ASSERT_VALID( this );
  257. bHorz;
  258. return CSize( 0, 0 );
  259. }
  260. void CExtPaintManagerSkin::PaintToolbarTextField(
  261. CDC & dc,
  262. PAINTTOOLBARTEXTFIELDDATA & _ptbtfd
  263. );
  264. virtual void PaintComboFrame(
  265. CDC & dc,
  266. CExtPaintManager::PAINTCOMBOFRAMEDATA & _pcfd
  267. );
  268. virtual void PaintPushButton(
  269. CDC & dc,
  270. CExtPaintManager::PAINTPUSHBUTTONDATA & _ppbd
  271. );
  272. virtual bool GetCb2DbTransparentMode(
  273. CObject * pObjHelperSrc,
  274. LPARAM lParam = 0L
  275. );
  276. virtual bool PaintDockerBkgnd(
  277. bool bClientMapping,
  278. CDC & dc,
  279. CWnd * pWnd,
  280. LPARAM lParam = NULL
  281. );
  282. virtual void PaintControlBarBorders(
  283. CDC & dc,
  284. CExtPaintManager::PAINTCONTROLBARBORDERSDATA & _pcbbd
  285. );
  286. virtual void PaintDockBarClientArea(
  287. CDC & dc,
  288. const RECT & rcClient,
  289. CObject * pHelperSrc,
  290. LPARAM lParam = 0L
  291. );
  292. virtual void PaintControlBarClientArea(
  293. CDC & dc,
  294. const RECT & rcClient,
  295. CObject * pHelperSrc,
  296. LPARAM lParam = 0L
  297. );
  298. virtual void PaintDockingFrame(
  299. CDC & dc,
  300. CExtPaintManager::PAINTDOCKINGFRAMEDATA & _pdfd
  301. );
  302. virtual void PaintMenuItem(
  303. CDC & dc,
  304. CExtPaintManager::PAINTMENUITEMDATA & _pmid
  305. );
  306. virtual void PaintMenuSeparator(
  307. CDC & dc,
  308. const RECT & rectItem,
  309. int nIconAreaWidth,
  310. bool bRarelyUsed,
  311. bool bIsForceNoLeftGradient,
  312. CObject * pHelperSrc,
  313. LPARAM lParam = 0L
  314. );
  315. virtual COLORREF GetMenuFrameFillColor(
  316. CObject * pHelperSrc,
  317. LPARAM lParam = 0L
  318. )
  319. {
  320. ASSERT_VALID( this );
  321. pHelperSrc;
  322. lParam;
  323. return COLORREF( -1L );
  324. }
  325. virtual CRect GetMenuBorderMetrics(
  326. CWnd * pWnd,
  327. LPARAM lParam = 0
  328. ) const;
  329. virtual void PaintMenuBorder(
  330. CDC & dc,
  331. const RECT & rectClient,
  332. CObject * pHelperSrc,
  333. LPARAM lParam = 0L
  334. );
  335. virtual void PaintMenuExpandButton(
  336. CDC & dc,
  337. const RECT & rectButton,
  338. bool bPushed,
  339. bool bHover,
  340. CObject * pHelperSrc,
  341. LPARAM lParam = 0L
  342. );
  343. virtual void PaintMenuScrollButton(
  344. CDC & dc,
  345. bool bHover,
  346. bool bPushed,
  347. bool bTopButton,
  348. const RECT & rcScrollButton,
  349. CObject * pHelperSrc,
  350. LPARAM lParam = 0L
  351. );
  352. virtual void PaintMenuTearOffButton(
  353. CDC & dc,
  354. const RECT & rectButton,
  355. bool bPushed,
  356. bool bHover,
  357. CObject * pHelperSrc,
  358. LPARAM lParam = 0L
  359. );
  360. virtual void PaintGripper(
  361. CDC & dc,
  362. CExtPaintManager::PAINTGRIPPERDATA & _pgd
  363. );
  364. virtual void PaintDockingCaptionButton(
  365. CDC & dc,
  366. CExtPaintManager::PAINTDOCKINGCAPTIONBUTTONDATA & _pdcbd
  367. );
  368. virtual INT GetSeparatorHeight();
  369. virtual CSize GetResizingGriperSize(
  370. CObject * pHelperSrc,
  371. LPARAM lParam = 0L
  372. ) const;
  373. virtual void PaintResizingGripper(
  374. CDC & dc,
  375. const RECT & rcGrip,
  376. CObject * pHelperSrc,
  377. LPARAM lParam = 0L
  378. );
  379. protected:
  380. CExtSkinGlyph & CExtPaintManagerSkin::_GetDockedToolBarGlyph(
  381. CExtToolControlBar * pBar,
  382. CExtSkinGlyph ** ppGlyphGripper = NULL
  383. );
  384. const CExtSkinGlyph & CExtPaintManagerSkin::_GetDockedToolBarGlyph(
  385. CExtToolControlBar * pBar,
  386. const CExtSkinGlyph ** ppGlyphGripper = NULL
  387. ) const;
  388. public:
  389. #ifndef __EXT_MFC_NO_STATUSBAR
  390. virtual bool StatusBar_QuerySkinSupport(
  391. const CExtStatusControlBar * pStatusBar,
  392. LPARAM lParam = 0
  393. ) const;
  394. virtual bool StatusBar_ErasePaneBackground(
  395. CDC & dc,
  396. int nPaneIdx,
  397. const RECT & rcPane,
  398. const CExtStatusControlBar * pStatusBar,
  399. LPARAM lParam = 0
  400. ) const;
  401. virtual bool StatusBar_PaintPane(
  402. CDC & dc,
  403. int nPaneIdx,
  404. const RECT & rcPane,
  405. DWORD dwPaneStyle,
  406. HICON hIcon,
  407. __EXT_MFC_SAFE_LPCTSTR sPaneText,
  408. UINT nDrawTextFlags,
  409. COLORREF clrText,
  410. const CExtStatusControlBar * pStatusBar,
  411. LPARAM lParam = 0
  412. ) const;
  413. virtual bool StatusBar_PaintSeparator(
  414. CDC & dc,
  415. int nPaneIdxAfterSep,
  416. const RECT & rcPaneBefore,
  417. const RECT & rcPaneAfter,
  418. const CExtStatusControlBar * pStatusBar,
  419. LPARAM lParam = 0
  420. ) const;
  421. #endif // ifndef __EXT_MFC_NO_STATUSBAR
  422. virtual void PaintSeparator(
  423. CDC & dc,
  424. const RECT & rectItem,
  425. bool bHorz,
  426. bool bTransparentBk,
  427. CObject * pHelperSrc,
  428. LPARAM lParam = 0L
  429. );
  430. virtual void PaintIcon(
  431. CDC & dc,
  432. bool bHorz,
  433. CExtCmdIcon * pIcon,
  434. const CRect & rcClient,
  435. bool bPushed,
  436. bool bEnabled,
  437. bool bHover = false,
  438. INT nIconAlignment = 0,
  439. bool bRTL = false,
  440. CRect * prcIcon = NULL,
  441. CRect * prcText = NULL,
  442. CRect * prcIconMargins = NULL,
  443. COLORREF clrCustomAccentEffectForIcon = COLORREF(-1L)
  444. );
  445. #if (!defined __EXT_MFC_NO_TAB_CTRL)
  446. virtual bool QueryTabWndHoverChangingRedraw(
  447. const CExtTabWnd * pWndTab,
  448. LPARAM lParam = 0L
  449. );
  450. virtual void PaintTabbedTabClientArea(
  451. CDC & dc,
  452. CRect & rcClient,
  453. CRect & rcTabItemsArea,
  454. CRect & rcTabNearBorderArea,
  455. DWORD dwOrientation,
  456. bool bGroupedMode,
  457. CObject * pHelperSrc,
  458. LPARAM lParam = 0L
  459. );
  460. virtual void PaintTabClientArea(
  461. CDC & dc,
  462. CRect & rcClient,
  463. CRect & rcTabItemsArea,
  464. CRect & rcTabNearBorderArea,
  465. DWORD dwOrientation,
  466. bool bGroupedMode,
  467. CObject * pHelperSrc,
  468. LPARAM lParam = 0L
  469. );
  470. virtual void PaintTabItem(
  471. CDC & dc,
  472. CRect & rcTabItemsArea,
  473. bool bTopLeft,
  474. bool bHorz,
  475. bool bSelected,
  476. bool bCenteredText,
  477. bool bGroupedMode,
  478. bool bInGroupActive,
  479. bool bInvertedVerticalMode,
  480. const CRect & rcEntireItem,
  481. CSize sizeTextMeasured,
  482. CFont * pFont,
  483. __EXT_MFC_SAFE_LPCTSTR sText,
  484. CExtCmdIcon * pIcon,
  485. CObject * pHelperSrc,
  486. LPARAM lParam = 0L,
  487. COLORREF clrForceText = COLORREF(-1L),
  488. COLORREF clrForceTabBk = COLORREF(-1L),
  489. COLORREF clrForceTabBorderLT = COLORREF(-1L),
  490. COLORREF clrForceTabBorderRB = COLORREF(-1L),
  491. COLORREF clrForceTabSeparator = COLORREF(-1L),
  492. bool bDwmMode = false
  493. );
  494. virtual void PaintTabButton(
  495. CDC & dc,
  496. CRect & rcButton,
  497. LONG nHitTest,
  498. bool bTopLeft,
  499. bool bHorz,
  500. bool bEnabled,
  501. bool bHover,
  502. bool bPushed,
  503. bool bGroupedMode,
  504. CObject * pHelperSrc,
  505. LPARAM lParam = 0L,
  506. bool bFlat = false
  507. );
  508. virtual void PaintTabNcAreaRect(
  509. CDC & dc,
  510. const RECT & rc,
  511. CObject * pHelperSrc,
  512. LPARAM lParam = 0L
  513. );
  514. virtual void TabWnd_MeasureItemAreaMargins(
  515. CExtTabWnd * pTabWnd,
  516. LONG & nSpaceBefore,
  517. LONG & nSpaceAfter,
  518. LONG & nSpaceOver
  519. );
  520. virtual void TabWnd_UpdateItemMeasure(
  521. CExtTabWnd * pTabWnd,
  522. CExtTabWnd::TAB_ITEM_INFO * pTii,
  523. CDC & dcMeasure,
  524. CSize & sizePreCalc
  525. );
  526. virtual void GetThemeAccentTabColors(
  527. COLORREF * pClrSetectedTabItemText,
  528. COLORREF * pClrSetectedTabItemFace = NULL,
  529. COLORREF * pClrSetectedTabItemBorderLight = NULL,
  530. COLORREF * pClrSetectedTabItemBorderDark = NULL,
  531. CObject * pHelperSrc = NULL,
  532. LPARAM lParam = 0L
  533. );
  534. virtual __EXT_MFC_SAFE_LPCTSTR GetSkinnedTabControlType(
  535. const CExtTabWnd * pWndTab
  536. );
  537. virtual __EXT_MFC_SAFE_LPCTSTR GetSkinnedTabControlOrientation(
  538. const CExtTabWnd * pWndTab
  539. );
  540. #endif // (!defined __EXT_MFC_NO_TAB_CTRL)
  541. virtual COLORREF GetIconAlphaColor() const;
  542. virtual double GetIconAlphaAdjustPercent() const;
  543. virtual bool AdjustIcon( 
  544. CExtCmdIcon * pIcon
  545. );
  546. virtual COLORREF QueryObjectTextColor(
  547. CDC & dc,
  548. bool bEnabled,
  549. bool bFocused,
  550. bool bHovered,
  551. bool bPressed,
  552. CObject * pHelperSrc,
  553. LPARAM lParam = 0L
  554. );
  555. virtual CSize GetCheckButtonBoxSize(
  556. CDC & dc,
  557. CExtPaintManager::PAINTCHECKRADIOBUTTONDATA & _pcbd
  558. ) const;
  559. virtual CSize GetRadioButtonBoxSize(
  560. CDC & dc,
  561. CExtPaintManager::PAINTCHECKRADIOBUTTONDATA & _pcbd
  562. ) const;
  563. virtual void PaintCheckButtonBox(
  564. CDC & dc,
  565. CExtPaintManager::PAINTCHECKRADIOBUTTONDATA & _pcbd
  566. );
  567. virtual void PaintRadioButtonBox(
  568. CDC & dc,
  569. CExtPaintManager::PAINTCHECKRADIOBUTTONDATA & _pcbd
  570. );
  571. virtual bool PaintGroupBoxFrame(
  572. CDC & dc,
  573. const RECT & rcBorder,
  574. COLORREF clrFrame = COLORREF(-1L),
  575. CObject * pHelperSrc = NULL,
  576. LPARAM lParam = 0L
  577. );
  578. virtual bool PaintGroupBoxLabel(
  579. CDC & dc,
  580. __EXT_MFC_SAFE_LPCTSTR strText,
  581. COLORREF clrText,
  582. HFONT hFont,
  583. DWORD dwDrawTextFlags,
  584. bool bEnabled,
  585. const RECT & rcText,
  586. CObject * pHelperSrc,
  587. LPARAM lParam = 0L
  588. );
  589. #if( !defined __EXT_MFC_NO_SPIN || !defined __EXT_MFC_NO_DURATIONWND )
  590. virtual void PaintSpinButtonArrow(
  591. CDC & dc,
  592. const CRect & rcButton,
  593. bool bUp,
  594. bool bHorz,
  595. bool bEnabled,
  596. bool bPushed,
  597. bool bHover,
  598. bool bHotTrack,
  599. CObject * pHelperSrc,
  600. LPARAM lParam = 0L
  601. );
  602. virtual void PaintSpinButton(
  603. CDC & dc,
  604. const CRect & rcButton,
  605. bool bUp,
  606. bool bHorz,
  607. bool bEnabled,
  608. bool bFlat,
  609. bool bDrawBorder,
  610. bool bPushed,
  611. bool bHover,
  612. bool bHotTrack,
  613. CObject * pHelperSrc,
  614. LPARAM lParam = 0L
  615. );
  616. #endif // #if( !defined __EXT_MFC_NO_SPIN || !defined __EXT_MFC_NO_DURATIONWND )
  617. virtual void PaintControlFrame(
  618. CDC & dc,
  619. CExtPaintManager::PAINTCONTROLFRAMEDATA & _pcfd
  620. );
  621. virtual bool AdjustControlFont(
  622. HFONT & hFont,
  623. CObject * pHelperSrc,
  624. LPARAM lParam = 0L
  625. );
  626. virtual DLGTEMPLATE * AdjustDialogTemplate(
  627. const DLGTEMPLATE * lpDialogTemplate,
  628. CObject * pHelperSrc,
  629. bool bWizard = false,
  630. LPARAM lParam = 0L
  631. );
  632. #if (!defined __EXT_MFC_NO_DATE_PICKER)
  633. virtual void PaintDatePickerPushButton(
  634. CDC & dc,
  635. const CRect & rcButton,
  636. LONG nButtonType, // __EDPWH_BTN_NONE or __EDPWH_BTN_TODAY
  637. __EXT_MFC_SAFE_LPCTSTR strCaption,
  638. bool bFlat,
  639. bool bDrawBorder,
  640. bool bPushed,
  641. bool bHover,
  642. HFONT hFont,
  643. CObject * pHelperSrc,
  644. LPARAM lParam = 0L
  645. );
  646. virtual void PaintDatePickerClientArea(
  647. CDC & dc,
  648. const RECT & rcTotalClient,
  649. const RECT & rcUsedClient,
  650. CObject * pHelperSrc,
  651. LPARAM lParam = 0L
  652. );
  653. #endif // (!defined __EXT_MFC_NO_DATE_PICKER)
  654. #if (!defined __EXT_MFC_NO_SHORTCUTLIST_CTRL)
  655. virtual void PaintShortcutListItem(
  656. CDC & dc,
  657. CExtPaintManager::PAINTSHORTCUTLISTITEMSDATA & _pslid
  658. );
  659. #endif // (!defined __EXT_MFC_NO_SHORTCUTLIST_CTRL)
  660. virtual SCROLLBARSKINDATA * ScrollBar_GetSkinData(
  661. bool bHorzBar,
  662. CObject * pHelperSrc,
  663. LPARAM lParam = 0L,
  664. bool bLightAccent = true
  665. );
  666. virtual bool ScrollBar_GetMetrics(
  667. INT * p_nHorzBarHeight = NULL,
  668. INT * p_nVertBarWidth = NULL,
  669. INT * p_nHorzButtonWidth = NULL,
  670. INT * p_nVertButtonHeight = NULL,
  671. INT * p_nHorzThumbMinWidth = NULL,
  672. INT * p_nVertThumbMinHeight = NULL,
  673. CObject * pHelperSrc = NULL,
  674. LPARAM lParam = 0L
  675. ) const;
  676. virtual bool PaintDocumentClientAreaBkgnd(
  677. CDC & dc,
  678. CWnd * pWnd,
  679. LPARAM lParam = NULL
  680. );
  681. #ifndef __EXT_MFC_NO_GRIDWND
  682. virtual bool Grid_PaintButton(
  683. CDC & dc,
  684. const RECT & rcButton,
  685. INT nButtonType,
  686. bool bPressed,
  687. bool bHovered,
  688. bool bFocused,
  689. bool bEnabled,
  690. COLORREF clrFace,
  691. COLORREF clrLight,
  692. COLORREF clrShadow,
  693. COLORREF clrWindow,
  694. COLORREF clrText,
  695. DWORD dwHelperPaintFlags,
  696. CObject * pHelperSrc,
  697. LPARAM lParam = 0L
  698. );
  699. virtual bool Grid_PaintHeaderSortArrow(
  700. CDC & dc,
  701. const RECT & rcSortArrow,
  702. bool bHorz,
  703. bool bAscending,
  704. COLORREF * pColorValues,
  705. CObject * pHelperSrc,
  706. LPARAM lParam = 0L
  707. );
  708. virtual bool Grid_PaintHeaderBackground(
  709. CDC & dc,
  710. const RECT & rcArea,
  711. LONG nColNo,
  712. LONG nRowNo,
  713. INT nColType,
  714. INT nRowType,
  715. DWORD dwAreaFlags,
  716. DWORD dwHelperPaintFlags,
  717. CObject * pHelperSrc,
  718. LPARAM lParam = 0L
  719. );
  720. virtual COLORREF Grid_OnQueryTextColor(
  721. const CExtGridCell & _cell,
  722. CDC & dc,
  723. LONG nVisibleColNo,
  724. LONG nVisibleRowNo,
  725. LONG nColNo,
  726. LONG nRowNo,
  727. INT nColType,
  728. INT nRowType,
  729. DWORD dwAreaFlags,
  730. DWORD dwHelperPaintFlags
  731. );
  732. #endif // #ifndef __EXT_MFC_NO_GRIDWND
  733. #if (!defined __EXT_MFC_NO_REPORTGRIDWND)
  734. virtual bool ReportGrid_PaintHeaderRowBackground(
  735. CDC & dc,
  736. const RECT & rcArea,
  737. CObject * pHelperSrc,
  738. LPARAM lParam = 0L
  739. );
  740. virtual bool ReportGrid_PaintHeaderSortArrow(
  741. CDC & dc,
  742. const RECT & rcSortArrow,
  743. bool bAscending,
  744. CObject * pHelperSrc,
  745. LPARAM lParam = 0L
  746. );
  747. virtual bool ReportGrid_PaintGroupAreaBackground(
  748. CDC & dc,
  749. const RECT & rcArea,
  750. __EXT_MFC_SAFE_LPCTSTR strEmptyAreaCaption, // not NULL if area is empty
  751. CObject * pHelperSrc,
  752. LPARAM lParam = 0L
  753. );
  754. virtual COLORREF ReportGrid_GetHeaderTextColor(
  755. CObject * pHelperSrc,
  756. LPARAM lParam = 0L
  757. );
  758. virtual COLORREF ReportGrid_GetGroupConnectorColor(
  759. CObject * pHelperSrc,
  760. LPARAM lParam = 0L
  761. );
  762. virtual bool ReportGrid_PaintGroupAreaItemBackground(
  763. CDC & dc,
  764. const RECT & rcItem,
  765. CObject * pHelperSrc,
  766. LPARAM lParam = 0L
  767. );
  768. #endif // (!defined __EXT_MFC_NO_REPORTGRIDWND)
  769. virtual CFont * MenuCaptionGetFont(
  770. CExtPopupMenuWnd * pPopup,
  771. LPARAM lParam = 0L
  772. ) const;
  773. virtual CSize MenuCaption_Measure(
  774. CDC & dc,
  775. __EXT_MFC_SAFE_LPCTSTR sMenuCaptionText,
  776. CExtPopupMenuWnd * pPopup,
  777. LPARAM lParam = 0L
  778. ) const;
  779. virtual void MenuCaption_Paint(
  780. CDC & dc,
  781. const RECT & rcMenuCaption,
  782. __EXT_MFC_SAFE_LPCTSTR sMenuCaptionText,
  783. CExtPopupMenuWnd * pPopup,
  784. LPARAM lParam = 0L
  785. ) const;
  786. #if (!defined __EXT_MFC_NO_RIBBON_BAR)
  787. virtual bool Ribbon_OptionsPageBackgroundIsDefault() const;
  788. virtual CFont * RibbonGallery_GetItemFont(
  789. CExtRibbonGalleryWnd * pGalleryWnd,
  790. LPVOID pGalleryItemData,
  791. LPARAM lParam = 0L
  792. );
  793. virtual CSize RibbonGallery_MeasureItem(
  794. CDC & dc,
  795. CExtRibbonGalleryWnd * pGalleryWnd,
  796. LPVOID pGalleryItemData,
  797. LPARAM lParam = 0L
  798. );
  799. virtual bool RibbonGallery_DrawItem(
  800. CDC & dc,
  801. CExtRibbonGalleryWnd * pGalleryWnd,
  802. const RECT & rcItem,
  803. LPVOID pGalleryItemData,
  804. LPARAM lParam = 0L
  805. );
  806. virtual bool RibbonGallery_EraseEntireBk(
  807. CDC & dc,
  808. const CRect & rcClient,
  809. const CRect & rcActiveChildArea,
  810. CRgn & rgnActiveChildArea,
  811. const CRect & rcActiveChildArea2,
  812. CRgn & rgnActiveChildArea2,
  813. CExtRibbonGalleryWnd * pGalleryWnd,
  814. LPARAM lParam = 0L
  815. );
  816. virtual void RibbonGallery_PaintScrollArea(
  817. CDC & dc,
  818. CExtRibbonGalleryInplaceScrollBar * pSB,
  819. LPARAM lParam = 0L
  820. );
  821. virtual bool Ribbon_GroupCaptionIsAtTop(
  822. const CExtRibbonButtonGroup * pGroupTBB,
  823. LPARAM lParam = 0L
  824. ) const;
  825. virtual void Ribbon_PaintGroupBk(
  826. CDC & dc,
  827. const RECT & rcGroupBk,
  828. const CExtRibbonButtonGroup * pGroupTBB,
  829. LPARAM lParam = 0L
  830. );
  831. virtual void Ribbon_PaintPageBk(
  832. CDC & dc,
  833. const RECT & rcPageBk,
  834. const CExtRibbonPage * pRibbonPage,
  835. LPARAM lParam = 0L
  836. );
  837. virtual void Ribbon_PaintPushButton(
  838. CDC & dc,
  839. CExtPaintManager::PAINTPUSHBUTTONDATA & _ppbd
  840. );
  841. virtual INT Ribbon_GetTabIntersectionHeight(
  842. const CExtRibbonPage * pRibbonPage,
  843. LPARAM lParam = 0L
  844. ) const;
  845. virtual void Ribbon_PaintTabItem(
  846. CDC & dc,
  847. CRect & rcTabItemsArea,
  848. bool bSelected,
  849. const CRect & rcEntireItem,
  850. CFont * pFont,
  851. __EXT_MFC_SAFE_LPCTSTR sText,
  852. CExtCmdIcon * pIcon,
  853. CObject * pHelperSrc,
  854. LPARAM lParam = 0L,
  855. COLORREF clrForceText = COLORREF(-1L),
  856. COLORREF clrForceTabBk = COLORREF(-1L),
  857. COLORREF clrForceTabBorderLT = COLORREF(-1L),
  858. COLORREF clrForceTabBorderRB = COLORREF(-1L),
  859. COLORREF clrForceTabSeparator = COLORREF(-1L)
  860. );
  861. virtual void Ribbon_PaintText(
  862. CDC & dc,
  863. __EXT_MFC_SAFE_LPCTSTR strText,
  864. const RECT & rcText,
  865. UINT nDrawTextFlags,
  866. bool bDrawDropDownArrow,
  867. CExtBitmap * pBmpAlternativeDropDownArrow,
  868. CObject * pHelperSrc,
  869. LPARAM lParam = 0L
  870. );
  871. virtual bool Ribbon_FileButtonIsItegrationSupported() const;
  872. virtual void Ribbon_NcOverPaint(
  873. CDC & dc,
  874. bool bFrameActive,
  875. INT nWidthFromLeft,
  876. bool bDwmMode,
  877. LPCRECT pRectDwmText,
  878. __EXT_MFC_SAFE_LPCTSTR strDwmCaptionTitle,
  879. CObject * pHelperSrc,
  880. LPARAM lParam = 0L
  881. );
  882. virtual void Ribbon_EmbeddedCaptionPaintText(
  883. CDC & dc,
  884. __EXT_MFC_SAFE_LPCTSTR strCaption,
  885. CRect rcDrawText,
  886. __EXT_MFC_SAFE_LPCTSTR strCaptionDelimiter,
  887. const CExtRibbonBar * pRibbonBar,
  888. LPARAM lParam = 0L
  889. );
  890. virtual UINT Ribbon_EmbeddedCaptionGetTextAlignmentFlags(
  891. const CExtRibbonBar * pRibbonBar,
  892. LPARAM lParam = 0L
  893. );
  894. virtual void Ribbon_EmbeddedCaptionAdjustTextRect(
  895. CRect & rcAdjust,
  896. const CExtRibbonBar * pRibbonBar,
  897. LPARAM lParam = 0L
  898. );
  899. #endif // (!defined __EXT_MFC_NO_RIBBON_BAR)
  900. virtual INT GetDropDownButtonWidth(
  901. CObject * pHelperSrc = NULL,
  902. LPARAM lParam = 0L
  903. ) const;
  904. // header control
  905. virtual void Header_PaintBackground(
  906. CDC & dc,
  907. CRect rc,
  908. CObject * pHelperSrc,
  909. LPARAM lParam = 0L
  910. );
  911. virtual void Header_PaintItem(
  912. CDC & dc,
  913. CRect rcItemEntire,
  914. CRect rcItemData,
  915. CRect rcIcon,
  916. CRect rcText,
  917. CRect rcSortArrow,
  918. CRect rcButton,
  919. CRect rcButtonIcon,
  920. bool bSorted,
  921. bool bSortedAscending,
  922. INT nColNo,
  923. INT nColCount,
  924. const CExtCmdIcon & iconItem,
  925. const CExtCmdIcon & iconButton,
  926. bool bHover,
  927. bool bPressed,
  928. bool bButtonEvent,
  929. __EXT_MFC_SAFE_LPCTSTR strItemText,
  930. CObject * pHelperSrc,
  931. LPARAM lParam = 0L
  932. );
  933. protected:
  934. bool _PaintHeaderPartImpl(
  935. CDC & dc,
  936. CRect rc,
  937. CObject * pHelperSrc,
  938. LPARAM lParam,
  939. bool bDrawItemLikeBackground = false,
  940. bool bHover = false,
  941. bool bPressed = false
  942. );
  943. public:
  944. CExtSkin m_Skin;
  945. }; // class CExtPaintManagerSkin
  946. #endif // __PROF_SKIN_PAINT_MANAGER_H