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

界面编程

开发平台:

Visual C++

  1. LPARAM lParam = 0L
  2. );
  3. virtual void PaintTabbedTabClientArea(
  4. CDC & dc,
  5. CRect & rcClient,
  6. CRect & rcTabItemsArea,
  7. CRect & rcTabNearBorderArea,
  8. DWORD dwOrientation,
  9. bool bGroupedMode,
  10. CObject * pHelperSrc,
  11. LPARAM lParam = 0L
  12. );
  13. virtual void PaintTabButton(
  14. CDC & dc,
  15. CRect & rcButton,
  16. LONG nHitTest,
  17. bool bTopLeft,
  18. bool bHorz,
  19. bool bEnabled,
  20. bool bHover,
  21. bool bPushed,
  22. bool bGroupedMode,
  23. CObject * pHelperSrc,
  24. LPARAM lParam = 0L,
  25. bool bFlat = false
  26. );
  27. virtual void PaintTabNcAreaRect(
  28. CDC & dc,
  29. const RECT & rc,
  30. CObject * pHelperSrc,
  31. LPARAM lParam = 0L
  32. );
  33. virtual void TabWnd_MeasureItemAreaMargins(
  34. CExtTabWnd * pTabWnd,
  35. LONG & nSpaceBefore,
  36. LONG & nSpaceAfter,
  37. LONG & nSpaceOver
  38. );
  39. virtual void TabWnd_UpdateItemMeasure(
  40. CExtTabWnd * pTabWnd,
  41. CExtTabWnd::TAB_ITEM_INFO * pTii,
  42. CDC & dcMeasure,
  43. CSize & sizePreCalc
  44. );
  45. virtual bool TabWnd_GetParentSizingMargin(
  46. INT & nMargin,
  47. DWORD dwOrientation,
  48. CExtTabWnd * pTabWnd
  49. ) const;
  50. virtual void TabWnd_AdjustItemCloseButtonRect(
  51. CRect & rcCloseButton,
  52. CExtTabWnd * pTabWnd
  53. );
  54. #endif // #if (!defined __EXT_MFC_NO_TAB_CTRL)
  55. virtual void PaintResizableBarChildNcAreaRect(
  56. CDC & dc,
  57. const RECT & rc,
  58. CObject * pHelperSrc,
  59. LPARAM lParam = 0L
  60. );
  61. static CRect stat_CalcTextDimension(
  62. CDC & dc,
  63. CFont & font,
  64. const CExtSafeString & strText,
  65. UINT uFlags = DT_SINGLELINE|DT_LEFT|DT_CALCRECT
  66. );
  67. static int stat_CalcTextWidth(
  68. CDC & dc,
  69. CFont & font,
  70. const CExtSafeString & strText
  71. );
  72. // paint methods
  73. virtual void PaintIcon(
  74. CDC & dc,
  75. bool bHorz,
  76. CExtCmdIcon * pIcon,
  77. const CRect & rcClient,
  78. bool bPushed,
  79. bool bEnabled,
  80. bool bHover = false,
  81. INT nIconAlignment = 0,
  82. bool bRTL = false,
  83. CRect * prcIcon = NULL,
  84. CRect * prcText = NULL,
  85. CRect * prcIconMargins = NULL,
  86. COLORREF clrCustomAccentEffectForIcon = COLORREF(-1L)
  87. );
  88. CExtBitmap m_bmpFilterApplied, m_bmpFilterUnApplied;
  89. enum e_docking_caption_button_t
  90. {
  91. __DCBT_EMPTY = 0,
  92. __DCBT_CLOSE = 1,
  93. __DCBT_ARROW_UP = 2,
  94. __DCBT_ARROW_DOWN = 3,
  95. __DCBT_ARROW_LEFT = 4,
  96. __DCBT_ARROW_RIGHT = 5,
  97. __DCBT_WND_MINIMIZE = 6,
  98. __DCBT_WND_RESTORE = 7,
  99. __DCBT_WND_MAXIMIZE = 8,
  100. __DCBT_WND_CONTEXTHELP = 9,
  101. __DCBT_WND_KEEP = 10,
  102. __DCBT_WND_UNKEEP = 11,
  103. __DCBT_ARROW_UP_L = 12,
  104. __DCBT_ARROW_DOWN_L = 13,
  105. __DCBT_ARROW_LEFT_L = 14,
  106. __DCBT_ARROW_RIGHT_L = 15,
  107. __DCBT_XP_THIN_CLOSE = 16,
  108. __DCBT_HOLLOW_UP = 17,
  109. __DCBT_HOLLOW_DOWN = 18,
  110. __DCBT_HOLLOW_LEFT = 19,
  111. __DCBT_HOLLOW_RIGHT = 20,
  112. __DCBT_CLOSE_DC2K = 21,
  113. __DCBT_HOLLOW_PLUS = 22,
  114. __DCBT_HOLLOW_MINUS = 23,
  115. __DCBT_TREE_PLUS = 24,
  116. __DCBT_TREE_MINUS = 25,
  117. __DCBT_CIRCLE_PLUS = 26,
  118. __DCBT_CIRCLE_MINUS = 27,
  119. __DCBT_ARROW_PT_UP = 28,
  120. __DCBT_ARROW_PT_DOWN = 29,
  121. __DCBT_ARROW_PT_LEFT = 30,
  122. __DCBT_ARROW_PT_RIGHT = 31,
  123. __DCBT_ARROW_PT_LT = 32,
  124. __DCBT_ARROW_PT_RT = 33,
  125. __DCBT_ARROW_PT_RB = 34,
  126. __DCBT_ARROW_PT_LB = 35,
  127. __DCBT_ARROW_SMALL_UP = 36,
  128. __DCBT_ARROW_SMALL_DOWN = 37,
  129. __DCBT_ARROW_SMALL_LEFT = 38,
  130. __DCBT_ARROW_SMALL_RIGHT = 39,
  131. __DCBT_ELLIPSIS = 40,
  132. __DCBT_ARROW_SORT_UP = 41,
  133. __DCBT_ARROW_SORT_DOWN = 42,
  134. __DCBT_ARROW_SORT_LEFT = 43,
  135. __DCBT_ARROW_SORT_RIGHT = 44,
  136. __DCBT_TABS_LIST_ARROW = 45,
  137. __DCBT_PN_CONFIG_BUTTON = 46,
  138. __DCBT_PN_CONFIG_BUTTON_2007 = 47,
  139. __DCBT_PN_CAPTION_EXPANDED = 48,
  140. __DCBT_PN_CAPTION_COLLAPSED = 49,
  141. __DCBT_TREE_PLUS_FILLED = 50,
  142. __DCBT_TREE_MINUS_FILLED = 51,
  143. __DCBT_SCROLL_TOP = 52,
  144. __DCBT_SCROLL_LEFT = 53,
  145. __DCBT_SCROLL_BOTTOM = 54,
  146. __DCBT_SCROLL_RIGHT = 55,
  147. __DCBT_2007_ARROW_SORT_UP = 56,
  148. __DCBT_2007_ARROW_SORT_DOWN = 57,
  149. __DCBT_2007_ARROW_SORT_LEFT = 58,
  150. __DCBT_2007_ARROW_SORT_RIGHT = 59,
  151. __DCBT_VALUE_MIN = 0,
  152. __DCBT_VALUE_MAX = 59,
  153. };
  154. static glyph_t * g_DockingCaptionGlyphs[__DCBT_VALUE_MAX+1];
  155. struct __PROF_UIS_API PAINTDOCKINGCAPTIONBUTTONDATA
  156. {
  157. CObject * m_pHelperSrc;
  158. LPARAM m_lParam;
  159. CRect m_rcClient;
  160. int m_eType; // CExtPaintManager::e_docking_caption_button_t
  161. bool m_bHover:1;
  162. bool m_bPushed:1;
  163. bool m_bEnabled:1;
  164. bool m_bSideBar:1;
  165. bool m_bBarWndActive:1;
  166. bool m_bFloating:1;
  167. PAINTDOCKINGCAPTIONBUTTONDATA();
  168. PAINTDOCKINGCAPTIONBUTTONDATA(
  169. CObject * pHelperSrc,
  170. const RECT & rcClient,
  171. int eType, // CExtPaintManager::e_docking_caption_button_t
  172. bool bHover,
  173. bool bPushed,
  174. bool bEnabled,
  175. bool bSideBar,
  176. bool bBarWndActive,
  177. bool bFloating
  178. );
  179. }; // struct PAINTDOCKINGCAPTIONBUTTONDATA
  180. virtual void PaintDockingCaptionButton(
  181. CDC & dc,
  182. CExtPaintManager::PAINTDOCKINGCAPTIONBUTTONDATA & _pdcbd
  183. );
  184. virtual void PaintSysCmdGlyph(
  185. CDC & dc,
  186. UINT nHelperSysCmdID,
  187. const RECT & rcItem,
  188. bool bHover,
  189. bool bPushed,
  190. bool bEnabled,
  191. COLORREF clrForceGlyphColor = COLORREF(-1L)
  192. );
  193. struct __PROF_UIS_API PAINTPUSHBUTTONDATA
  194. {
  195. CObject * m_pHelperSrc;
  196. LPARAM m_lParam;
  197. CRect m_rcClient;
  198. __EXT_MFC_SAFE_LPCTSTR m_sText;
  199. CExtCmdIcon * m_pIcon;
  200. HFONT m_hFont;
  201. UINT m_nHelperSysCmdID;
  202. INT m_nTextAlignment;
  203. INT m_nIconAlignment;
  204. CRect m_rcBorderSizes;
  205. CRect m_rcIconMargins;
  206. CRect m_rcTextMargins;
  207. INT m_nFocusMode;
  208. bool m_bHorz:1;
  209. bool m_bFlat:1;
  210. bool m_bHover:1;
  211. bool m_bPushed:1;
  212. bool m_bChecked:1;
  213. bool m_bIndeterminate:1;
  214. bool m_bEnabled:1;
  215. bool m_bDrawBorder:1;
  216. bool m_bDrawFocusRect:1;
  217. bool m_bDefaultPushButton:1;
  218. bool m_bDropDown:1;
  219. bool m_bTransparentBackground:1;
  220. bool m_bSeparatedDropDown:1;
  221. bool m_bNoDropDownArrow:1;
  222. bool m_bPushedDropDown:1;
  223. bool m_bHoverDropDown:1;
  224. bool m_bHelperColorCellButton:1;
  225. // text properties
  226. bool m_bWordBreak:1;
  227. // custom colors
  228. COLORREF m_clrForceTextDisabled, m_clrForceTextNormal,
  229. m_clrForceTextHover, m_clrForceTextPressed,
  230. m_clrCustomAccentEffectForIcon;
  231. COLORREF m_clrForceBk;
  232. UINT m_nDrawTextFlagsH;
  233. bool m_bForceUseDrawTextApiH:1;
  234. bool m_bForceRtlLayout:1;
  235. bool m_bForceRtlText:1;
  236. PAINTPUSHBUTTONDATA();
  237. PAINTPUSHBUTTONDATA(
  238. CObject * pHelperSrc,
  239. bool bHorz,
  240. const RECT & rcClient,
  241. __EXT_MFC_SAFE_LPCTSTR sText,
  242. CExtCmdIcon * pIcon,
  243. bool bFlat,
  244. bool bHover,
  245. bool bPushed,
  246. bool bIndeterminate,
  247. bool bEnabled,
  248. bool bDrawBorder,
  249. bool bDrawFocusRect,
  250. bool bDefaultPushButton,
  251. int eAlign,
  252. HFONT hFont = NULL,
  253. bool bDropDown = false,
  254. UINT nHelperSysCmdID = 0,
  255. bool bTransparentBackground = false
  256. );
  257. bool IsRTL();
  258. }; // struct PAINTPUSHBUTTONDATA
  259. virtual void PaintPushButton(
  260. CDC & dc,
  261. CExtPaintManager::PAINTPUSHBUTTONDATA & _ppbd
  262. );
  263. virtual void PaintPushButtonMdiRight(
  264. CDC & dc,
  265. CExtPaintManager::PAINTPUSHBUTTONDATA & _ppbd
  266. );
  267. virtual void PaintPushButtonText(
  268. CDC & dc,
  269. CRect & rcCaption,
  270. CExtPaintManager::PAINTPUSHBUTTONDATA & _ppbd
  271. );
  272. virtual void PaintPushButtonIcon(
  273. CDC & dc,
  274. CRect & rcClient,
  275. CRect & rcCaption,
  276. CRect & rcFocus,
  277. CExtPaintManager::PAINTPUSHBUTTONDATA & _ppbd
  278. );
  279. enum eBoxState_t
  280. {
  281. BOX_UNCHECKED = 0, // unchecked state (check, radio)
  282. BOX_CHECKED = 1, // checked state (check, radio)
  283. BOX_INDETERMINATE = 2, // indeterminate state (check)
  284. BOX_LDOWN_UNCHECKED = 3, // mouse down in unchecked state (check, radio)
  285. BOX_LDOWN_CHECKED = 4, // mouse down in checked state (check, radio)
  286. BOX_LDOWN_INDETERMINATE = 5, // mouse down in indeterminate state (check)
  287. BOX_MOUSE_HOVER_UNCHECKED = 6, // mouse hover in unchecked state (check, radio)
  288. BOX_MOUSE_HOVER_CHECKED = 7, // mouse hover in checked state (check, radio)
  289. BOX_MOUSE_HOVER_INDETERMINATE = 8, // mouse hover in indeterminate state (check)
  290. BOX_DISABLED_UNCHECKED = 9, // disabled in unchecked state (check, radio)
  291. BOX_DISABLED_CHECKED = 10,// disabled in checked state (check, radio)
  292. BOX_DISABLED_INDETERMINATE = 11 // disabled in indeterminate state (check)
  293. }; // enum eBoxState_t
  294. struct __PROF_UIS_API PAINTCHECKRADIOBUTTONDATA
  295. {
  296. eBoxState_t m_eState;
  297. CObject * m_pHelperSrc;
  298. LPARAM m_lParam;
  299. CRect m_rcClient;
  300. __EXT_MFC_SAFE_LPCTSTR m_sText;
  301. HFONT m_hFont;
  302. INT m_nTextAlignment;
  303. CRect m_rcTextMargins;
  304. bool m_bLeftText:1;
  305. bool m_bMultiline:1;
  306. bool m_bHover:1;
  307. bool m_bPushed:1;
  308. bool m_bEnabled:1;
  309. bool m_bDrawFocusRect:1;
  310. bool m_bTransparentBackground:1;
  311. COLORREF m_clrForceTextDisabled;
  312. COLORREF m_clrForceTextNormal;
  313. COLORREF m_clrForceTextHover;
  314. COLORREF m_clrForceTextPressed;
  315. COLORREF m_clrForceBk;
  316. CRect m_rcBox;
  317. PAINTCHECKRADIOBUTTONDATA();
  318. PAINTCHECKRADIOBUTTONDATA(
  319. CObject * pHelperSrc,
  320. eBoxState_t eState,
  321. bool bLeftText,
  322. bool bMultiline,
  323. const RECT & rcClient,
  324. __EXT_MFC_SAFE_LPCTSTR sText,
  325. bool bHover,
  326. bool bPushed,
  327. bool bEnabled,
  328. bool bDrawFocusRect,
  329. INT eAlign,
  330. HFONT hFont = NULL,
  331. bool bTransparentBackground = false
  332. );
  333. }; // struct PAINTCHECKRADIOBUTTONDATA
  334. virtual CSize GetCheckButtonBoxSize(
  335. CDC & dc,
  336. CExtPaintManager::PAINTCHECKRADIOBUTTONDATA & _pcbd
  337. ) const;
  338. virtual CSize GetRadioButtonBoxSize(
  339. CDC & dc,
  340. CExtPaintManager::PAINTCHECKRADIOBUTTONDATA & _pcbd
  341. ) const;
  342. virtual void PaintCheckOrRadioButtonText(
  343. CDC & dc,
  344. CExtPaintManager::PAINTCHECKRADIOBUTTONDATA & _pcbd,
  345. CSize _sizeBox,
  346. CRect & rcBoxLocation
  347. );
  348. virtual void PaintCheckButtonBox(
  349. CDC & dc,
  350. CExtPaintManager::PAINTCHECKRADIOBUTTONDATA & _pcbd
  351. );
  352. virtual void PaintRadioButtonBox(
  353. CDC & dc,
  354. CExtPaintManager::PAINTCHECKRADIOBUTTONDATA & _pcbd
  355. );
  356. virtual void PaintCheckButton(
  357. CDC & dc,
  358. CExtPaintManager::PAINTCHECKRADIOBUTTONDATA & _pcbd
  359. );
  360. virtual void PaintRadioButton(
  361. CDC & dc,
  362. CExtPaintManager::PAINTCHECKRADIOBUTTONDATA & _pcbd
  363. );
  364. virtual CSize GetDropDividerMerics();
  365. virtual void PaintDropDivider(
  366. CDC & dc,
  367. const RECT & rcItem,
  368. bool bBefore,
  369. bool bHorz
  370. );
  371. virtual void PaintDragSourceRect(
  372. CDC & dc,
  373. const RECT & rcItem
  374. );
  375. struct __PROF_UIS_API PAINTMENUITEMDATA
  376. {
  377. CObject * m_pHelperSrc;
  378. LPARAM m_lParam;
  379. CRect m_rcItem;
  380. CRect m_rcItemWithIndents;
  381. INT m_nIconAreaWidth;
  382. __EXT_MFC_SAFE_LPCTSTR m_sText, m_sAccelText, m_sExtendedText;
  383. CExtCmdIcon * m_pIcon;
  384. UINT m_nHelperSysCmdID; // for painting system menu glyphs
  385. HFONT m_hCustomFont;
  386. bool m_bPopup:1;
  387. bool m_bSelected:1;
  388. bool m_bPushedCheck:1;
  389. bool m_bPushedRadio:1;
  390. bool m_bIndeterminate:1;
  391. bool m_bEnabled:1;
  392. bool m_bRarelyUsed:1;
  393. bool m_bRarelyUsedPrev:1;
  394. bool m_bRarelyUsedNext:1;
  395. bool m_bForceNoLeftGradient:1;
  396. bool m_bCustomizeListMode:1;
  397. bool m_bSeparatedDropDown:1;
  398. bool m_bXtraMark:1;
  399. bool m_bXtraChecked:1;
  400. bool m_bBigAccent:1;
  401. CRect m_rcInPlaceWnd;
  402. CExtSafeString m_strInPlaceText;
  403. bool m_bHelperPopupDropped:1;
  404. COLORREF m_clrCustomAccentEffectForIcon;
  405. COLORREF m_clrForceMenuText;
  406. PAINTMENUITEMDATA();
  407. PAINTMENUITEMDATA(
  408. CObject * pHelperSrc,
  409. const RECT & rcItem,
  410. const RECT & rcItemWithIndents,
  411. INT nIconAreaWidth,
  412. __EXT_MFC_SAFE_LPCTSTR sText,
  413. __EXT_MFC_SAFE_LPCTSTR sAccelText,
  414. CExtCmdIcon * pIcon,
  415. bool bPopup,
  416. bool bSelected,
  417. bool bPushedCheck,
  418. bool bPushedRadio,
  419. bool bIndeterminate,
  420. bool bEnabled,
  421. bool bRarelyUsed,
  422. bool bRarelyUsedPrev,
  423. bool bRarelyUsedNext,
  424. UINT nHelperSysCmdID, // for painting system menu glyphs
  425. HFONT hCustomFont
  426. );
  427. }; // struct PAINTMENUITEMDATA
  428. virtual int TearOff_GetCaptionHeight() const;
  429. virtual void TearOff_GetCaptionPaint(
  430. CDC & dc,
  431. const RECT & rectItem,
  432. bool bHover,
  433. bool bPressed,
  434. CObject * pHelperSrc,
  435. LPARAM lParam = 0L
  436. );
  437. virtual void PaintMenuItem(
  438. CDC & dc,
  439. CExtPaintManager::PAINTMENUITEMDATA & _pmid
  440. );
  441. virtual void PaintMenuItemIcon(
  442. CDC & dc,
  443. CExtPaintManager::PAINTMENUITEMDATA & _pmid
  444. );
  445. virtual void PaintMenuItemInPlaceWnd(
  446. CDC & dc,
  447. CExtPaintManager::PAINTMENUITEMDATA & _pmid
  448. );
  449. virtual void PaintMenuSeparator(
  450. CDC & dc,
  451. const RECT & rectItem,
  452. int nIconAreaWidth,
  453. bool bRarelyUsed,
  454. bool bIsForceNoLeftGradient,
  455. CObject * pHelperSrc,
  456. LPARAM lParam = 0L
  457. );
  458. virtual void PaintSeparator(
  459. CDC & dc,
  460. const RECT & rectItem,
  461. bool bHorz,
  462. bool bTransparentBk,
  463. CObject * pHelperSrc,
  464. LPARAM lParam = 0L
  465. );
  466. struct __PROF_UIS_API PAINTGRIPPERDATA
  467. {
  468. CObject * m_pHelperSrc;
  469. LPARAM m_lParam;
  470. const CRect m_rcGripper, m_rcText;
  471. bool m_bActive:1;
  472. bool m_bFloating:1;
  473. bool m_bHorz:1;
  474. bool m_bSideBar:1;
  475. __EXT_MFC_SAFE_LPCTSTR m_sCaption;
  476. bool m_bHelperNoRect:1;
  477. bool m_bHelperNoFill:1;
  478. bool m_bForceRTL:1;
  479. bool m_bFlashCaptionHighlightedState:1;
  480. COLORREF m_clrFlashCaptionText, m_clrFlashCaptionBackground;
  481. PAINTGRIPPERDATA();
  482. PAINTGRIPPERDATA(
  483. CObject * pHelperSrc,
  484. const RECT & rcGripper,
  485. const RECT & rcText,
  486. bool bActive,
  487. bool bFloating,
  488. bool bHorz,
  489. bool bSideBar = false,
  490. __EXT_MFC_SAFE_LPCTSTR sCaption = NULL,
  491. bool bForceRTL = false
  492. );
  493. }; // struct PAINTGRIPPERDATA
  494. virtual void PaintGripper(
  495. CDC & dc,
  496. CExtPaintManager::PAINTGRIPPERDATA & _pgd
  497. );
  498. struct __PROF_UIS_API PAINTDOCKINGFRAMEDATA
  499. {
  500. CObject * m_pHelperSrc;
  501. LPARAM m_lParam;
  502. CRect m_rcWindow;
  503. CRect m_rcClient;
  504. bool m_bActive:1;
  505. bool m_bFloating:1;
  506. bool m_bExtBar:1;
  507. bool m_bSideBar:1;
  508. PAINTDOCKINGFRAMEDATA();
  509. PAINTDOCKINGFRAMEDATA(
  510. CObject * pHelperSrc,
  511. const RECT & rcWindow,
  512. const RECT & rcClient,
  513. bool bActive,
  514. bool bFloating,
  515. bool bExtBar,
  516. bool bSideBar = false
  517. );
  518. }; // struct PAINTDOCKINGFRAMEDATA
  519. virtual void PaintDockingFrame(
  520. CDC & dc,
  521. CExtPaintManager::PAINTDOCKINGFRAMEDATA & _pdfd
  522. );
  523. struct __PROF_UIS_API PAINTCONTROLFRAMEDATA
  524. {
  525. CObject * m_pHelperSrc;
  526. LPARAM m_lParam;
  527. CRect m_rcClient;
  528. bool m_bFlat:1;
  529. bool m_bHover:1;
  530. bool m_bEnabled:1;
  531. bool m_bFocus:1;
  532. bool m_bReadOnly:1;
  533. PAINTCONTROLFRAMEDATA();
  534. PAINTCONTROLFRAMEDATA(
  535. CObject * pHelperSrc,
  536. const RECT & rcClient,
  537. bool bFlat,
  538. bool bHover,
  539. bool bEnabled,
  540. bool bFocus,
  541. bool bReadOnly
  542. );
  543. }; // struct PAINTCONTROLFRAMEDATA
  544. virtual void PaintControlFrame(
  545. CDC & dc,
  546. CExtPaintManager::PAINTCONTROLFRAMEDATA & _pcfd
  547. );
  548. struct __PROF_UIS_API PAINTCOMBOFRAMEDATA
  549. {
  550. CObject * m_pHelperSrc;
  551. LPARAM m_lParam;
  552. CRect m_rcClient;
  553. bool m_bHover:1;
  554. bool m_bPushed:1;
  555. bool m_bEnabled:1;
  556. COLORREF
  557. m_clrForceNABorder,
  558. m_clrForceNAContent,
  559. m_clrForceActiveOuterBorder
  560. ;
  561. bool m_bNoTopOuterBorder:1;
  562. bool m_bRightText:1;
  563. PAINTCOMBOFRAMEDATA();
  564. PAINTCOMBOFRAMEDATA(
  565. CObject * pHelperSrc,
  566. const RECT & rcClient,
  567. bool bHover,
  568. bool bPushed,
  569. bool bEnabled,
  570. bool bRightText = false
  571. );
  572. }; // struct PAINTCOMBOFRAMEDATA
  573. virtual void PaintComboFrame(
  574. CDC & dc,
  575. CExtPaintManager::PAINTCOMBOFRAMEDATA & _pcfd
  576. );
  577. static HICON stat_GenerateColorIconBox(
  578. COLORREF clrIcon
  579. );
  580. static HICON stat_GenerateColorIconChar(
  581. COLORREF clrIcon,
  582. HFONT hFontForLetter,
  583. __EXT_MFC_SAFE_TCHAR tChr
  584. );
  585. static HICON stat_GenerateColorIconChar(
  586. COLORREF clrIcon,
  587. HFONT hFontForLetter
  588. );
  589. static HICON stat_GenerateColorIconFrame(
  590. COLORREF clrIcon
  591. );
  592. static bool stat_DefIsHwndNeedsDirectRepaint(
  593. HWND hWndChild
  594. );
  595. static bool stat_DefExcludeChildAreaCallback(
  596. HDC hDC,
  597. HWND hWnd,
  598. HWND hWndChild,
  599. LPVOID pCookie
  600. );
  601. static int stat_GetBPP();
  602. virtual INT GetDropDownButtonWidth(
  603. CObject * pHelperSrc = NULL,
  604. LPARAM lParam = 0L
  605. ) const;
  606. virtual INT GetSpinButtonWidth(
  607. CObject * pHelperSrc = NULL,
  608. LPARAM lParam = 0L
  609. ) const;
  610. virtual CRect GetSpinButtonMargins(
  611. CObject * pHelperSrc = NULL,
  612. LPARAM lParam = 0L
  613. ) const;
  614. CSize GetTextSizes(bool bBold = false);
  615. virtual int GetTextHeight(bool bHorz);
  616. virtual int GetTipShadowSize() const;
  617. virtual int GetMenuShadowSize() const;
  618. virtual int GetMenuIconAreaWidth() const;
  619. virtual CRect GetMenuBorderMetrics(
  620. CWnd * pWnd,
  621. LPARAM lParam = 0
  622. ) const;
  623. virtual void MenuBottomResizingMarginGetInfo(
  624. INT & nMarginHeight,
  625. INT & nResizingCornerPartWidth,
  626. CExtPopupMenuWnd * pPopup,
  627. LPARAM lParam = 0L
  628. );
  629. virtual void MenuBottomResizingMarginPaint(
  630. CDC & dc,
  631. const RECT & rcResizingArea,
  632. CExtPopupMenuWnd * pPopup,
  633. LPARAM lParam = 0L
  634. );
  635. virtual CFont * MenuCaptionGetFont(
  636. CExtPopupMenuWnd * pPopup,
  637. LPARAM lParam = 0L
  638. ) const;
  639. virtual CSize MenuCaption_Measure(
  640. CDC & dc,
  641. __EXT_MFC_SAFE_LPCTSTR sMenuCaptionText,
  642. CExtPopupMenuWnd * pPopup,
  643. LPARAM lParam = 0L
  644. ) const;
  645. virtual void MenuCaption_Paint(
  646. CDC & dc,
  647. const RECT & rcMenuCaption,
  648. __EXT_MFC_SAFE_LPCTSTR sMenuCaptionText,
  649. CExtPopupMenuWnd * pPopup,
  650. LPARAM lParam = 0L
  651. ) const;
  652. virtual void PaintMenuBorder(
  653. CDC & dc,
  654. const RECT & rectClient,
  655. CObject * pHelperSrc,
  656. LPARAM lParam = 0L
  657. );
  658. virtual void AdjustMenuDC(
  659. CExtPopupMenuWnd * pPopup,
  660. CDC & dc,
  661. bool bMemoryDC,
  662. LPARAM lParam = 0L
  663. );
  664. virtual bool IsMenuMustCombineExcludeArea(
  665. const CObject * pMenuTrackerObject = NULL
  666. ) const;
  667. virtual bool IsToolBarChevronMenuCombined();
  668. virtual void PaintMenuCombinedArea(
  669. CDC & dc,
  670. const RECT & rcArea,
  671. const RECT & rcClient,
  672. int eCombineAlign, // CExtPopupMenuWnd::e_combine_align_t values
  673. CObject * pHelperSrc,
  674. LPARAM lParam = 0L
  675. );
  676. enum e_control_bar_border_type_t
  677. {
  678. __CB_OUTER_DOCKBAR = 0,
  679. __CB_OUTER_STATUSBAR = 1,
  680. __CB_INNER_STATUSBAR_ITEM = 2,
  681. };
  682. struct __PROF_UIS_API PAINTCONTROLBARBORDERSDATA
  683. {
  684. CObject * m_pHelperSrc;
  685. LPARAM m_lParam;
  686. int m_eCBBT; // CExtPaintManager::e_control_bar_border_type_t
  687. DWORD m_dwStyle;
  688. CRect m_rc;
  689. PAINTCONTROLBARBORDERSDATA();
  690. PAINTCONTROLBARBORDERSDATA(
  691. CObject * pHelperSrc,
  692. int eCBBT, // CExtPaintManager::e_control_bar_border_type_t
  693. DWORD dwStyle,
  694. const RECT & rc
  695. );
  696. }; // struct PAINTCONTROLBARBORDERSDATA
  697. void PaintControlBarBordersDefImpl(
  698. CDC & dc,
  699. CExtPaintManager::PAINTCONTROLBARBORDERSDATA & _pcbbd,
  700. COLORREF clrHi,
  701. COLORREF clrLo
  702. );
  703. virtual void PaintControlBarBorders(
  704. CDC & dc,
  705. CExtPaintManager::PAINTCONTROLBARBORDERSDATA & _pcbbd
  706. );
  707. virtual int GetThemeDockingType() const;
  708. #if (!defined __EXT_MFC_NO_TAB_CONTROLBARS)
  709. virtual int GetAutoHideTabsType() const;
  710. #endif // (!defined __EXT_MFC_NO_TAB_CONTROLBARS)
  711. struct __PROF_UIS_API PAINTINHERITEDBACKGROUNDDATA
  712. {
  713. bool m_bClientMapping:1,
  714. m_bBackgroundDrawn:1,
  715. m_bSequenceCanceled:1;
  716. HWND m_hWndBackgroundRequestPainter;
  717. CDC & m_dc;
  718. CWnd * m_pWnd;
  719. CObject * m_pObjHelperSrc;
  720. LPARAM m_lParam;
  721. PAINTINHERITEDBACKGROUNDDATA(
  722. bool bClientMapping,
  723. CDC & dc,
  724. CWnd * pWnd,
  725. CObject * pObjHelperSrc = NULL,
  726. LPARAM lParam = 0L
  727. );
  728. PAINTINHERITEDBACKGROUNDDATA(
  729. bool bClientMapping,
  730. CDC & dc,
  731. CObject * pObjHelperSrc,
  732. LPARAM lParam = 0L
  733. );
  734. bool Notify();
  735. operator WPARAM() const;
  736. static PAINTINHERITEDBACKGROUNDDATA * FromWPARAM( WPARAM wParam );
  737. CRect GetRenderingRect() const;
  738. }; // struct PAINTINHERITEDBACKGROUNDDATA
  739. virtual bool RenderCustomBackground(
  740. bool bClientMapping,
  741. CDC & dc,
  742. CObject * pObjHelperSrc,
  743. LPARAM lParam = 0L
  744. ) const;
  745. static UINT g_nMsgPaintInheritedBackground;
  746. bool m_bCustomBackgroundInheritanceEnabled:1;
  747. virtual bool IsCustomBackgroundInheritanceEnabled() const;
  748. virtual bool GetCustomBackgroundInheritanceMode(
  749. CObject * pObjHelperSrc,
  750. LPARAM lParam = 0L
  751. ) const;
  752. virtual bool GetCb2DbTransparentMode(
  753. CObject * pObjHelperSrc,
  754. LPARAM lParam = 0L
  755. );
  756. virtual bool PaintDockerBkgnd(
  757. bool bClientMapping,
  758. CDC & dc,
  759. CWnd * pWnd,
  760. LPARAM lParam = NULL
  761. );
  762. virtual bool PaintDockerBkgnd(
  763. bool bClientMapping,
  764. CDC & dc,
  765. const CRect &rcDst,
  766. const CRect &rcWnd,
  767. LPARAM lParam = NULL
  768. );
  769. virtual bool PaintDocumentClientAreaBkgnd(
  770. CDC & dc,
  771. CWnd * pWnd,
  772. LPARAM lParam = NULL
  773. );
  774. virtual void PaintControlBarClientArea(
  775. CDC & dc,
  776. const RECT & rcClient,
  777. CObject * pHelperSrc,
  778. LPARAM lParam = 0L
  779. );
  780. virtual void PaintDockBarClientArea(
  781. CDC & dc,
  782. const RECT & rcClient,
  783. CObject * pHelperSrc,
  784. LPARAM lParam = 0L
  785. );
  786. #if (!defined __EXT_MFC_NO_SHORTCUTLIST_CTRL)
  787. bool m_bShortcutListUseButtonStyleInScrollButtons:1;
  788. bool m_bShortcutListUseDockerBkgnd:1;
  789. bool m_bShortcutListItemUseButtonStyle:1;
  790. COLORREF m_clrShortcutListItemAlternativeText;
  791. virtual void PaintShortcutListBkgnd(
  792. CDC & dc,
  793. const RECT & rcClient,
  794. CObject * pHelperSrc,
  795. LPARAM lParam = 0L
  796. );
  797. virtual void PaintShortcutListScrollButton(
  798. CDC & dc,
  799. bool bHorzLayout,
  800. const RECT & rcButton,
  801. bool bUpOrLeftBtn,
  802. bool bHover,
  803. bool bPressed,
  804. CObject * pHelperSrc,
  805. LPARAM lParam = 0L
  806. );
  807. struct __PROF_UIS_API PAINTSHORTCUTLISTITEMSDATA
  808. {
  809. CObject * m_pHelperSrc;
  810. LPARAM m_lParam;
  811. CExtCmdIcon * m_pIconBig, * m_pIconSmall;
  812. LPARAM m_lParamItem;
  813. CRect m_rcBoundsAll, m_rcBoundsIcon, m_rcBoundsText,
  814. m_rcCtrlClient;
  815. CExtSafeString m_sText;
  816. bool m_bHover:1, m_bPressed:1, m_bVisible:1,
  817. m_bChecked:1, m_bExpandMode:1, m_bHorzLayout:1,
  818. m_bBigIconView:1, m_bEraseQuery:1;
  819. DWORD m_dwShortcutListStyle;
  820. HFONT m_hItemTextFont;
  821. PAINTSHORTCUTLISTITEMSDATA();
  822. PAINTSHORTCUTLISTITEMSDATA(
  823. CObject * pHelperSrc,
  824. DWORD dwShortcutListStyle,
  825. HFONT hItemTextFont,
  826. CExtCmdIcon * pIconBig,
  827. CExtCmdIcon * pIconSmall,
  828. LPARAM lParamItem,
  829. const RECT & rcBoundsAll,
  830. const RECT & rcBoundsIcon,
  831. const RECT & rcBoundsText,
  832. const RECT & rcCtrlClient,
  833. __EXT_MFC_SAFE_LPCTSTR sText,
  834. bool bHover,
  835. bool bPressed,
  836. bool bVisible,
  837. bool bChecked,
  838. bool bExpandMode,
  839. bool bHorzLayout,
  840. bool BigIconView,
  841. bool bEraseQuery
  842. );
  843. }; // struct PAINTSHORTCUTLISTITEMSDATA
  844. virtual void PaintShortcutListItem(
  845. CDC & dc,
  846. CExtPaintManager::PAINTSHORTCUTLISTITEMSDATA & _pslid
  847. );
  848. #endif // (!defined __EXT_MFC_NO_SHORTCUTLIST_CTRL)
  849. virtual void OnSysColorChange();
  850. virtual void OnSettingChange(
  851. UINT uFlags,
  852. __EXT_MFC_SAFE_LPCTSTR lpszSection
  853. );
  854. virtual void OnDisplayChange(
  855. INT nDepthBPP,
  856. CPoint ptSizes
  857. );
  858. virtual void OnThemeChanged(
  859. WPARAM wParam,
  860. LPARAM lParam
  861. );
  862. virtual bool OnStateSerialize(
  863. CArchive & ar,
  864. bool bEnableThrowExceptions = false
  865. );
  866. virtual CSize GetToolBarButtonOffset( BOOL bHorz ) const;
  867. struct __PROF_UIS_API PAINTTOOLBARTEXTFIELDDATA
  868. {
  869. CObject * m_pHelperSrc;
  870. LPARAM m_lParam;
  871. UINT m_nDrawTextFlags;
  872. CExtSafeString m_sText;
  873. CRect m_rcButton, m_rcTextField;
  874. bool m_bComboField:1;
  875. bool m_bHover:1;
  876. bool m_bPushed:1;
  877. bool m_bEnabled:1;
  878. PAINTTOOLBARTEXTFIELDDATA();
  879. PAINTTOOLBARTEXTFIELDDATA(
  880. CObject * pHelperSrc,
  881. __EXT_MFC_SAFE_LPCTSTR sText,
  882. const RECT & rcButton,
  883. const RECT & rcTextField,
  884. bool bComboField,
  885. bool bHover,
  886. bool bPushed,
  887. bool bEnabled
  888. );
  889. }; // struct PAINTTOOLBARTEXTFIELDDATA
  890. virtual void PaintToolbarTextField(
  891. CDC & dc,
  892. PAINTTOOLBARTEXTFIELDDATA & _ptbtfd
  893. );
  894. virtual COLORREF GetIconAlphaColor() const;
  895. virtual double GetIconAlphaAdjustPercent() const;
  896. virtual bool AdjustIcon( 
  897. CExtCmdIcon * pIcon
  898. );
  899. virtual CSize FixedBar_GetRoundedAreaMerics() const;
  900. virtual CSize GetResizingGriperSize(
  901. CObject * pHelperSrc,
  902. LPARAM lParam = 0L
  903. ) const;
  904. virtual void PaintResizingGripper(
  905. CDC & dc,
  906. const RECT & rcGrip,
  907. CObject * pHelperSrc,
  908. LPARAM lParam = 0L
  909. );
  910. #if (!defined __EXT_MFC_NO_PAGE_NAVIGATOR )
  911. virtual INT PageNavigator_GetSplitterHeight() const;
  912. virtual INT PageNavigator_GetItemCaptionHeight() const;
  913. virtual INT PageNavigator_GetItemPaneCaptionHeight() const;
  914. virtual void PaintPageNavigatorClientArea(
  915. CDC & dc,
  916. const RECT & rcClient,
  917. CObject * pHelperSrc
  918. );
  919. virtual void PaintPageNavigatorBorder(
  920. CDC & dc,
  921. const RECT & rcControl
  922. );
  923. virtual void PaintPageNavigatorItem(
  924. CDC & dc,
  925. const CRect & rcItem,
  926. __EXT_MFC_SAFE_LPCTSTR strCaption,
  927. CExtCmdIcon * pIcon,
  928. bool bExpanded,
  929. bool bSelected,
  930. bool bPushed,
  931. bool bHover
  932. );
  933. virtual void PaintPageNavigatorItemCaptionText(
  934. CDC & dc,
  935. const CRect & rcCaption,
  936. __EXT_MFC_SAFE_LPCTSTR strCaption
  937. );
  938. virtual void PaintPageNavigatorItemCaption(
  939. CDC & dc,
  940. const CRect & rcCaption,
  941. __EXT_MFC_SAFE_LPCTSTR strCaption
  942. );
  943. virtual void PaintPageNavigatorCaption(
  944. CDC & dc,
  945. const CRect & rcItem,
  946. __EXT_MFC_SAFE_LPCTSTR strCaption,
  947. CExtCmdIcon * pIcon,
  948. bool bExpanded,
  949. bool bSelected,
  950. bool bPushed,
  951. bool bHover,
  952. bool bAllowInvertTextColor = true,
  953. COLORREF clrForceText = COLORREF(-1L)
  954. );
  955. virtual void PaintPageNavigatorCaptionTextImpl(
  956. CDC & dc,
  957. const CRect & rcItem,
  958. __EXT_MFC_SAFE_LPCTSTR strCaption
  959. );
  960. virtual void PaintPageNavigatorCaptionText(
  961. CDC & dc,
  962. const CRect & rcItem,
  963. __EXT_MFC_SAFE_LPCTSTR strCaption,
  964. bool bSelected,
  965. bool bPushed,
  966. bool bHover,
  967. bool bAllowInvertTextColor = true,
  968. COLORREF clrForceText = COLORREF(-1L)
  969. );
  970. virtual void PaintPageNavigatorItemPaneCaptionTextImpl(
  971. CDC & dc,
  972. const CRect & rcCaption,
  973. __EXT_MFC_SAFE_LPCTSTR strCaption
  974. );
  975. virtual void PaintPageNavigatorItemPaneCaptionText(
  976. CDC & dc,
  977. const CRect & rcCaption,
  978. __EXT_MFC_SAFE_LPCTSTR strCaption
  979. );
  980. virtual void PaintPageNavigatorItemPaneCaption(
  981. CDC & dc,
  982. const CRect & rcCaption,
  983. __EXT_MFC_SAFE_LPCTSTR strCaption,
  984. bool bHover,
  985. bool bPressed,
  986. bool bExpandable,
  987. bool bExpanded,
  988. bool bDrawTopLine = true
  989. );
  990. virtual void PaintPageNavigatorConfigButton(
  991. CDC & dc,
  992. const CRect & rcItem,
  993. bool bPushed,
  994. bool bHover
  995. );
  996. virtual void PaintPageNavigatorSplitter(
  997. CDC & dc,
  998. const CRect & rcSplitter,
  999. bool bDrawDots = true
  1000. );
  1001. virtual void PaintPageNavigatorSplitterDots(
  1002. CDC & dc,
  1003. const CRect & rcSplitter,
  1004. INT nOffsetV = 0
  1005. );
  1006. virtual void PaintPageNavigatorSplitterDotsImpl(
  1007. CDC & dc,
  1008. const CRect & rcSplitter,
  1009. COLORREF clrDark,
  1010. COLORREF clrLight,
  1011. INT nOffsetV = 0,
  1012. INT nDotCount = 9
  1013. );
  1014. #endif // (!defined __EXT_MFC_NO_PAGE_NAVIGATOR )
  1015. #if (!defined __EXT_MFC_NO_TASK_PANE )
  1016. virtual void TaskPanePaintClientArea(
  1017. CDC & dc,
  1018. const RECT & rcClient,
  1019. CObject * pHelperSrc
  1020. );
  1021. virtual void TaskPanePaintClientAreaToolbar(
  1022. CDC & dc,
  1023. const RECT & rcClient,
  1024. CObject * pHelperSrc
  1025. );
  1026. virtual void TaskPanePaintBorder(
  1027. CDC & dc,
  1028. const RECT & rcClient,
  1029. CObject * pHelperSrc
  1030. );
  1031. virtual void TaskPanePaintGroupCaptionBackground(
  1032. CDC & dc,
  1033. const CRect & rcCaption,
  1034. bool bHover,
  1035. bool bPressed,
  1036. bool bHighlighted,
  1037. bool bRoundedLeftTopCorner,
  1038. bool bRoundedRightTopCorner,
  1039. bool bGradient2Steps,
  1040. CObject * pHelperSrc
  1041. );
  1042. virtual void TaskPanePaintGroupCaption(
  1043. CDC & dc,
  1044. const CRect & rcCaption,
  1045. __EXT_MFC_SAFE_LPCTSTR strCaption,
  1046. bool bHover,
  1047. bool bPressed,
  1048. bool bHighlighted,
  1049. bool bPaintExpandButton,
  1050. bool bExpanded,
  1051. CObject * pHelperSrc
  1052. );
  1053. virtual void TaskPanePaintGroupCaptionText(
  1054. CDC & dc,
  1055. const CRect & rcText,
  1056. __EXT_MFC_SAFE_LPCTSTR strText,
  1057. bool bHover,
  1058. bool bPressed,
  1059. bool bHighlighted,
  1060. CObject * pHelperSrc
  1061. );
  1062. virtual CRect TaskPaneQueryMarginsPage() const;
  1063. virtual LONG TaskPaneQueryGroupSpacing() const;
  1064. virtual LONG TaskPaneQueryGroupCaptionMinHeight() const;
  1065. virtual CRect TaskPaneQueryGroupCaptionTextMargins() const;
  1066. virtual HFONT TaskPaneQueryGroupCaptionFont();
  1067. #endif // (!defined __EXT_MFC_NO_TASK_PANE )
  1068. #if (!defined __EXT_MFC_NO_DATE_PICKER)
  1069. virtual void PaintDatePickerPushButton(
  1070. CDC & dc,
  1071. const CRect & rcButton,
  1072. LONG nButtonType, // __EDPWH_BTN_NONE or __EDPWH_BTN_TODAY
  1073. __EXT_MFC_SAFE_LPCTSTR strCaption,
  1074. bool bFlat,
  1075. bool bDrawBorder,
  1076. bool bPushed,
  1077. bool bHover,
  1078. HFONT hFont,
  1079. CObject * pHelperSrc,
  1080. LPARAM lParam = 0L
  1081. );
  1082. virtual void PaintDatePickerButtonsSeparator(
  1083. CDC & dc,
  1084. const RECT & rcSeparator,
  1085. CObject * pHelperSrc,
  1086. LPARAM lParam = 0L
  1087. );
  1088. virtual void PaintDatePickerClientArea(
  1089. CDC & dc,
  1090. const RECT & rcTotalClient,
  1091. const RECT & rcUsedClient,
  1092. CObject * pHelperSrc,
  1093. LPARAM lParam = 0L
  1094. );
  1095. virtual void PaintDatePickerBorder(
  1096. CDC & dc,
  1097. const RECT & rcControl,
  1098. CObject * pHelperSrc,
  1099. LPARAM lParam = 0L
  1100. );
  1101. virtual void PaintDatePickerHeaderBackground(
  1102. INT nCol,
  1103. INT nRow,
  1104. CDC & dc,
  1105. INT nYear,
  1106. INT nMonth,
  1107. const RECT & rcHeader,
  1108. const RECT & rcHeaderWithoutBorders,
  1109. const RECT & rcHeaderDate,
  1110. const RECT & rcScrollBtnBackward,
  1111. const RECT & rcScrollBtnForward,
  1112. CObject * pHelperSrc,
  1113. LPARAM lParam = 0L
  1114. );
  1115. #endif // (!defined __EXT_MFC_NO_DATE_PICKER)
  1116. #ifndef __EXT_MFC_NO_UNDO_REDO_POPUP
  1117. virtual void PaintUndoRedoCaption(
  1118. CDC & dc,
  1119. const CRect & rcCaption,
  1120. __EXT_MFC_SAFE_LPCTSTR strCaption,
  1121. CObject * pHelperSrc,
  1122. LPARAM lParam = 0L
  1123. );
  1124. #endif // __EXT_MFC_NO_UNDO_REDO_POPUP
  1125. #if( !defined __EXT_MFC_NO_SPIN || !defined __EXT_MFC_NO_DURATIONWND )
  1126. virtual CRect Spin_QueryNcAreaMargins(
  1127. bool bSpinAlignRight,
  1128. bool bSpinAlignLeft,
  1129. bool bHasScrolBars
  1130. ) const;
  1131. virtual void PaintSpinButtonArrow(
  1132. CDC & dc,
  1133. const CRect & rcButton,
  1134. bool bUp,
  1135. bool bHorz,
  1136. bool bEnabled,
  1137. bool bPushed,
  1138. bool bHover,
  1139. bool bHotTrack,
  1140. CObject * pHelperSrc,
  1141. LPARAM lParam = 0L
  1142. );
  1143. virtual void PaintSpinButton(
  1144. CDC & dc,
  1145. const CRect & rcButton,
  1146. bool bUp,
  1147. bool bHorz,
  1148. bool bEnabled,
  1149. bool bFlat,
  1150. bool bDrawBorder,
  1151. bool bPushed,
  1152. bool bHover,
  1153. bool bHotTrack,
  1154. CObject * pHelperSrc,
  1155. LPARAM lParam = 0L
  1156. );
  1157. #endif // #if( !defined __EXT_MFC_NO_SPIN || !defined __EXT_MFC_NO_DURATIONWND )
  1158. #ifndef __EXT_MFC_NO_SLIDER
  1159. virtual bool PaintSliderChannel(
  1160. CDC & dc,
  1161. const CRect & rcChannel,
  1162. bool bHorz,
  1163. bool bEnabled,
  1164. CObject * pHelperSrc,
  1165. LPARAM lParam = 0L
  1166. );
  1167. virtual bool PaintSliderThumb(
  1168. CDC & dc,
  1169. const CRect & rcThumb,
  1170. bool bHorz,
  1171. bool bLeft,
  1172. bool bRight,
  1173. bool bEnabled,
  1174. bool bPushed,
  1175. bool bFocused,
  1176. bool bHover,
  1177. CObject * pHelperSrc,
  1178. LPARAM lParam = 0L
  1179. );
  1180. virtual bool PaintSliderTics(
  1181. CDC & dc,
  1182. const CRect & rcClient,
  1183. bool bHorz,
  1184. bool bEnabled,
  1185. CObject * pHelperSrc,
  1186. LPARAM lParam = 0L
  1187. );
  1188. #endif // __EXT_MFC_NO_SLIDER
  1189. #ifndef __EXT_MFC_NO_DURATIONWND
  1190. virtual INT Duration_GetSpinButtonWidth(
  1191. const CObject * pHelperSrc,
  1192. LPARAM lParam = 0L
  1193. ) const;
  1194. virtual INT Duration_GetDropDownButtonWidth(
  1195. const CObject * pHelperSrc,
  1196. LPARAM lParam = 0L
  1197. ) const;
  1198. virtual CRect Duration_GetSpinButtonExtraSpace(
  1199. const CObject * pHelperSrc,
  1200. LPARAM lParam = 0L
  1201. ) const;
  1202. virtual CRect Duration_GetDropDownButtonExtraSpace(
  1203. const CObject * pHelperSrc,
  1204. LPARAM lParam = 0L
  1205. ) const;
  1206. virtual void Duration_PaintSpinButton(
  1207. CDC & dc,
  1208. const CRect & rcButton,
  1209. bool bUp,
  1210. bool bEnabled,
  1211. bool bPushed,
  1212. bool bHovered,
  1213. CObject * pHelperSrc,
  1214. LPARAM lParam = 0L
  1215. );
  1216. virtual void Duration_PaintDropDownButton(
  1217. CDC & dc,
  1218. const CRect & rcButton,
  1219. bool bEnabled,
  1220. bool bPushed,
  1221. bool bHovered,
  1222. CObject * pHelperSrc,
  1223. LPARAM lParam = 0L
  1224. );
  1225. #endif // __EXT_MFC_NO_DURATIONWND
  1226. #if (defined __EXT_PM_BACK_COMPATIBILITY_BITMAP_API)
  1227. static HBITMAP stat_ColorizeMonochromeBitmap(
  1228. HBITMAP hBitmapSrc,
  1229. COLORREF clrTransparent,
  1230. COLORREF clrTarget
  1231. );
  1232. static HBITMAP stat_HLS_Adjust_Bitmap(
  1233. HBITMAP hBitmapSrc,
  1234. COLORREF clrTransparent = RGB(0,0,0),
  1235. COLORREF clrTolerance = RGB(0,0,0),
  1236. double percentH = 0.0,
  1237. double percentL = 0.0,
  1238. double percentS = 0.0
  1239. );
  1240. static bool stat_HLS_Adjust_Bitmap(
  1241. CBitmap & _bmp,
  1242. COLORREF clrTransparent = RGB(0,0,0),
  1243. COLORREF clrTolerance = RGB(0,0,0),
  1244. double percentH = 0.0,
  1245. double percentL = 0.0,
  1246. double percentS = 0.0
  1247. );
  1248. static HRGN stat_HBITMAPtoHRGN(
  1249. HBITMAP hBitmap,
  1250. COLORREF clrTransparent,
  1251. COLORREF clrTolerance = RGB(0,0,0)
  1252. );
  1253. #endif // __EXT_PM_BACK_COMPATIBILITY_BITMAP_API
  1254. enum eStyle2005_t
  1255. {
  1256. __ES2005_BETA1 = 1,
  1257. __ES2005_BETA2 = 2,
  1258. __ES2005_RC = 3,
  1259. };
  1260. eStyle2005_t m_eStyle2005;
  1261. #if (!defined __EXT_MFC_NO_DOCK_MARKERS)
  1262. enum eDockMarkerType_t
  1263. {
  1264. __EDMT_2005_TOP = 0,
  1265. __EDMT_2005_BOTTOM = 1,
  1266. __EDMT_2005_LEFT = 2,
  1267. __EDMT_2005_RIGHT = 3,
  1268. __EDMT_2005_CENTER = 4,
  1269. __EDMT_2005_GROUP_SPARSED = 5,
  1270. __EDMT_2005_GROUP_CENTRAL = 6,
  1271. #if (!defined __EXT_MFC_NO_TAB_CONTROLBARS )
  1272. __EDMT_2005_GROUP_TAB = 7,
  1273. __EDMT_2005_TAB = 8,
  1274. #endif // (!defined __EXT_MFC_NO_TAB_CONTROLBARS )
  1275. __EDMT_MIN_VALUE = 0,
  1276. #if (!defined __EXT_MFC_NO_TAB_CONTROLBARS )
  1277. __EDMT_MAX_VALUE = 8,
  1278. #else // (!defined __EXT_MFC_NO_TAB_CONTROLBARS )
  1279. __EDMT_MAX_VALUE = 6,
  1280. #endif // else from (!defined __EXT_MFC_NO_TAB_CONTROLBARS )
  1281. __EDMT_EMPTY = -1
  1282. };
  1283. class __PROF_UIS_API DockMarkerBase
  1284. {
  1285. public:
  1286. eDockMarkerType_t m_eDockMarkerType;
  1287. CExtBitmapCache m_bmpIn, m_bmpOut, m_bmpOuterBk;
  1288. CPoint m_ptOffsetInner;
  1289. CRgn m_rgn;
  1290. CSize m_size;
  1291. CTypedPtrArray < CPtrArray, DockMarkerBase * > m_arrChildren;
  1292. CRect m_rcScreen;
  1293. bool m_bSparsedMode:1;
  1294. protected:
  1295. CExtPaintManager * m_pPM;
  1296. int m_eResizablePanelDockingType;
  1297. virtual void _EmptyChildren();
  1298. virtual void _DetachHandles();
  1299. public:
  1300. DockMarkerBase(
  1301. CExtPaintManager * pPM,
  1302. int eResizablePanelDockingType,
  1303. eDockMarkerType_t eDockMarkerType = __EDMT_EMPTY,
  1304. CRect rcScreen = CRect( 0, 0, 0, 0 )
  1305. );
  1306. virtual ~DockMarkerBase();
  1307. virtual bool IsEmpty() const;
  1308. virtual void Empty();
  1309. bool CreateFromBitmapResources(
  1310. CRect rcScreen,
  1311. eDockMarkerType_t eDockMarkerType,
  1312. COLORREF clrTransparentIn,
  1313. UINT nResourceBmpIn,
  1314. UINT nResourceBmpOut,
  1315. __EXT_MFC_SAFE_LPCTSTR strResourceTypeBmpIn = RT_BITMAP, // default bitmap section
  1316. __EXT_MFC_SAFE_LPCTSTR strResourceTypeBmpOut = RT_BITMAP, // default bitmap section
  1317. HINSTANCE hInstBmpIn = NULL, // find it automatically
  1318. HINSTANCE hInstBmpOut = NULL // find it automatically
  1319. );
  1320. virtual bool CreateFromBitmapResources(
  1321. CRect rcScreen,
  1322. eDockMarkerType_t eDockMarkerType,
  1323. COLORREF clrTransparentIn,
  1324. __EXT_MFC_SAFE_LPCTSTR strResourceBmpIn,
  1325. __EXT_MFC_SAFE_LPCTSTR strResourceBmpOut = NULL,
  1326. __EXT_MFC_SAFE_LPCTSTR strResourceTypeBmpIn = RT_BITMAP, // default bitmap section
  1327. __EXT_MFC_SAFE_LPCTSTR strResourceTypeBmpOut = RT_BITMAP, // default bitmap section
  1328. HINSTANCE hInstBmpIn = NULL, // find it automatically
  1329. HINSTANCE hInstBmpOut = NULL // find it automatically
  1330. );
  1331. bool CreateFromBitmapData(
  1332. CRect rcScreen,
  1333. eDockMarkerType_t eDockMarkerType,
  1334. COLORREF clrTransparentIn,
  1335. const BYTE * pDataBmpIn,
  1336. DWORD dwSizeDataBmpIn,
  1337. const BYTE * pDataBmpOut = NULL,
  1338. DWORD dwSizeDataBmpOut = 0
  1339. );
  1340. virtual bool CreateFromBitmaps(
  1341. CRect rcScreen,
  1342. eDockMarkerType_t eDockMarkerType,
  1343. COLORREF clrTransparentIn,
  1344. const CExtBitmap & _bmpIn,
  1345. const CExtBitmap & _bmpOut
  1346. );
  1347. virtual bool Create(
  1348. bool bCentralMode,
  1349. eDockMarkerType_t eDockMarkerType = __EDMT_EMPTY,
  1350. CRect rcScreen = CRect( 0, 0, 0, 0 )
  1351. );
  1352. virtual bool DockMarker_CreateWnds(
  1353. HWND hWndLastDynamicTarget,
  1354. CTypedPtrArray < CPtrArray, CExtDynDockMarkerWnd * > & arrDockMarkerWnds,
  1355. CExtDynDockMarkerWnd * pWndParentMarker
  1356. );
  1357. virtual void OnCalcScreenRect(
  1358. eDockMarkerType_t eDockMarkerType,
  1359. CRect rcScreen,
  1360. DockMarkerBase * pCenterMarker = NULL
  1361. );
  1362. }; // class DockMarkerBase
  1363. class __PROF_UIS_API DockMarkerBeta2 : public DockMarkerBase
  1364. {
  1365. public:
  1366. DockMarkerBeta2(
  1367. CExtPaintManager * pPM,
  1368. int eResizablePanelDockingType,
  1369. eDockMarkerType_t eDockMarkerType = __EDMT_EMPTY,
  1370. CRect rcScreen = CRect( 0, 0, 0, 0 )
  1371. );
  1372. virtual ~DockMarkerBeta2();
  1373. virtual bool Create(
  1374. bool bCentralMode,
  1375. eDockMarkerType_t eDockMarkerType = __EDMT_EMPTY,
  1376. CRect rcScreen = CRect( 0, 0, 0, 0 )
  1377. );
  1378. virtual void OnCalcScreenRect(
  1379. eDockMarkerType_t eDockMarkerType,
  1380. CRect rcScreen,
  1381. DockMarkerBase * pCenterMarker = NULL
  1382. );
  1383. }; // class DockMarkerBeta2
  1384. class __PROF_UIS_API DockMarker2008XP : public DockMarkerBase
  1385. {
  1386. public:
  1387. DockMarker2008XP(
  1388. CExtPaintManager * pPM,
  1389. int eResizablePanelDockingType,
  1390. eDockMarkerType_t eDockMarkerType = __EDMT_EMPTY,
  1391. CRect rcScreen = CRect( 0, 0, 0, 0 )
  1392. );
  1393. virtual ~DockMarker2008XP();
  1394. virtual bool Create(
  1395. bool bCentralMode,
  1396. eDockMarkerType_t eDockMarkerType = __EDMT_EMPTY,
  1397. CRect rcScreen = CRect( 0, 0, 0, 0 )
  1398. );
  1399. virtual void OnCalcScreenRect(
  1400. eDockMarkerType_t eDockMarkerType,
  1401. CRect rcScreen,
  1402. DockMarkerBase * pCenterMarker = NULL
  1403. );
  1404. }; // class DockMarker2008XP
  1405. class __PROF_UIS_API DockMarker2008Vista : public DockMarkerBase
  1406. {
  1407. public:
  1408. DockMarker2008Vista(
  1409. CExtPaintManager * pPM,
  1410. int eResizablePanelDockingType,
  1411. eDockMarkerType_t eDockMarkerType = __EDMT_EMPTY,
  1412. CRect rcScreen = CRect( 0, 0, 0, 0 )
  1413. );
  1414. virtual ~DockMarker2008Vista();
  1415. virtual bool Create(
  1416. bool bCentralMode,
  1417. eDockMarkerType_t eDockMarkerType = __EDMT_EMPTY,
  1418. CRect rcScreen = CRect( 0, 0, 0, 0 )
  1419. );
  1420. virtual void OnCalcScreenRect(
  1421. eDockMarkerType_t eDockMarkerType,
  1422. CRect rcScreen,
  1423. DockMarkerBase * pCenterMarker = NULL
  1424. );
  1425. }; // class DockMarker2008Vista
  1426. virtual DockMarkerBase * DockMarker_CreateObject(
  1427. int eResizablePanelDockingType
  1428. );
  1429. virtual bool DockMarker_CreateWnds(
  1430. HWND hWndLastDynamicTarget,
  1431. eDockMarkerType_t eDockMarkerType,
  1432. CRect rcScreen,
  1433. CTypedPtrArray < CPtrArray, CExtDynDockMarkerWnd * > & arrDockMarkerWnds,
  1434. int eResizablePanelDockingType,
  1435. CExtDynDockMarkerWnd * pWndParentMarker
  1436. );
  1437. virtual void DockMarker_PostRender(
  1438. CDC & dc,
  1439. CRect rcItem,
  1440. eDockMarkerType_t eMarkerType,
  1441. bool bHover,
  1442. CObject * pHelperSrc,
  1443. LPARAM lParam = 0L
  1444. );
  1445. virtual CRect DockMarker_GetOuterDistance();
  1446. virtual BYTE DockMarker_GetAlpha(
  1447. bool bHighlight,
  1448. CObject * pHelperSrc,
  1449. LPARAM lParam = 0L
  1450. );
  1451. virtual bool DockMarker_IsAdjustBmpsRequired(
  1452. eDockMarkerType_t eDockMarkerType
  1453. ) const;
  1454. virtual void DockMarker_AdjustBmps(
  1455. eDockMarkerType_t eDockMarkerType,
  1456. CExtBitmap & bmpIn,
  1457. COLORREF clrTransparentIn,
  1458. CExtBitmap & bmpOut,
  1459. COLORREF clrTransparentOut
  1460. );
  1461. virtual void DockMarker_AdjustHighlightedArea(
  1462. COLORREF * pClrSurface,
  1463. int nClrSurfaceDX,
  1464. int nClrSurfaceDY,
  1465. bool bTabShape,
  1466. bool bTabsAtTop,
  1467. const CRect & rcTabMainArea,
  1468. const CRect & rcTabBottomMiddleArea,
  1469. COLORREF clrAdjustMain = COLORREF(-1L),
  1470. COLORREF clrAdjustBorder = COLORREF(-1L),
  1471. int nBorderMetric = 2
  1472. );
  1473. virtual void DockMarker_AdjustHighlightedLayer(
  1474. HWND hWnd,
  1475. int nDX,
  1476. int nDY,
  1477. bool bTabShape,
  1478. bool bTabsAtTop,
  1479. const CRect & rcTabMainArea,
  1480. const CRect & rcTabBottomMiddleArea,
  1481. COLORREF clrAdjustMain = COLORREF(-1L),
  1482. COLORREF clrAdjustBorder = COLORREF(-1L),
  1483. int nBorderMetric = 2
  1484. );
  1485. #endif // (!defined __EXT_MFC_NO_DOCK_MARKERS)
  1486. virtual void PaintBarButtonCombinedArea(
  1487. CDC & dc,
  1488. CExtBarButton * pTBB,
  1489. LPARAM lParam = 0L
  1490. );
  1491. virtual COLORREF QueryObjectTextColor(
  1492. CDC & dc,
  1493. bool bEnabled,
  1494. bool bFocused,
  1495. bool bHovered,
  1496. bool bPressed,
  1497. CObject * pHelperSrc,
  1498. LPARAM lParam = 0L
  1499. );
  1500. virtual bool PaintGroupBoxFrame(
  1501. CDC & dc,
  1502. const RECT & rcBorder,
  1503. COLORREF clrFrame = COLORREF(-1L),
  1504. CObject * pHelperSrc = NULL,
  1505. LPARAM lParam = 0L
  1506. );
  1507. virtual bool PaintGroupBoxLabel(
  1508. CDC & dc,
  1509. __EXT_MFC_SAFE_LPCTSTR strText,
  1510. COLORREF clrText,
  1511. HFONT hFont,
  1512. DWORD dwDrawTextFlags,
  1513. bool bEnabled,
  1514. const RECT & rcText,
  1515. CObject * pHelperSrc,
  1516. LPARAM lParam = 0L
  1517. );
  1518. static COLORREF stat_PaintShadedEllipse_ComputeColorValue(
  1519. double lfA,
  1520. COLORREF clrShadeAccentLight,
  1521. COLORREF clrShadeAccentDark
  1522. );
  1523. static void stat_PaintShadedEllipse(
  1524. HDC hDC,
  1525. const POINT & ptEllipseCenter,
  1526. LONG nRadiusH,
  1527. LONG nRadiusV,
  1528. COLORREF clrShadeAccentLight,
  1529. COLORREF clrShadeAccentDark
  1530. );
  1531. virtual bool ScrollBar_GetMetrics(
  1532. INT * p_nHorzBarHeight = NULL,
  1533. INT * p_nVertBarWidth = NULL,
  1534. INT * p_nHorzButtonWidth = NULL,
  1535. INT * p_nVertButtonHeight = NULL,
  1536. INT * p_nHorzThumbMinWidth = NULL,
  1537. INT * p_nVertThumbMinHeight = NULL,
  1538. CObject * pHelperSrc = NULL,
  1539. LPARAM lParam = 0L
  1540. ) const;
  1541. enum e_scroll_bar_mouse_hover_type_t
  1542. {
  1543. __ESBMHT_NOWHERE                  = -1,
  1544. __ESBMHT_SOLID_SCROLLABLE_AREA    = 0, // basically used for disabled state
  1545. __ESBMHT_BUTTON_UP                = 1,
  1546. __ESBMHT_BUTTON_DOWN              = 2,
  1547. __ESBMHT_THUMB                    = 3,
  1548. __ESBMHT_PAGE_UP                  = 4,
  1549. __ESBMHT_PAGE_DOWN                = 5,
  1550. __ESBMHT_GLYPH_ARROW_UP           = 6, // for skinning purposes only
  1551. __ESBMHT_GLYPH_ARROW_DOWN         = 7, // for skinning purposes only
  1552. __ESBMHT_GLYPH_THUMB_GRIPPER      = 8, // for skinning purposes only
  1553. __ESBMHT_PART_COUNT               = 9, // for using as array dimension
  1554. }; // enum e_scroll_bar_mouse_hover_type_t
  1555. enum e_scroll_bar_skin_part_t
  1556. {
  1557. __ESBSPT_DISABLED                 = 0,
  1558. __ESBSPT_COLD                     = 1,
  1559. __ESBSPT_NORMAL                   = 2,
  1560. __ESBSPT_HOT                      = 3,
  1561. __ESBSPT_PRESSED                  = 4,
  1562. __ESBSPT_PART_COUNT               = 5, // for using as array dimension
  1563. }; // enum e_scroll_bar_skin_part_t
  1564. struct __PROF_UIS_API SCROLLBARSKINDATA
  1565. {
  1566. CExtBitmapCache m_arrPartBmp[__ESBSPT_PART_COUNT][__ESBMHT_PART_COUNT];
  1567. CRect m_arrPartPadding[__ESBSPT_PART_COUNT][__ESBMHT_PART_COUNT];
  1568. COLORREF m_arrClrSolidBackground[__ESBSPT_PART_COUNT][__ESBMHT_PART_COUNT];
  1569. COLORREF m_clrZsLineLightEnabled, m_clrZsLineDarkEnabled, m_clrZsLineLightDisabled, m_clrZsLineDarkDisabled;
  1570. CExtBitmapCache m_bmpEntireArea;
  1571. CRect m_rcEntirePaddingR, m_rcEntirePaddingC;
  1572. SCROLLBARSKINDATA();
  1573. virtual ~SCROLLBARSKINDATA();
  1574. virtual void Empty();
  1575. virtual CExtBitmap & GetPart(
  1576. e_scroll_bar_skin_part_t ePartState,
  1577. e_scroll_bar_mouse_hover_type_t eSBMHT, // part type
  1578. RECT * pRectPadding = NULL,
  1579. COLORREF * pClrSolidBackground = NULL
  1580. );
  1581. const CExtBitmap & GetPart(
  1582. e_scroll_bar_skin_part_t ePartState,
  1583. e_scroll_bar_mouse_hover_type_t eSBMHT, // part type
  1584. RECT * pRectPadding = NULL,
  1585. COLORREF * pClrSolidBackground = NULL
  1586. ) const;
  1587. virtual void Load2007_Zoom(
  1588. UINT nResourceID_ButtonPlus,
  1589. UINT nResourceID_ButtonMinus,
  1590. UINT nResourceID_ButtonThumb,
  1591. COLORREF clrZsLineLightEnabled,
  1592. COLORREF clrZsLineDarkEnabled,
  1593. COLORREF clrZsLineLightDisabled,
  1594. COLORREF clrZsLineDarkDisabled,
  1595. UINT nDockID,
  1596. bool bResourceColorChannelsPreMultiplied = true
  1597. );
  1598. virtual void Load2010_Zoom_R1(
  1599. UINT nResourceID_ButtonPlus,
  1600. UINT nResourceID_ButtonMinus,
  1601. UINT nResourceID_ButtonThumb,
  1602. COLORREF clrZsLineLightEnabled,
  1603. COLORREF clrZsLineDarkEnabled,
  1604. COLORREF clrZsLineLightDisabled,
  1605. COLORREF clrZsLineDarkDisabled,
  1606. UINT nDockID,
  1607. bool bResourceColorChannelsPreMultiplied = true
  1608. );
  1609. virtual void Load2010_Zoom_R2(
  1610. UINT nResourceID_ButtonPlus,
  1611. UINT nResourceID_ButtonMinus,
  1612. UINT nResourceID_ButtonThumb,
  1613. COLORREF clrZsLineLightEnabled,
  1614. COLORREF clrZsLineDarkEnabled,
  1615. COLORREF clrZsLineLightDisabled,
  1616. COLORREF clrZsLineDarkDisabled,
  1617. UINT nDockID,
  1618. bool bResourceColorChannelsPreMultiplied = true
  1619. );
  1620. virtual void Load2007_R1(
  1621. UINT nResourceID_BumpyGlyphStack,
  1622. INT nBumpyGlyphStackItemHeight,
  1623. UINT nResourceID_Gripper,
  1624. const RECT & rcBumpyGlyphStackItemPadding,
  1625. COLORREF clrSolidBackground,
  1626. COLORREF clrPressedPageAreas,
  1627. UINT nResourceID_ArrowUp_Normal,
  1628. UINT nResourceID_ArrowUp_Disabled,
  1629. UINT nResourceID_ArrowDown_Normal,
  1630. UINT nResourceID_ArrowDown_Disabled,
  1631. bool bRotateArrowsAndBk270,
  1632. UINT nResourceID_BkEntire,
  1633. UINT nResourceID_BkPage,
  1634. const RECT & rcEntirePaddingR,
  1635. const RECT & rcEntirePaddingC
  1636. );
  1637. virtual void Load2007_R2(
  1638. UINT nResourceID_BumpyGlyphStack,
  1639. INT nBumpyGlyphStackItemHeight,
  1640. UINT nResourceID_GripperStack,
  1641. INT nGripperStackItemHeight,
  1642. const RECT & rcBumpyGlyphStackItemPadding,
  1643. COLORREF clrSolidBackground,
  1644. COLORREF clrPressedPageAreas,
  1645. UINT nResourceID_ArrowUp_Normal,
  1646. UINT nResourceID_ArrowUp_Disabled,
  1647. UINT nResourceID_ArrowDown_Normal,
  1648. UINT nResourceID_ArrowDown_Disabled,
  1649. bool bRotateArrowsAndBk270,
  1650. UINT nResourceID_BkEntire,
  1651. UINT nResourceID_BkPage,
  1652. const RECT & rcEntirePaddingR,
  1653. const RECT & rcEntirePaddingC
  1654. );
  1655. }; // struct SCROLLBARSKINDATA
  1656. struct __PROF_UIS_API PAINTSCROLLBARDATA
  1657. {
  1658. bool m_bHorzBar:1, m_bEnabled:1, m_bHoveredAreaIsPressed:1, m_bHelperLightAccent:1;
  1659. e_scroll_bar_mouse_hover_type_t m_eSBMHT;
  1660. CRect m_rcBar, m_rcPageUp, m_rcPageDown,
  1661. m_rcButtonUp, m_rcButtonDown, m_rcThumb,
  1662. m_rcScrollableArea;
  1663. CObject * m_pHelperSrc;
  1664. LPARAM m_lParam;
  1665. SCROLLINFO m_DSI;
  1666. PAINTSCROLLBARDATA();
  1667. PAINTSCROLLBARDATA(
  1668. bool bHorzBar,
  1669. bool bEnabled,
  1670. bool bHoveredAreaIsPressed,
  1671. e_scroll_bar_mouse_hover_type_t eSBMHT,
  1672. const RECT & rcBar,
  1673. const RECT & rcButtonUp,
  1674. const RECT & rcButtonDown,
  1675. const RECT & rcThumb,
  1676. const RECT & rcPageUp,
  1677. const RECT & rcPageDown,
  1678. CObject * pHelperSrc = NULL,
  1679. LPARAM lParam = 0L
  1680. );
  1681. PAINTSCROLLBARDATA(
  1682. CExtScrollBar * pExtScrollBar,
  1683. bool bHoveredAreaIsPressed = false,
  1684. e_scroll_bar_mouse_hover_type_t eSBMHT = CExtPaintManager::__ESBMHT_NOWHERE,
  1685. LPARAM lParam = 0L
  1686. );
  1687. virtual ~PAINTSCROLLBARDATA();
  1688. virtual void PaintDefault(
  1689. CDC & dc,
  1690. CExtPaintManager * pPM
  1691. );
  1692. virtual void PaintSkinned(
  1693. CDC & dc,
  1694. CExtPaintManager * pPM,
  1695. const SCROLLBARSKINDATA & _sbsd,
  1696. BYTE nConstantAlpha = 0x0FF
  1697. );
  1698. virtual e_scroll_bar_mouse_hover_type_t GetHT(
  1699. const POINT & pt
  1700. ) const;
  1701. virtual e_scroll_bar_mouse_hover_type_t AdjustHT(
  1702. const POINT & pt
  1703. );
  1704. virtual CRect GetAreaRect(
  1705. e_scroll_bar_mouse_hover_type_t eSBMHT
  1706. ) const;
  1707. virtual CRect GetAreaRectHT() const;
  1708. }; // struct PAINTSCROLLBARDATA
  1709. bool m_bScrollBarsHaveHoverEffectIn2kStyle:1;
  1710. virtual void ScrollBar_Paint(
  1711. CDC & dc,
  1712. PAINTSCROLLBARDATA & _psbd
  1713. ) const;
  1714. virtual SCROLLBARSKINDATA * ScrollBar_GetSkinData(
  1715. bool bHorzBar,
  1716. CObject * pHelperSrc,
  1717. LPARAM lParam = 0L,
  1718. bool bLightAccent = true
  1719. );
  1720. #ifndef __EXT_MFC_NO_GRIDWND
  1721. virtual bool Grid_PaintButton(
  1722. CDC & dc,
  1723. const RECT & rcButton,
  1724. INT nButtonType,
  1725. bool bPressed,
  1726. bool bHovered,
  1727. bool bFocused,
  1728. bool bEnabled,
  1729. COLORREF clrFace,
  1730. COLORREF clrLight,
  1731. COLORREF clrShadow,
  1732. COLORREF clrWindow,
  1733. COLORREF clrText,
  1734. DWORD dwHelperPaintFlags,
  1735. CObject * pHelperSrc,
  1736. LPARAM lParam = 0L
  1737. );
  1738. virtual bool Grid_PaintHeaderSortArrow(
  1739. CDC & dc,
  1740. const RECT & rcSortArrow,
  1741. bool bHorz,
  1742. bool bAscending,
  1743. COLORREF * pColorValues,
  1744. CObject * pHelperSrc,
  1745. LPARAM lParam = 0L
  1746. );
  1747. virtual bool Grid_PaintHeaderBackground(
  1748. CDC & dc,
  1749. const RECT & rcArea,
  1750. LONG nColNo,
  1751. LONG nRowNo,
  1752. INT nColType,
  1753. INT nRowType,
  1754. DWORD dwAreaFlags,
  1755. DWORD dwHelperPaintFlags,
  1756. CObject * pHelperSrc,
  1757. LPARAM lParam = 0L
  1758. );
  1759. virtual COLORREF Grid_OnQueryTextColor(
  1760. const CExtGridCell & _cell,
  1761. CDC & dc,
  1762. LONG nVisibleColNo,
  1763. LONG nVisibleRowNo,
  1764. LONG nColNo,
  1765. LONG nRowNo,
  1766. INT nColType,
  1767. INT nRowType,
  1768. DWORD dwAreaFlags,
  1769. DWORD dwHelperPaintFlags
  1770. );
  1771. #endif // #ifndef __EXT_MFC_NO_GRIDWND
  1772. #if (!defined __EXT_MFC_NO_REPORTGRIDWND)
  1773. virtual bool ReportGrid_PaintHeaderRowBackground(
  1774. CDC & dc,
  1775. const RECT & rcArea,
  1776. CObject * pHelperSrc,
  1777. LPARAM lParam = 0L
  1778. );
  1779. virtual bool ReportGrid_PaintHeaderSortArrow(
  1780. CDC & dc,
  1781. const RECT & rcSortArrow,
  1782. bool bAscending,
  1783. CObject * pHelperSrc,
  1784. LPARAM lParam = 0L
  1785. );
  1786. virtual bool ReportGrid_PaintGroupAreaBackground(
  1787. CDC & dc,
  1788. const RECT & rcArea,
  1789. __EXT_MFC_SAFE_LPCTSTR strEmptyAreaCaption, // not NULL if area is empty
  1790. CObject * pHelperSrc,
  1791. LPARAM lParam = 0L
  1792. );
  1793. virtual COLORREF ReportGrid_GetHeaderTextColor(
  1794. CObject * pHelperSrc,
  1795. LPARAM lParam = 0L
  1796. );
  1797. virtual COLORREF ReportGrid_GetGroupConnectorColor(
  1798. CObject * pHelperSrc,
  1799. LPARAM lParam = 0L
  1800. );
  1801. virtual bool ReportGrid_PaintGroupAreaItemBackground(
  1802. CDC & dc,
  1803. const RECT & rcItem,
  1804. CObject * pHelperSrc,
  1805. LPARAM lParam = 0L
  1806. );
  1807. #endif // (!defined __EXT_MFC_NO_REPORTGRIDWND)
  1808. #if (!defined __EXT_MFC_NO_RIBBON_BAR)
  1809. virtual bool Ribbon_OptionsPageBackgroundIsDefault() const;
  1810. virtual void Ribbon_DwmAreaAdjust(
  1811. CExtRibbonBar * pRibbonBar,
  1812. CExtUxTheme::__EXT_UX_MARGINS & _margins,
  1813. LPARAM lParam = 0L
  1814. );
  1815. virtual bool Ribbon_DwmAreaCoversTabs() const;
  1816. virtual INT Ribbon_GetContractedMarginHeight(
  1817. const CExtRibbonPage * pRibbonPage,
  1818. LPARAM lParam = 0L
  1819. );
  1820. virtual void Ribbon_PaintContractedMargin(
  1821. CDC & dc,
  1822. const CExtRibbonPage * pRibbonPage,
  1823. LPARAM lParam = 0L
  1824. );
  1825. virtual INT Ribbon_GetGroupHeight(
  1826. const CExtRibbonButtonGroup * pGroupTBB,
  1827. LPARAM lParam = 0L
  1828. );
  1829. virtual INT Ribbon_GetToolGroupExtraOffset(
  1830. const CExtRibbonButtonGroup * pGroupTBB,
  1831. LPARAM lParam = 0L
  1832. );
  1833. virtual INT Ribbon_GetToolGroupExtraLineDistance(
  1834. const CExtRibbonButtonGroup * pGroupTBB,
  1835. LPARAM lParam = 0L
  1836. );
  1837. virtual INT Ribbon_GetOuterGroupDistance(
  1838. const CExtBarButton * pTBB,
  1839. bool bDistanceBefore,
  1840. LPARAM lParam = 0L
  1841. );
  1842. virtual CRect Ribbon_GetContentPadding(
  1843. const CExtBarButton * pTBB,
  1844. LPARAM lParam = 0L
  1845. );
  1846. virtual CSize Ribbon_GetIconSize(
  1847. const CObject * pHelperSrc,
  1848. INT nILV,
  1849. LPARAM lParam = 0L
  1850. );
  1851. virtual CSize Ribbon_GetDropDownArrowSize(
  1852. CDC & dc,
  1853. INT nILV,
  1854. const CExtBarButton * pTBB,
  1855. LPARAM lParam = 0L
  1856. );
  1857. virtual INT Ribbon_GetTextToIconDistance(
  1858. CDC & dc,
  1859. INT nILV,
  1860. const CExtBarButton * pTBB,
  1861. LPARAM lParam = 0L
  1862. );
  1863. virtual CSize Ribbon_CalcButtonSize(
  1864. CDC & dc,
  1865. INT nILV,
  1866. const CExtBarButton * pTBB,
  1867. LPARAM lParam = 0L
  1868. );
  1869. virtual INT Ribbon_GroupCaptionGetHeight(
  1870. const CExtRibbonButtonGroup * pGroupTBB,
  1871. LPARAM lParam = 0L
  1872. ) const;
  1873. virtual bool Ribbon_GroupCaptionIsAtTop(
  1874. const CExtRibbonButtonGroup * pGroupTBB,
  1875. LPARAM lParam = 0L
  1876. ) const;
  1877. virtual CExtCmdIcon * Ribbon_GetGroupCollapsedIcon(
  1878. const CExtRibbonButtonGroup * pGroupTBB,
  1879. LPARAM lParam = 0L
  1880. );
  1881. virtual void Ribbon_PaintText(
  1882. CDC & dc,
  1883. __EXT_MFC_SAFE_LPCTSTR strText,
  1884. const RECT & rcText,
  1885. UINT nDrawTextFlags,
  1886. bool bDrawDropDownArrow,
  1887. CExtBitmap * pBmpAlternativeDropDownArrow,
  1888. CObject * pHelperSrc,
  1889. LPARAM lParam = 0L
  1890. );
  1891. virtual void Ribbon_PaintGroupBk(
  1892. CDC & dc,
  1893. const RECT & rcGroupBk,
  1894. const CExtRibbonButtonGroup * pGroupTBB,
  1895. LPARAM lParam = 0L
  1896. );
  1897. virtual bool Ribbon_PaintQuickAccessGroupButton(
  1898. CDC & dc,
  1899. const RECT & rcGroupBk,
  1900. const CExtRibbonButtonGroup * pGroupTBB,
  1901. LPARAM lParam = 0L
  1902. );
  1903. virtual CRect Ribbon_GetPageOuterContentPadding(
  1904. const CExtRibbonPage * pRibbonPage,
  1905. LPARAM lParam = 0L
  1906. );
  1907. virtual void Ribbon_PaintPageBk(
  1908. CDC & dc,
  1909. const RECT & rcPageBk,
  1910. const CExtRibbonPage * pRibbonPage,
  1911. LPARAM lParam = 0L
  1912. );
  1913. virtual void Ribbon_PaintSeparator(
  1914. CDC & dc,
  1915. const RECT & rcTBB,
  1916. const CExtBarButton * pSepTBB, // can be NULL
  1917. LPARAM lParam = 0L
  1918. );
  1919. virtual bool Ribbon_HaveSeparatorsBetweenToolGroups() const;
  1920. virtual CRect Ribbon_CalcLargeDropDownRect(
  1921. const CExtBarButton * pTBB,
  1922. LPARAM lParam = 0L
  1923. );
  1924. virtual void Ribbon_PaintPushButton(
  1925. CDC & dc,
  1926. CExtPaintManager::PAINTPUSHBUTTONDATA & _ppbd
  1927. );
  1928. virtual CRect Ribbon_GetPopupGroupBorderMetrics(
  1929. const CExtRibbonPage * pRibbonPage,
  1930. LPARAM lParam = 0L
  1931. );
  1932. virtual bool Ribbon_IsPopupGroupWithCaption(
  1933. CObject * pHelperSrc,
  1934. LPARAM lParam = 0L
  1935. ) const;
  1936. virtual INT RibbonLayout_CalcQatbAboveRibbonHorzStart(
  1937. CExtRibbonBar * pRibbonBar,
  1938. LPARAM lParam = 0L
  1939. );
  1940. virtual INT RibbonQuickAccessBar_GetBottomHeight(
  1941. const CExtRibbonPage * pRibbonPage,
  1942. LPARAM lParam = 0L
  1943. ) const;
  1944. virtual INT RibbonQuickAccessBar_GetButtonsAlignment(
  1945. const CExtRibbonPage * pRibbonPage,
  1946. LPARAM lParam = 0L
  1947. ) const;
  1948. virtual void RibbonQuickAccessBar_PaintBkAtTheBottom(
  1949. CDC & dc,
  1950. CRect rcQATB,
  1951. const CExtRibbonPage * pRibbonPage,
  1952. LPARAM lParam = 0L
  1953. ) const;
  1954. virtual void RibbonQuickAccessBar_AdjustButtonLocation(
  1955. CExtBarButton * pTBB,
  1956. CRect & rcTBB,
  1957. LPARAM lParam = 0L
  1958. );
  1959. virtual INT RibbonQuickAccessBar_GetAdditionalSpaceAtRight(
  1960. bool bDwmMode,
  1961. CObject * pHelperSrc,
  1962. LPARAM lParam = 0L
  1963. );
  1964. virtual INT Ribbon_GetTabIntersectionHeight(
  1965. const CExtRibbonPage * pRibbonPage,
  1966. LPARAM lParam = 0L
  1967. ) const;
  1968. virtual void Ribbon_PaintTabItem(
  1969. CDC & dc,
  1970. CRect & rcTabItemsArea,
  1971. bool bSelected,
  1972. const CRect & rcEntireItem,
  1973. CFont * pFont,
  1974. __EXT_MFC_SAFE_LPCTSTR sText,
  1975. CExtCmdIcon * pIcon,
  1976. CObject * pHelperSrc,
  1977. LPARAM lParam = 0L,
  1978. COLORREF clrForceText = COLORREF(-1L),
  1979. COLORREF clrForceTabBk = COLORREF(-1L),
  1980. COLORREF clrForceTabBorderLT = COLORREF(-1L),
  1981. COLORREF clrForceTabBorderRB = COLORREF(-1L),
  1982. COLORREF clrForceTabSeparator = COLORREF(-1L)
  1983. );
  1984. virtual void Ribbon_PaintTabClientArea(
  1985. CDC & dc,
  1986. CRect & rcClient,
  1987. CRect & rcTabItemsArea,
  1988. CRect & rcTabNearBorderArea,
  1989. CObject * pHelperSrc,
  1990. LPARAM lParam = 0L
  1991. );
  1992. virtual INT Ribbon_GetTabLineHeight(
  1993. const CExtRibbonPage * pRibbonPage,
  1994. LPARAM lParam = 0L
  1995. ) const;
  1996. virtual HRGN Ribbon_GetRgnCornerExclude(
  1997. CObject * pHelperSrc,
  1998. LPARAM lParam = 0L
  1999. );
  2000. virtual HRGN Ribbon_GetRgnCornerResizing(
  2001. CObject * pHelperSrc,
  2002. LPARAM lParam = 0L
  2003. );
  2004. virtual void Ribbon_NcOverPaint(
  2005. CDC & dc,
  2006. bool bFrameActive,
  2007. INT nWidthFromLeft,
  2008. bool bDwmMode,
  2009. LPCRECT pRectDwmText,
  2010. __EXT_MFC_SAFE_LPCTSTR strDwmCaptionTitle,
  2011. CObject * pHelperSrc,
  2012. LPARAM lParam = 0L
  2013. );
  2014. virtual void Ribbon_EmbeddedCaptionPaintText(
  2015. CDC & dc,
  2016. __EXT_MFC_SAFE_LPCTSTR strCaption,
  2017. CRect rcDrawText,
  2018. __EXT_MFC_SAFE_LPCTSTR strCaptionDelimiter,
  2019. const CExtRibbonBar * pRibbonBar,
  2020. LPARAM lParam = 0L
  2021. );
  2022. virtual UINT Ribbon_EmbeddedCaptionGetTextAlignmentFlags(
  2023. const CExtRibbonBar * pRibbonBar,
  2024. LPARAM lParam = 0L
  2025. );
  2026. virtual void Ribbon_EmbeddedCaptionAdjustTextRect(
  2027. CRect & rcAdjust,
  2028. const CExtRibbonBar * pRibbonBar,
  2029. LPARAM lParam = 0L
  2030. );
  2031. virtual void Ribbon_FileMenuButtonQuery(
  2032. LPVOID pData,
  2033. CExtCmdIcon * pIcon = NULL,
  2034. __EXT_MFC_SAFE_LPCTSTR sText = NULL,
  2035. LPARAM lParam = 0L
  2036. );
  2037. virtual bool Ribbon_FileButtonIsItegrationSupported() const;
  2038. virtual bool Ribbon_IsSystemMenuIconPresent() const;
  2039. virtual INT Ribbon_FileButtonGetMenuIntersectionHeight() const;
  2040. virtual bool Ribbon_FileButtonCalcLayout(
  2041. CDC & dc,
  2042. CExtNcFrameImpl * pExtNcFrameImpl,
  2043. CExtRibbonButtonFile * pFileTBB,
  2044. LPARAM lParam = 0L
  2045. );
  2046. virtual bool Ribbon_FileButtonPaint(
  2047. CDC & dc,
  2048. CExtRibbonButtonFile * pFileTBB,
  2049. LPARAM lParam = 0L
  2050. );
  2051. virtual bool Ribbon_QuickAccessContentExpandButtonCalcLayout(
  2052. CDC & dc,
  2053. CExtRibbonButtonQuickAccessContentExpand * pQACEB,
  2054. LPARAM lParam = 0L
  2055. );
  2056. virtual bool Ribbon_QuickAccessContentExpandButtonPaint(
  2057. CDC & dc,
  2058. CExtRibbonButtonQuickAccessContentExpand * pQACEB,
  2059. LPARAM lParam = 0L
  2060. );
  2061. virtual CSize Ribbon_QuickAccessContentExpandGetShift(
  2062. CDC & dc,
  2063. CExtRibbonButtonQuickAccessContentExpand * pQACEB,
  2064. LPARAM lParam = 0L
  2065. );
  2066. virtual bool Ribbon_DLB_IsVisible(
  2067. CExtRibbonButtonDialogLauncher * pTBB,
  2068. LPARAM lParam = 0L
  2069. ) const;
  2070. virtual CSize Ribbon_DLB_CalcSize(
  2071. CDC & dc,
  2072. CExtRibbonButtonDialogLauncher * pTBB,
  2073. LPARAM lParam = 0L
  2074. );
  2075. virtual void Ribbon_DLB_Paint(
  2076. CDC & dc,
  2077. CExtRibbonButtonDialogLauncher * pTBB,
  2078. LPARAM lParam = 0L
  2079. );
  2080. virtual CFont * RibbonGallery_GetItemFont(
  2081. CExtRibbonGalleryWnd * pGalleryWnd,
  2082. LPVOID pGalleryItemData,
  2083. LPARAM lParam = 0L
  2084. );
  2085. virtual CSize RibbonGallery_MeasureItem(
  2086. CDC & dc,
  2087. CExtRibbonGalleryWnd * pGalleryWnd,
  2088. LPVOID pGalleryItemData,
  2089. LPARAM lParam = 0L
  2090. );
  2091. virtual bool RibbonGallery_DrawItem(
  2092. CDC & dc,
  2093. CExtRibbonGalleryWnd * pGalleryWnd,
  2094. const RECT & rcItem,
  2095. LPVOID pGalleryItemData,
  2096. LPARAM lParam = 0L
  2097. );
  2098. virtual bool RibbonGallery_EraseEntireBk(
  2099. CDC & dc,
  2100. const CRect & rcClient,
  2101. const CRect & rcActiveChildArea,
  2102. CRgn & rgnActiveChildArea,
  2103. const CRect & rcActiveChildArea2,
  2104. CRgn & rgnActiveChildArea2,
  2105. CExtRibbonGalleryWnd * pGalleryWnd,
  2106. LPARAM lParam = 0L
  2107. );
  2108. virtual void RibbonGallery_AdjustClientRect(
  2109. CRect & rcClient,
  2110. const CExtRibbonGalleryWnd * pGalleryWnd,
  2111. LPARAM lParam = 0L
  2112. );
  2113. virtual void RibbonGallery_PaintScrollArea(
  2114. CDC & dc,
  2115. CExtRibbonGalleryInplaceScrollBar * pSB,
  2116. LPARAM lParam = 0L
  2117. );
  2118. #endif // (!defined __EXT_MFC_NO_RIBBON_BAR)
  2119. virtual void AdvTip_CalcRgn(
  2120. HRGN hRgnPrecalc,
  2121. const RECT & rcRectRgn,
  2122. bool bDynamicShadowApplied,
  2123. INT nSizeInnerShadowIncluded,
  2124. CObject * pHelperSrc,
  2125. LPARAM lParam = 0L
  2126. );
  2127. virtual bool AdvTip_PaintBackground(
  2128. CDC & dc,
  2129. const RECT & rcClient,
  2130. bool bAdvTipWithShadow,
  2131. CObject * pHelperSrc,
  2132. LPARAM lParam = 0L
  2133. );
  2134. virtual CFont * AdvTip_GetFont(
  2135. CObject * pHelperSrc,
  2136. LPARAM lParam = 0L
  2137. );
  2138. virtual COLORREF AdvTip_GetTextColor(
  2139. CObject * pHelperSrc,
  2140. LPARAM lParam = 0L
  2141. );
  2142. struct __PROF_UIS_API PAINTPROGRESSDATA
  2143. {
  2144. int m_nPos, m_nRange;
  2145. CRect m_rcClient;
  2146. bool m_bHorz:1, m_bSmooth:1, m_bBorder:1;
  2147. CObject * m_pHelperSrc;
  2148. LPARAM m_lParam;
  2149. bool m_bEndlessMode:1;
  2150. LONG m_nEndlessNominator, m_nEndlessDenominator;
  2151. PAINTPROGRESSDATA(
  2152. int nPos,
  2153. int nRange,
  2154. const RECT & rcClient,
  2155. bool bHorz = true,
  2156. bool bSmooth = true,
  2157. bool bBorder = true,
  2158. CObject * pHelperSrc = NULL,
  2159. LPARAM lParam = 0L
  2160. )
  2161. : m_nPos( nPos )
  2162. , m_nRange( nRange )
  2163. , m_rcClient( rcClient )
  2164. , m_bHorz( bHorz )
  2165. , m_bSmooth( bSmooth )
  2166. , m_bBorder( bBorder )
  2167. , m_pHelperSrc( pHelperSrc )
  2168. , m_lParam( lParam )
  2169. , m_bEndlessMode( false )
  2170. , m_nEndlessNominator( 1 )
  2171. , m_nEndlessDenominator( 3 )
  2172. {
  2173. }
  2174. }; // struct PAINTPROGRESSDATA
  2175. virtual bool PaintProgress(
  2176. CDC & dc,
  2177. PAINTPROGRESSDATA & _ppd
  2178. );
  2179. #if (!defined __EXT_MFC_NO_CUSTOMIZE)
  2180. virtual CFont & ScreenTip_GetFont(
  2181. bool bCaption,
  2182. bool bMainPart,
  2183. CExtCustomizeCmdScreenTip & _CCST,
  2184. CObject * pHelperSrc = NULL,
  2185. LPARAM lParam = 0L
  2186. );
  2187. virtual CRect ScreenTip_GetPaddingOuter(
  2188. CExtCustomizeCmdScreenTip & _CCST,
  2189. CObject * pHelperSrc = NULL,
  2190. LPARAM lParam = 0L
  2191. );
  2192. virtual CRect ScreenTip_GetPaddingInnerBmp(
  2193. bool bMainPart,
  2194. CExtCustomizeCmdScreenTip & _CCST,
  2195. CObject * pHelperSrc = NULL,
  2196. LPARAM lParam = 0L
  2197. );
  2198. virtual CRect ScreenTip_GetPaddingInnerText(
  2199. bool bCaption,
  2200. bool bMainPart,
  2201. CExtCustomizeCmdScreenTip & _CCST,
  2202. CObject * pHelperSrc = NULL,
  2203. LPARAM lParam = 0L
  2204. );
  2205. virtual INT ScreenTip_GetSeparatorHeight(
  2206. CExtCustomizeCmdScreenTip & _CCST,
  2207. CObject * pHelperSrc = NULL,
  2208. LPARAM lParam = 0L
  2209. );
  2210. virtual COLORREF ScreenTip_GetTextColor(
  2211. bool bCaption,
  2212. bool bMainPart,
  2213. CExtCustomizeCmdScreenTip & _CCST,
  2214. CObject * pHelperSrc = NULL,
  2215. LPARAM lParam = 0L
  2216. );
  2217. virtual CSize ScreenTip_Measure(
  2218. CDC & dc,
  2219. CExtCustomizeCmdScreenTip & _CCST,
  2220. CObject * pHelperSrc = NULL,
  2221. LPARAM lParam = 0L
  2222. );
  2223. virtual void ScreenTip_PaintBackground(
  2224. CDC & dc,
  2225. const RECT & rcScreenTip,
  2226. CExtCustomizeCmdScreenTip & _CCST,
  2227. CObject * pHelperSrc = NULL,
  2228. LPARAM lParam = 0L
  2229. );
  2230. virtual void ScreenTip_Paint(
  2231. CDC & dc,
  2232. const RECT & rcScreenTip,
  2233. CExtCustomizeCmdScreenTip & _CCST,
  2234. CObject * pHelperSrc = NULL,
  2235. LPARAM lParam = 0L
  2236. );
  2237. #endif // (!defined __EXT_MFC_NO_CUSTOMIZE)
  2238. #if (!defined __EXT_MFC_NO_PAGECONTAINER_CTRL)
  2239. bool m_bPageContainerUseButtonStyle:1;
  2240. bool m_bPageContainerUseGroupBoxStyle:1;
  2241. bool m_bPageContainerNoEmbossDisabledText:1;
  2242. virtual void PageContainer_EraseEntire(
  2243. CDC & dc,
  2244. CRect rcClient,
  2245. CExtPageContainerWnd * pWndPageContainer,
  2246. LPARAM lParam = 0L
  2247. );
  2248. virtual void PageContainer_EraseScrollPosArea(
  2249. CDC & dc,
  2250. CRect rcScrollPosArea,
  2251. LONG nScrollPos,
  2252. LONG nScrollSize,
  2253. CExtPageContainerWnd * pWndPageContainer,
  2254. LPARAM lParam = 0L
  2255. );
  2256. virtual void PageContainer_DrawScrollPosArea(
  2257. CDC & dc,
  2258. CRect rcScrollPosArea,
  2259. LONG nScrollPos,
  2260. LONG nScrollSize,
  2261. CExtPageContainerWnd * pWndPageContainer,
  2262. LPARAM lParam = 0L
  2263. );
  2264. virtual void PageContainer_EraseItem(
  2265. CDC & dc,
  2266. LPVOID pPageInfo, // CExtPageContainerWnd::PAGE_ITEM_INFO
  2267. CRect rcPage,
  2268. CRect rcCaption,
  2269. CRect rcWnd,
  2270. CExtPageContainerWnd * pWndPageContainer,
  2271. LPARAM lParam = 0L
  2272. );
  2273. virtual void PageContainer_DrawItem(
  2274. CDC & dc,
  2275. LPVOID pPageInfo, // CExtPageContainerWnd::PAGE_ITEM_INFO
  2276. CRect rcPage,
  2277. CRect rcCaption,
  2278. CRect rcWnd,
  2279. CExtPageContainerWnd * pWndPageContainer,
  2280. LPARAM lParam = 0L
  2281. );
  2282. virtual void PageContainer_EraseCaption(
  2283. CDC & dc,
  2284. LPVOID pPageInfo, // CExtPageContainerWnd::PAGE_ITEM_INFO
  2285. CRect rcCaption,
  2286. CExtPageContainerWnd * pWndPageContainer,
  2287. LPARAM lParam = 0L
  2288. );
  2289. virtual void PageContainer_DrawCaption(
  2290. CDC & dc,
  2291. LPVOID pPageInfo, // CExtPageContainerWnd::PAGE_ITEM_INFO
  2292. CRect rcCaption,
  2293. CExtPageContainerWnd * pWndPageContainer,
  2294. LPARAM lParam = 0L
  2295. );
  2296. #endif // (!defined __EXT_MFC_NO_PAGECONTAINER_CTRL)
  2297. // header control
  2298. virtual void Header_PaintBackground(
  2299. CDC & dc,
  2300. CRect rc,
  2301. CObject * pHelperSrc,
  2302. LPARAM lParam = 0L
  2303. );
  2304. virtual CRect Header_GetItemPadding(
  2305. INT nColNo,
  2306. INT nColCount,
  2307. CObject * pHelperSrc,
  2308. LPARAM lParam = 0L
  2309. ) const;
  2310. virtual void Header_PaintItem(
  2311. CDC & dc,
  2312. CRect rcItemEntire,
  2313. CRect rcItemData,
  2314. CRect rcIcon,
  2315. CRect rcText,
  2316. CRect rcSortArrow,
  2317. CRect rcButton,
  2318. CRect rcButtonIcon,
  2319. bool bSorted,
  2320. bool bSortedAscending,
  2321. INT nColNo,
  2322. INT nColCount,
  2323. const CExtCmdIcon & iconItem,
  2324. const CExtCmdIcon & iconButton,
  2325. bool bHover,
  2326. bool bPressed,
  2327. bool bButtonEvent,
  2328. __EXT_MFC_SAFE_LPCTSTR strItemText,
  2329. CObject * pHelperSrc,
  2330. LPARAM lParam = 0L
  2331. );
  2332. virtual void Header_GetButtonPadding(
  2333. INT & nButtonPaddingBefore,
  2334. INT & nButtonPaddingAfter,
  2335. INT nColNo,
  2336. INT nColCount,
  2337. CObject * pHelperSrc,
  2338. LPARAM lParam = 0L
  2339. ) const;
  2340. virtual INT Header_GetDistanceBetweenIconAndSortArrow(
  2341. INT nColNo,
  2342. INT nColCount,
  2343. CObject * pHelperSrc,
  2344. LPARAM lParam = 0L
  2345. ) const;
  2346. virtual INT Header_GetDistanceBetweenIconAndText(
  2347. INT nColNo,
  2348. INT nColCount,
  2349. CObject * pHelperSrc,
  2350. LPARAM lParam = 0L
  2351. ) const;
  2352. virtual INT Header_GetDistanceBetweenTextAndButton(
  2353. INT nColNo,
  2354. INT nColCount,
  2355. CObject * pHelperSrc,
  2356. LPARAM lParam = 0L
  2357. ) const;
  2358. virtual INT Header_GetSortArrowWidth(
  2359. INT nColNo,
  2360. INT nColCount,
  2361. CObject * pHelperSrc,
  2362. LPARAM lParam = 0L
  2363. ) const;
  2364. }; // class CExtPaintManager
  2365. class __PROF_UIS_API CExtPaintManagerXP : public CExtPaintManager
  2366. {
  2367. protected:
  2368. bool m_bEnabledHoverIconShadows:1;
  2369. bool m_bHelperXpStyle8BitBarRect:1;
  2370. bool m_bExpBtnSwapVGlyphs:1;
  2371. const glyph_t * m_pGlyphTbEpBtnH0;
  2372. const glyph_t * m_pGlyphTbEpBtnH1;
  2373. const glyph_t * m_pGlyphTbEpBtnV0;
  2374. const glyph_t * m_pGlyphTbEpBtnV1;
  2375. int m_nIdxClrMlaNormLeft, m_nIdxClrMlaNormRight, m_nIdxClrMlaNormMiddle,
  2376. m_nIdxClrMlaRarelyLeft, m_nIdxClrMlaRarelyRight, m_nIdxClrMlaRarelyMiddle,
  2377. m_nIdxClrBtnNormLeft, m_nIdxClrBtnNormRight,
  2378. m_nIdxClrBtnHoverLeft, m_nIdxClrBtnHoverRight,
  2379. m_nIdxClrBtnPressedLeft, m_nIdxClrBtnPressedRight,
  2380. m_nIdxClrBtnHovPresLeft, m_nIdxClrBtnHovPresRight;
  2381. public:
  2382. COLORREF m_clrCustomDropDownGlyphEnabled, m_clrCustomDropDownGlyphDisabled;
  2383. DECLARE_SERIAL( CExtPaintManagerXP );
  2384. // construction/destruction
  2385. CExtPaintManagerXP();
  2386. virtual ~CExtPaintManagerXP();
  2387. virtual e_paint_manager_name_t OnQueryPaintManagerName()
  2388. {
  2389. ASSERT_VALID( this );
  2390. return OfficeXP;
  2391. }
  2392. virtual INT GetSeparatorHeight()
  2393. {
  2394. ASSERT_VALID( this );
  2395. return 1;
  2396. }
  2397. virtual bool OnQueryUseThemeColors() const;
  2398. virtual COLORREF GetShadowAdjustColor();
  2399. virtual void FixedBar_AdjustClientRect(
  2400. const CExtControlBar * pBar,
  2401. CRect & rcPreCalc
  2402. );
  2403. virtual INT FixedBar_GetRowDistance(
  2404. const CExtToolControlBar * pBar
  2405. );
  2406. virtual bool FixedBar_IsPaintRowBkMode(
  2407. const CExtToolControlBar * pBar
  2408. );
  2409. // install required translated color as
  2410. // described in e_translated_colors_t enumeration
  2411. virtual void InitTranslatedColors();
  2412. // gets the pushed metic offset
  2413. virtual CSize GetPushedOffset();
  2414. // paint methods
  2415. virtual void PaintPushButton(
  2416. CDC & dc,
  2417. CExtPaintManager::PAINTPUSHBUTTONDATA & _ppbd
  2418. );
  2419. virtual void PaintPushButtonText(
  2420. CDC & dc,
  2421. CRect & rcCaption,
  2422. CExtPaintManager::PAINTPUSHBUTTONDATA & _ppbd
  2423. );
  2424. virtual void PaintGripper(
  2425. CDC & dc,
  2426. CExtPaintManager::PAINTGRIPPERDATA & _pgd
  2427. );
  2428. virtual void PaintSeparator(
  2429. CDC & dc,
  2430. const RECT & rectItem,
  2431. bool bHorz,
  2432. bool bTransparentBk,
  2433. CObject * pHelperSrc,
  2434. LPARAM lParam = 0L
  2435. );
  2436. virtual void PaintIcon(
  2437. CDC & dc,
  2438. bool bHorz,
  2439. CExtCmdIcon * pIcon,
  2440. const CRect & rcClient,
  2441. bool bPushed,
  2442. bool bEnabled,
  2443. bool bHover = false,
  2444. INT nIconAlignment = 0,
  2445. bool bRTL = false,
  2446. CRect * prcIcon = NULL,
  2447. CRect * prcText = NULL,
  2448. CRect * prcIconMargins = NULL,
  2449. COLORREF clrCustomAccentEffectForIcon = COLORREF(-1L)
  2450. );
  2451. virtual void PaintMenuItem(
  2452. CDC & dc,
  2453. CExtPaintManager::PAINTMENUITEMDATA & _pmid
  2454. );
  2455. virtual void PaintMenuItemIcon(
  2456. CDC & dc,
  2457. CExtPaintManager::PAINTMENUITEMDATA & _pmid
  2458. );
  2459. virtual void PaintMenuItemInPlaceWnd(
  2460. CDC & dc,
  2461. CExtPaintManager::PAINTMENUITEMDATA & _pmid
  2462. );
  2463. virtual void PaintMenuItemLeftAreaMarginXP(
  2464. CDC & dc,
  2465. CExtPaintManager::PAINTMENUITEMDATA & _pmid,
  2466. const RECT & rcFillLeftPart,
  2467. const RECT & rcFillRightPart
  2468. );
  2469. virtual bool PaintMenuItemBackgroundXP(
  2470. CDC & dc,
  2471. CExtPaintManager::PAINTMENUITEMDATA & _pmid,
  2472. const RECT & rcSelectionArea
  2473. );
  2474. virtual bool PaintMenuItemSelectionAreaXP(
  2475. CDC & dc,
  2476. CExtPaintManager::PAINTMENUITEMDATA & _pmid,
  2477. const RECT & rcSelectionArea
  2478. );
  2479. enum e_CheckMarkAreaTypeXP
  2480. {
  2481. __ECMATXP_EXTRA_MARK_CHECKED = 0,
  2482. __ECMATXP_ICON_OR_CHECK_OR_RADIO_FRAME = 1,
  2483. };
  2484. virtual bool PaintMenuItemCheckMarkAreaXP(
  2485. CDC & dc,
  2486. CExtPaintManager::PAINTMENUITEMDATA & _pmid,
  2487. const RECT & rcCheckMarkArea,
  2488. e_CheckMarkAreaTypeXP eCMATXP
  2489. );
  2490. virtual void PaintMenuSeparator(
  2491. CDC & dc,
  2492. const RECT & rectItem,
  2493. int nIconAreaWidth,
  2494. bool bRarelyUsed,
  2495. bool bIsForceNoLeftGradient,
  2496. CObject * pHelperSrc,
  2497. LPARAM lParam = 0L
  2498. );
  2499. virtual void PaintControlFrame(
  2500. CDC & dc,
  2501. CExtPaintManager::PAINTCONTROLFRAMEDATA & _pcfd
  2502. );
  2503. virtual void PaintComboFrame(
  2504. CDC & dc,
  2505. CExtPaintManager::PAINTCOMBOFRAMEDATA & _pcfd
  2506. );
  2507. virtual void PaintSysCmdGlyph(
  2508. CDC & dc,
  2509. UINT nHelperSysCmdID,
  2510. const RECT & rcItem,
  2511. bool bHover,
  2512. bool bPushed,
  2513. bool bEnabled,
  2514. COLORREF clrForceGlyphColor = COLORREF(-1L)
  2515. );
  2516. virtual void PaintFloatToolbarRowBk(
  2517. CDC & dc,
  2518. const CExtToolControlBar * pBar,
  2519. int nLastReviewBtnIdx,
  2520. CRect & rcRowBk
  2521. );
  2522. virtual void PaintToolbarExpandButton(
  2523. CDC & dc,
  2524. const RECT & rcButtonArea,
  2525. bool bHorz, // if false - down
  2526. bool bBarIsCompletelyVisible,
  2527. bool bEnabled,
  2528. bool bPushed,
  2529. bool bHover,
  2530. CObject * pHelperSrc,
  2531. LPARAM lParam = 0L,
  2532. bool bTransparentBackground = false
  2533. );
  2534. virtual void PaintMenuExpandButton(
  2535. CDC & dc,
  2536. const RECT & rectButton,
  2537. bool bPushed,
  2538. bool bHover,
  2539. CObject * pHelperSrc,
  2540. LPARAM lParam = 0L
  2541. );
  2542. virtual void PaintMenuScrollButton(
  2543. CDC & dc,
  2544. bool bHover,
  2545. bool bPushed,
  2546. bool bTopButton,
  2547. const RECT & rcScrollButton,
  2548. CObject * pHelperSrc,
  2549. LPARAM lParam = 0L
  2550. );
  2551. virtual void PaintMenuTearOffButton(
  2552. CDC & dc,
  2553. const RECT & rectButton,
  2554. bool bPushed,
  2555. bool bHover,
  2556. CObject * pHelperSrc,
  2557. LPARAM lParam = 0L
  2558. );
  2559. virtual int GetMenuExpandButtonHeight();
  2560. virtual void PaintDockingFrame(
  2561. CDC & dc,
  2562. CExtPaintManager::PAINTDOCKINGFRAMEDATA & _pdfd
  2563. );
  2564. virtual int GetMenuShadowSize() const;
  2565. virtual CRect GetMenuBorderMetrics(
  2566. CWnd * pWnd,
  2567. LPARAM lParam = 0
  2568. ) const;
  2569. virtual void PaintMenuBorder(
  2570. CDC & dc,
  2571. const RECT & rectClient,
  2572. CObject * pHelperSrc,
  2573. LPARAM lParam = 0L
  2574. );
  2575. enum e_xp_colors_t
  2576. {
  2577. XPCLR_3DFACE_DARK = __ExtMfc_XP_COLOR_SHIFT+0,
  2578. XPCLR_3DFACE_NORMAL = __ExtMfc_XP_COLOR_SHIFT+1,
  2579. XPCLR_SEPARATOR = __ExtMfc_XP_COLOR_SHIFT+2,
  2580. XPCLR_HILIGHT = __ExtMfc_XP_COLOR_SHIFT+3,
  2581. XPCLR_HILIGHT_BORDER = __ExtMfc_XP_COLOR_SHIFT+4,
  2582. XPCLR_HILIGHT_BORDER_SELECTED = __ExtMfc_XP_COLOR_SHIFT+5,
  2583. XPCLR_RARELY_BORDER = __ExtMfc_XP_COLOR_SHIFT+6,
  2584. XPCLR_PUSHEDHOVERTEXT = __ExtMfc_XP_COLOR_SHIFT+7,
  2585. XPCLR_MENU_BORDER = __ExtMfc_XP_COLOR_SHIFT+8,
  2586. XPCLR_3DFACE_FLOAT_R = __ExtMfc_XP_COLOR_SHIFT+9,
  2587. XPCLR_3DFACE_FLOAT_F = __ExtMfc_XP_COLOR_SHIFT+10,
  2588. XPCLR_TEXT_FIELD_BORDER_NORMAL = __ExtMfc_XP_COLOR_SHIFT+11,
  2589. XPCLR_TEXT_FIELD_BORDER_DISABLED= __ExtMfc_XP_COLOR_SHIFT+12,
  2590. XPCLR_GRIPPER = __ExtMfc_XP_COLOR_SHIFT+13,
  2591. };
  2592. virtual bool IsMenuMustCombineExcludeArea(
  2593. const CObject * pMenuTrackerObject = NULL
  2594. ) const;
  2595. virtual bool IsToolBarChevronMenuCombined();
  2596. virtual void PaintMenuCombinedArea(
  2597. CDC & dc,
  2598. const RECT & rcArea,
  2599. const RECT & rcClient,
  2600. int eCombineAlign, // CExtPopupMenuWnd::e_combine_align_t values
  2601. CObject * pHelperSrc,
  2602. LPARAM lParam = 0L
  2603. );
  2604. virtual void PaintDockingCaptionButton(
  2605. CDC & dc,
  2606. CExtPaintManager::PAINTDOCKINGCAPTIONBUTTONDATA & _pdcbd
  2607. );
  2608. virtual COLORREF GetMenuFrameFillColor(
  2609. CObject * pHelperSrc,
  2610. LPARAM lParam = 0L
  2611. );
  2612. virtual void PaintControlBarBorders(
  2613. CDC & dc,
  2614. CExtPaintManager::PAINTCONTROLBARBORDERSDATA & _pcbbd
  2615. );
  2616. #if (!defined __EXT_MFC_NO_TAB_CTRL)
  2617. virtual void PaintTabItem(
  2618. CDC & dc,
  2619. CRect & rcTabItemsArea,
  2620. bool bTopLeft,
  2621. bool bHorz,
  2622. bool bSelected,
  2623. bool bCenteredText,
  2624. bool bGroupedMode,
  2625. bool bInGroupActive,
  2626. bool bInvertedVerticalMode,
  2627. const CRect & rcEntireItem,
  2628. CSize sizeTextMeasured,
  2629. CFont * pFont,
  2630. __EXT_MFC_SAFE_LPCTSTR sText,
  2631. CExtCmdIcon * pIcon,
  2632. CObject * pHelperSrc,
  2633. LPARAM lParam = 0L,
  2634. COLORREF clrForceText = COLORREF(-1L),
  2635. COLORREF clrForceTabBk = COLORREF(-1L),
  2636. COLORREF clrForceTabBorderLT = COLORREF(-1L),
  2637. COLORREF clrForceTabBorderRB = COLORREF(-1L),
  2638. COLORREF clrForceTabSeparator = COLORREF(-1L),
  2639. bool bDwmMode = false
  2640. );
  2641. virtual void PaintTabClientArea(
  2642. CDC & dc,
  2643. CRect & rcClient,
  2644. CRect & rcTabItemsArea,
  2645. CRect & rcTabNearBorderArea,
  2646. DWORD dwOrientation,
  2647. bool bGroupedMode,
  2648. CObject * pHelperSrc,
  2649. LPARAM lParam = 0L
  2650. );
  2651. virtual void PaintTabButton(
  2652. CDC & dc,
  2653. CRect & rcButton,
  2654. LONG nHitTest,
  2655. bool bTopLeft,
  2656. bool bHorz,
  2657. bool bEnabled,
  2658. bool bHover,
  2659. bool bPushed,
  2660. bool bGroupedMode,
  2661. CObject * pHelperSrc,
  2662. LPARAM lParam = 0L,
  2663. bool bFlat = false
  2664. );
  2665. virtual void PaintTabNcAreaRect(
  2666. CDC & dc,
  2667. const RECT & rc,
  2668. CObject * pHelperSrc,
  2669. LPARAM lParam = 0L
  2670. );
  2671. #endif // #if (!defined __EXT_MFC_NO_TAB_CTRL)
  2672. virtual void PaintResizableBarChildNcAreaRect(
  2673. CDC & dc,
  2674. const RECT & rc,
  2675. CObject * pHelperSrc,
  2676. LPARAM lParam = 0L
  2677. );
  2678. #if (!defined __EXT_MFC_NO_SHORTCUTLIST_CTRL)
  2679. virtual void PaintShortcutListBkgnd(
  2680. CDC & dc,
  2681. const RECT & rcClient,
  2682. CObject * pHelperSrc,
  2683. LPARAM lParam = 0L
  2684. );
  2685. virtual void PaintShortcutListItem(
  2686. CDC & dc,
  2687. CExtPaintManager::PAINTSHORTCUTLISTITEMSDATA & _pslid
  2688. );
  2689. #endif // (!defined __EXT_MFC_NO_SHORTCUTLIST_CTRL)
  2690. virtual void PaintToolbarTextField(
  2691. CDC & dc,
  2692. PAINTTOOLBARTEXTFIELDDATA & _ptbtfd
  2693. );
  2694. virtual COLORREF GetIconAlphaColor() const;
  2695. virtual double GetIconAlphaAdjustPercent() const;
  2696. virtual bool AdjustIcon( 
  2697. CExtCmdIcon * pIcon
  2698. );
  2699. virtual CSize FixedBar_GetRoundedAreaMerics() const;
  2700.  
  2701. #if (!defined __EXT_MFC_NO_PAGE_NAVIGATOR )
  2702. virtual void PaintPageNavigatorBorder(
  2703. CDC & dc,
  2704. const RECT & rcControl
  2705. );
  2706. virtual void PaintPageNavigatorItem(
  2707. CDC & dc,
  2708. const CRect & rcItem,
  2709. __EXT_MFC_SAFE_LPCTSTR strCaption,
  2710. CExtCmdIcon * pIcon,
  2711. bool bExpanded,
  2712. bool bSelected,
  2713. bool bPushed,
  2714. bool bHover
  2715. );
  2716. virtual void PaintPageNavigatorSplitter(
  2717. CDC & dc,
  2718. const CRect & rcSplitter,
  2719. bool bDrawDots = true
  2720. );
  2721. #endif // (!defined __EXT_MFC_NO_PAGE_NAVIGATOR )
  2722. #if (!defined __EXT_MFC_NO_TASK_PANE )
  2723. virtual void TaskPanePaintBorder(
  2724. CDC & dc,
  2725. const RECT & rcClient,
  2726. CObject * pHelperSrc
  2727. );
  2728. virtual void TaskPanePaintGroupCaption(
  2729. CDC & dc,
  2730. const CRect & rcCaption,
  2731. __EXT_MFC_SAFE_LPCTSTR strCaption,
  2732. bool bHover,
  2733. bool bPressed,
  2734. bool bHighlighted,
  2735. bool bPaintExpandButton,
  2736. bool bExpanded,
  2737. CObject * pHelperSrc
  2738. );
  2739. virtual LONG TaskPaneQueryGroupCaptionMinHeight() const;
  2740. virtual CRect TaskPaneQueryGroupCaptionTextMargins() const;
  2741. #endif // (!defined __EXT_MFC_NO_TASK_PANE )
  2742. #if (!defined __EXT_MFC_NO_DATE_PICKER)
  2743. virtual void PaintDatePickerBorder(
  2744. CDC & dc,
  2745. const RECT & rcControl,
  2746. CObject * pHelperSrc,
  2747. LPARAM lParam = 0L
  2748. );
  2749. virtual void PaintDatePickerHeaderBackground(
  2750. INT nCol,
  2751. INT nRow,
  2752. CDC & dc,
  2753. INT nYear,
  2754. INT nMonth,
  2755. const RECT & rcHeader,
  2756. const RECT & rcHeaderWithoutBorders,
  2757. const RECT & rcHeaderDate,
  2758. const RECT & rcScrollBtnBackward,
  2759. const RECT & rcScrollBtnForward,
  2760. CObject * pHelperSrc,
  2761. LPARAM lParam = 0L
  2762. );
  2763. #endif // (!defined __EXT_MFC_NO_DATE_PICKER)
  2764. #ifndef __EXT_MFC_NO_UNDO_REDO_POPUP
  2765. virtual void PaintUndoRedoCaption(
  2766. CDC & dc,
  2767. const CRect & rcCaption,
  2768. __EXT_MFC_SAFE_LPCTSTR strCaption,
  2769. CObject * pHelperSrc,
  2770. LPARAM lParam = 0L
  2771. );
  2772. #endif // __EXT_MFC_NO_UNDO_REDO_POPUP
  2773. #if( !defined __EXT_MFC_NO_SPIN || !defined __EXT_MFC_NO_DURATIONWND )
  2774. virtual void PaintSpinButton(
  2775. CDC & dc,
  2776. const CRect & rcButton,
  2777. bool bUp,
  2778. bool bHorz,
  2779. bool bEnabled,
  2780. bool bFlat,
  2781. bool bDrawBorder,
  2782. bool bPushed,
  2783. bool bHover,
  2784. bool bHotTrack,
  2785. CObject * pHelperSrc,
  2786. LPARAM lParam = 0L
  2787. );
  2788. #endif // #if( !defined __EXT_MFC_NO_SPIN || !defined __EXT_MFC_NO_DURATIONWND )
  2789. #if (!defined __EXT_MFC_NO_DOCK_MARKERS)
  2790. virtual void DockMarker_AdjustBmps(
  2791. eDockMarkerType_t eDockMarkerType,
  2792. CExtBitmap & bmpIn,
  2793. COLORREF clrTransparentIn,
  2794. CExtBitmap & bmpOut,
  2795. COLORREF clrTransparentOut
  2796. );
  2797. #endif // (!defined __EXT_MFC_NO_DOCK_MARKERS)
  2798. #if (!defined __EXT_MFC_NO_RIBBON_BAR)
  2799. virtual CRect Ribbon_GetPopupGroupBorderMetrics(
  2800. const CExtRibbonPage * pRibbonPage,
  2801. LPARAM lParam = 0L
  2802. );
  2803. #endif // (!defined __EXT_MFC_NO_RIBBON_BAR)
  2804. // header control
  2805. virtual void Header_PaintBackground(
  2806. CDC & dc,
  2807. CRect rc,
  2808. CObject * pHelperSrc,
  2809. LPARAM lParam = 0L
  2810. );
  2811. virtual void Header_PaintItem(
  2812. CDC & dc,
  2813. CRect rcItemEntire,
  2814. CRect rcItemData,
  2815. CRect rcIcon,
  2816. CRect rcText,
  2817. CRect rcSortArrow,
  2818. CRect rcButton,
  2819. CRect rcButtonIcon,
  2820. bool bSorted,
  2821. bool bSortedAscending,
  2822. INT nColNo,
  2823. INT nColCount,
  2824. const CExtCmdIcon & iconItem,
  2825. const CExtCmdIcon & iconButton,
  2826. bool bHover,
  2827. bool bPressed,
  2828. bool bButtonEvent,
  2829. __EXT_MFC_SAFE_LPCTSTR strItemText,
  2830. CObject * pHelperSrc,
  2831. LPARAM lParam = 0L
  2832. );
  2833. }; // class CExtPaintManagerXP
  2834. class __PROF_UIS_API CExtPaintManagerOffice2003 : public CExtPaintManagerXP
  2835. {
  2836. protected:
  2837. int m_nIdxClrTbFillMargin;
  2838. public:
  2839. DECLARE_SERIAL( CExtPaintManagerOffice2003 );
  2840. // construction/destruction
  2841. CExtPaintManagerOffice2003();
  2842. virtual ~CExtPaintManagerOffice2003();
  2843. virtual e_paint_manager_name_t OnQueryPaintManagerName()
  2844. {
  2845. ASSERT_VALID( this );
  2846. return Office2003;
  2847. }
  2848. #ifndef __EXT_MFC_NO_TAB_ONENOTE_CTRL
  2849. virtual void TabOneNoteWnd_DrawClientArea(
  2850. CDC & dc,
  2851. CRect & rcClient,
  2852. CObject * pHelperSrc = NULL,
  2853. LPARAM lParam = 0L
  2854. );
  2855. virtual void GetTabOneNoteItemColors(
  2856. bool bSelected,
  2857. bool bHover,
  2858. bool bEnabled,
  2859. COLORREF &clrBorderLight,
  2860. COLORREF &clrBorderDark,
  2861. COLORREF &clrBkLight,
  2862. COLORREF &clrBkDark,
  2863. COLORREF &clrText
  2864. );
  2865. #endif // __EXT_MFC_NO_TAB_ONENOTE_CTRL
  2866. #ifndef __EXT_MFC_NO_TAB_WHIDBEY_CTRL
  2867. virtual void GetTabWhidbeyItemColors(
  2868. bool bSelected,
  2869. bool bHover,
  2870. bool bEnabled,
  2871. COLORREF &clrBorder,
  2872. COLORREF &clrBkLight,
  2873. COLORREF &clrBkDark,
  2874. COLORREF &clrText
  2875. );
  2876. #endif // __EXT_MFC_NO_TAB_WHIDBEY_CTRL
  2877. virtual bool OnQueryThemeColors(
  2878. COLORREF *pclrFillHint,
  2879. COLORREF *pclrAccentHint = NULL
  2880. );
  2881. virtual bool OnQueryUseThemeColors() const;
  2882. virtual void OnPaintToolBarGradient(
  2883. CDC & dc,
  2884. CRect rcPaintGradient,
  2885. bool bHorz,
  2886. CObject * pHelperSrc,
  2887. LPARAM lParam = 0L,
  2888. COLORREF clrLeft = COLORREF(-1L),
  2889. COLORREF clrRight = COLORREF(-1L)
  2890. ) const;
  2891. virtual COLORREF GetShadowAdjustColor();
  2892. virtual void FixedBar_AdjustClientRect(
  2893. const CExtControlBar * pBar,
  2894. CRect & rcPreCalc
  2895. );
  2896. virtual INT FixedBar_GetRowDistance(
  2897. const CExtToolControlBar * pBar
  2898. );