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

对话框与窗口

开发平台:

Visual C++

  1. // XTPDatePickerPaintManager.h: interface for the CXTPDatePickerPaintManager class.
  2. //
  3. // This file is a part of the XTREME CALENDAR MFC class library.
  4. // (c)1998-2008 Codejock Software, All Rights Reserved.
  5. //
  6. // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
  7. // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
  8. // CONSENT OF CODEJOCK SOFTWARE.
  9. //
  10. // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
  11. // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
  12. // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
  13. // SINGLE COMPUTER.
  14. //
  15. // CONTACT INFORMATION:
  16. // support@codejock.com
  17. // http://www.codejock.com
  18. //
  19. /////////////////////////////////////////////////////////////////////////////
  20. //{{AFX_CODEJOCK_PRIVATE
  21. #if !defined(_XTPDATEPICKERPAINTMANAGER_H__)
  22. #define _XTPDATEPICKERPAINTMANAGER_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. #include "Common/XTPWinThemeWrapper.h"
  28. #include "Common/XTPNotifyConnection.h"
  29. #include "XTPCalendarViewPart.h"
  30. #include "XTPCalendarPtrCollectionT.h"
  31. #include "XTPCalendarDefines.h"
  32. class CXTPDatePickerControl;
  33. class CXTPDatePickerItemMonth;
  34. class CXTPDatePickerItemDay;
  35. // ----------------------------------------------------------------------
  36. // Summary:
  37. //     Class CXTPDatePickerPaintManager handles most of the drawing
  38. //     activities for the DatePicker control.
  39. // Remarks:
  40. //     Utility class, handles most of the drawing activities. It stores
  41. //     all settings needed by the control to perform drawing operations :
  42. //     fonts, colors, styles for all others classes of control. It also
  43. //     implements all functions for drawing typical graphical primitives,
  44. //     functions that directly work with the device context. Can be
  45. //     overridden to provide another look and feel for the control.
  46. //     Thus, you have an easy way to change the "skin" of your control.
  47. //     Provide your own implementation of CXTPDatePickerPaintManager and do
  48. //     not change the functionality all other classes of the control.<p/>
  49. // Create a DatePickerPaintManager by calling its constructor.
  50. //     Furthermore, call the "get" and "set" functions to change the
  51. //     settings as needed.
  52. // ----------------------------------------------------------------------
  53. class _XTP_EXT_CLASS CXTPDatePickerPaintManager : public CXTPCmdTarget
  54. {
  55. friend class CXTPDatePickerControl;
  56. public:
  57. //-----------------------------------------------------------------------
  58. // Summary:
  59. //     Default paint manager constructor.
  60. // Remarks:
  61. //     Handles initial initialization.
  62. // See Also: RefreshMetrics()
  63. //-----------------------------------------------------------------------
  64. CXTPDatePickerPaintManager();
  65. // -------------------------------------
  66. // Summary:
  67. //     Default paint manager destructor.
  68. // Remarks:
  69. //     Handles member item deallocation.
  70. // -------------------------------------
  71. virtual ~CXTPDatePickerPaintManager();
  72. // -------------------------------------------------------------------
  73. // Summary:
  74. //     This member function performs initialization for the Paint
  75. //     Manager.
  76. // Remarks:
  77. //     Initializes all drawing defaults (fonts, colors, etc.). Most of
  78. //     defaults are system defaults.
  79. // -------------------------------------------------------------------
  80. virtual void RefreshMetrics();
  81. // ---------------------------------------------------------------------
  82. // Summary:
  83. //     This member function is called to fill the control's background.
  84. // Parameters:
  85. //     pDC :   Pointer to a valid device context.
  86. // rcClient :  A CRect that contains the control's client area rectangle
  87. //                 coordinates.
  88. // ---------------------------------------------------------------------
  89. virtual void DrawBackground(CDC* pDC, CRect rcClient);
  90. // ---------------------------------------------------------------------
  91. // Summary:
  92. //     This member function draws a border around the control.
  93. // Parameters:
  94. //      pDC :       Pointer to a valid device context.
  95. //  pControl :  Pointer to a CXTPDatePickerControl object.
  96. //      rcClient :  A CRect that contains the control's client area rectangle
  97. //                 coordinates.
  98. //      bDraw    -  TRUE to draw else Adjust client rectangle.
  99. // ---------------------------------------------------------------------
  100. virtual void DrawBorder(CDC* pDC, const CXTPDatePickerControl* pControl, CRect& rcClient, BOOL bDraw);
  101. // ----------------------------------------------------------------------------------
  102. // Summary:
  103. //     This member function draws scrolling triangles on the highest
  104. //     bounded month headers.
  105. // Parameters:
  106. //     pDC :        Pointer to a valid device context.
  107. //  rcSpot :        A CRect object that contains the coordinates of the triangle
  108. //                  spot area.
  109. // bLeftDirection : A BOOL that is used to determine the triangle direction. TRUE
  110. //                  the left scrolling triangle is drawn.FALSE the right
  111. //                  scrolling triangle is drawn.
  112. //  clrColor : The triangle color
  113. // ----------------------------------------------------------------------------------
  114. virtual void DrawScrollTriangle(CDC* pDC, CRect rcSpot, BOOL bLeftDirection, COLORREF clrColor = 0);
  115. // -------------------------------------------------------------------
  116. // Summary:
  117. //     This member function is used to obtain the control's background
  118. //     color.
  119. // Returns:
  120. //     Color used for filling the controls client rectangle.
  121. // -------------------------------------------------------------------
  122. virtual COLORREF GetControlBackColor();
  123. // ----------------------------------------------------------------------
  124. // Summary:
  125. //     This member function is used to obtain the background color of the
  126. //     standard day item.
  127. // Returns:
  128. //     A COLORREF object that contains the background color of the
  129. //     standard day item.
  130. // ----------------------------------------------------------------------
  131. virtual COLORREF GetDayBackColor();
  132. // --------------------------------------------------------------------
  133. // Summary:
  134. //     This member function is used to obtain the color of the standard
  135. //     day item.
  136. // Returns:
  137. //     A COLORREF object that contains the color of the standard day
  138. //     item.
  139. // --------------------------------------------------------------------
  140. virtual COLORREF GetDayTextColor();
  141. //-----------------------------------------------------------------------
  142. // Summary:
  143. //     This member function is used to obtain a pointer to the font for
  144. //     the standard day item.
  145. // Example:
  146. // <code>
  147. // // Get the font and extract a LOGGFONT structure.
  148. // LOGFONT lf;
  149. // GetDayTextFont()->GetLogFont(&lf);
  150. // // Create new italic font.
  151. // lf.lfItalic = 1;
  152. // CFont fontItalic;
  153. // Italic.CreateFontIndirect(&lf);
  154. // </code>
  155. // Returns:
  156. //     A pointer to a CFont object that contains the standard day item
  157. //     font.
  158. //-----------------------------------------------------------------------
  159. virtual CFont* GetDayTextFont();
  160. //-----------------------------------------------------------------------
  161. // Summary:
  162. //     This member function is used to obtain a pointer to the font for
  163. //     the bolded day item.
  164. // Returns:
  165. //     A pointer to a CFont object that contains the bold day item font.
  166. //-----------------------------------------------------------------------
  167. virtual CFont* GetDayTextFontBold();
  168. // ----------------------------------------------------------------------
  169. // Summary:
  170. //     This member function is used to obtain the background color of the
  171. //     non-month day item.
  172. // Returns:
  173. //     A COLORREF object that contains the background color of the non
  174. //     month day item.
  175. // ----------------------------------------------------------------------
  176. virtual COLORREF GetNonMonthDayBackColor();
  177. // ---------------------------------------------------------------------
  178. // Summary:
  179. //     This member function is used to obtain the color of the non-month
  180. //     day item.
  181. // Returns:
  182. //     A COLORREF object that contains the color of the non-month day
  183. //     item.
  184. // ---------------------------------------------------------------------
  185. virtual COLORREF GetNonMonthDayTextColor();
  186. // ---------------------------------------------------------------------
  187. // Summary:
  188. //     This member function is used to obtain the font of the non-month
  189. //     day item.
  190. // Example:
  191. // <code>
  192. // // Get the font and extract a LOGGFONT structure.
  193. // LOGFONT lf;
  194. // GetNonMonthDayTextFont->GetLogFont(&lf);
  195. // // Create new old font
  196. // lf.lfWeight = FW_BOLD;
  197. // CFont fontBold;
  198. // fntBold.CreateFontIndirect(&lf);
  199. // </code>
  200. // Returns:
  201. //     Pointer to a CFont object that contains the font of the non-month
  202. //     day item.
  203. // ---------------------------------------------------------------------
  204. CFont* GetNonMonthDayTextFont();
  205. // ----------------------------------------------------------------------
  206. // Summary:
  207. //     This member function is used to obtain the background color of the
  208. //     selected day item.
  209. // Returns:
  210. //     A COLORREF object that contains the background color of the
  211. //     selected day item.
  212. // ----------------------------------------------------------------------
  213. virtual COLORREF GetSelectedDayBackColor();
  214. // --------------------------------------------------------------------
  215. // Summary:
  216. //     This member function obtains the color of the selected day item.
  217. // Returns:
  218. //     A COLORREF object that contains the color of the selected day
  219. //     item.
  220. // --------------------------------------------------------------------
  221. virtual COLORREF GetSelectedDayTextColor();
  222. // ------------------------------------------------------------------
  223. // Summary:
  224. //     This member function obtains the background color of the month
  225. //     header area.
  226. // Returns:
  227. //     A COLORREF object containing the background color of the month
  228. //     header area.
  229. // ------------------------------------------------------------------
  230. virtual COLORREF GetHeaderBackColor();
  231. // -------------------------------------------------------------------
  232. // Summary:
  233. //     This member function obtains the text color of the month header
  234. //     area.
  235. // Returns:
  236. //     A COLORREF object containing the text color of the month header
  237. //     area.
  238. // -------------------------------------------------------------------
  239. virtual COLORREF GetHeaderTextColor();
  240. // ------------------------------------------------------------------
  241. // Summary:
  242. //     This member function obtains the font of the month header area
  243. //     text.
  244. // Returns:
  245. //     A CFont object that contains the font of the month header area
  246. //     text.
  247. // ------------------------------------------------------------------
  248. CFont* GetHeaderTextFont();
  249. // --------------------------------------------------------------------
  250. // Summary:
  251. //     This member function returns the background color of the days of
  252. //     weeks area.
  253. // Returns:
  254. //     A COLORREF object containing the background color of the days of
  255. //     weeks area.
  256. // --------------------------------------------------------------------
  257. virtual COLORREF GetDaysOfWeekBackColor();
  258. // --------------------------------------------------------------------------
  259. // Summary:
  260. //     This member function obtains the text color of the days of weeks area.
  261. // Returns:
  262. //     A COLORREF object containing the text color of the days of weeks
  263. //     area.
  264. // --------------------------------------------------------------------------
  265. virtual COLORREF GetDaysOfWeekTextColor();
  266. // ---------------------------------------------------------------------
  267. // Summary:
  268. //     This member function obtains the font of the days of weeks area
  269. //     text.
  270. // Returns:
  271. //     A pointer to a CFont object that contains the font of the days of
  272. //     weeks area text.
  273. // ---------------------------------------------------------------------
  274. CFont* GetDaysOfWeekTextFont();
  275. // --------------------------------------------------------------------
  276. // Summary:
  277. //     This member function obtains the background color of the week
  278. //     numbers area.
  279. // Returns:
  280. //     A COLORREF object that contains the background color of the week
  281. //     numbers area.
  282. // --------------------------------------------------------------------
  283. virtual COLORREF GetWeekNumbersBackColor();
  284. // ----------------------------------------------------------------------
  285. // Summary:
  286. //     This member function obtains the text color of the week numbers
  287. //     items.
  288. // Returns:
  289. //     A COLORREF object that contains the text color of the week numbers
  290. //     items.
  291. // ----------------------------------------------------------------------
  292. virtual COLORREF GetWeekNumbersTextColor();
  293. // --------------------------------------------------------------------
  294. // Summary:
  295. //     This member function obtains the font of the week numbers items.
  296. // Returns:
  297. //     A pointer to a CFont object that contains the font of the week
  298. //     numbers items.
  299. // --------------------------------------------------------------------
  300. CFont* GetWeekNumbersTextFont();
  301. // ----------------------------------------------------------------------
  302. // Summary:
  303. //     This member function obtains the background color of the pop-up
  304. //     month list control.
  305. // Returns:
  306. //     A COLORREF object that contains the background color of the pop-up
  307. //     month list control.
  308. // ----------------------------------------------------------------------
  309. virtual COLORREF GetListControlBackColor();
  310. // ----------------------------------------------------------------------
  311. // Summary:
  312. //     This member function obtains the text color of the pop-up month
  313. //     list control.
  314. // Returns:
  315. //     A COLORREF object that contains the text color of the pop-up month
  316. //     list control.
  317. // ----------------------------------------------------------------------
  318. virtual COLORREF GetListControlTextColor();
  319. // --------------------------------------------------------------------
  320. // Summary:
  321. //     This member function obtains the font of the pop-up month list
  322. //     control.
  323. // Returns:
  324. //     A pointer to a CFont object that contains the font of the pop-up
  325. //     month list control.
  326. // --------------------------------------------------------------------
  327. CFont* GetListControlTextFont();
  328. // ----------------------------------------------------------------------
  329. // Summary:
  330. //     This member function obtains the highlighting color of the "Today"
  331. //     item.
  332. // Returns:
  333. //     A COLORREF object that contains the highlighting color of the
  334. //     "Today" item.
  335. // ----------------------------------------------------------------------
  336. virtual COLORREF GetHighlightTodayColor();
  337. // ---------------------------------------------------------------------
  338. // Summary:
  339. //     This member function sets the button's font.
  340. // Parameters:
  341. //     fontButton :  A CFont pointer to the button's font object.
  342. // Remarks:
  343. //     Call this function to set the new button's font from the provided
  344. //     CFont object.
  345. // See Also:
  346. //     SetButtonFontIndirect(LOGFONT*), GetButtonFont()
  347. // ---------------------------------------------------------------------
  348. void SetButtonFont(CFont* fontButton);
  349. //-----------------------------------------------------------------------
  350. // Summary:
  351. //     This member function sets the button's font using a LOGFONT
  352. //     structure.
  353. // Parameters:
  354. //     lFont - Pointer to the LOGFONT structure.
  355. // Remarks:
  356. //     This member function creates and sets the new button's font
  357. //     from the given LOGFONT structure.
  358. // See Also: SetButtonFont(CFont*), GetButtonFont()
  359. //-----------------------------------------------------------------------
  360. void SetButtonFontIndirect(LOGFONT* lFont);
  361. // --------------------------------------------------------------------
  362. // Summary:
  363. //     This member function is used to obtain the button's font object.
  364. // Returns:
  365. //     A pointer to the button's CFont object.
  366. // See Also:
  367. //     SetButtonFontIndirect(LOGFONT* lFont), SetButtonFont(CFont*
  368. //     fontButton)
  369. // --------------------------------------------------------------------
  370. CFont* GetButtonFont();
  371. //-----------------------------------------------------------------------
  372. // Summary:
  373. //     This member function is used to set the control's default font
  374. //     using a LOGFONT structure.
  375. // Parameters:
  376. //     lFont - Pointer to the LOGFONT structure.
  377. // Remarks:
  378. //     This member function creates and sets the control's new default
  379. //     font from the given LOGFONT structure.
  380. //-----------------------------------------------------------------------
  381. void SetFontIndirect(LOGFONT* lFont);
  382. // ----------------------------------------------------------------------
  383. // Summary:
  384. //     This member function is used to draw the control's buttons.
  385. // Parameters:
  386. //     pDC :           Pointer to a valid device context.
  387. //     rcButton :      A CRect that contains the button area bounding
  388. //                     rectangle coordinates.
  389. //     strButton :     A CString that contains the string of the button's
  390. //                     text.
  391. //     bIsDown :       A BOOL that determines if the button is down or up.
  392. //     bIsHighLight :  A BOOL that determines if the button is highlighted.
  393. //     bDrawText :     TRUE to draw button text
  394. // Remarks:
  395. //     Use this member function to draw buttons in the appropriate state.
  396. //     The state depends on the bIsDown parameter, the button may be
  397. //     drawn pressed or released. Furthermore, depending on the
  398. //     bIsHighLight, the button may be drawn with highlighted borders.
  399. // Example:
  400. // <code>
  401. // for (int i = 0; i < GetButtonCount(); i++)
  402. // {
  403. //     CXTPDatePickerButton* pButton = GetButton(i);
  404. //     if (pButton->m_bVisible)
  405. //     DrawButton(pDC, pButton->m_rcButton, pButton->m_strCaption,
  406. //     pButton->m_bPressed, pButton->m_bHighlight);
  407. // }
  408. // </code>
  409. // ----------------------------------------------------------------------
  410. virtual void DrawButton(CDC* pDC, const CRect&, const CString& strButton,
  411. BOOL bIsDown, BOOL bIsHighLight);
  412. // --------------------------------------------------------------------
  413. // Summary:
  414. //     Call this member function to draw a single month day in the month
  415. //     area.
  416. // Parameters:
  417. //     pDC      : Pointer to a valid device context.
  418. //     pDay     : Pointer to day object.
  419. // Remarks:
  420. //     It is called from CXTPDatePickerItemDay implementation.
  421. //     You can override it to customize drawing.
  422. // --------------------------------------------------------------------
  423. virtual BOOL DrawDay(CDC* pDC, CXTPDatePickerItemDay* pDay);
  424. // --------------------------------------------------------------------
  425. // Summary:
  426. //     Call this member function to draw the month header in the month
  427. //     area.
  428. // Parameters:
  429. //     pDC      : Pointer to a valid device context.
  430. //     pMonth   : Pointer to month object.
  431. // Remarks:
  432. //     It is called from CXTPDatePickerItemMonth implementation.
  433. //     You can override it to customize drawing.
  434. // --------------------------------------------------------------------
  435. virtual void DrawMonthHeader(CDC* pDC, CXTPDatePickerItemMonth* pMonth);
  436. // --------------------------------------------------------------------
  437. // Summary:
  438. //     Call this member function to draw the week numbers in the month
  439. //     area.
  440. // Parameters:
  441. //     pDC      : Pointer to a valid device context.
  442. //     pMonth   : Pointer to month object.
  443. // Remarks:
  444. //     It is called from CXTPDatePickerItemMonth implementation.
  445. //     You can override it to customize drawing.
  446. // --------------------------------------------------------------------
  447. virtual void DrawWeekNumbers(CDC* pDC, CXTPDatePickerItemMonth* pMonth);
  448. // --------------------------------------------------------------------
  449. // Summary:
  450. //     Call this member function to draw the days of the week in the
  451. //     month header.
  452. // Parameters:
  453. //     pDC      : Pointer to a valid device context.
  454. //     pMonth   : Pointer to month object.
  455. // Remarks:
  456. //     It is called from CXTPDatePickerItemMonth implementation.
  457. //     You can override it to customize drawing.
  458. // --------------------------------------------------------------------
  459. virtual void DrawDaysOfWeek(CDC* pDC, CXTPDatePickerItemMonth* pMonth);
  460. // ----------------------------------------------------------------
  461. // Summary:
  462. //     This member function is used to calculate the day's bounding
  463. //     rectangle coordinates.
  464. // Parameters:
  465. //     pDC :  Pointer to a valid device context.
  466. // Remarks:
  467. //     This member function calculates the day's bounding rectangle
  468. //     coordinates for the given device context current day's font.
  469. // Returns:
  470. //     A CSize object containing the day's bounding rectangle
  471. //     coordinates.
  472. // ----------------------------------------------------------------
  473. virtual CSize CalcDayRect(CDC* pDC);
  474. // -------------------------------------------------------------------
  475. // Summary:
  476. //     This member function calculates the month's header bounding
  477. //     rectangle coordinates.
  478. // Parameters:
  479. //     pDC :  Pointer to a valid device context.
  480. // Remarks:
  481. //     This member function calculates the month's header bounding
  482. //     rectangle coordinates for the given device context's current
  483. //     header font.
  484. // Returns:
  485. //     A CSize object containing the month's header bounding rectangle
  486. //     coordinates.
  487. // -------------------------------------------------------------------
  488. virtual CSize CalcMonthHeaderRect(CDC* pDC);
  489. // ---------------------------------------------------------------------
  490. // Summary:
  491. //     This member function calculates the "day of week names" bounding
  492. //     rectangle coordinates.
  493. // Parameters:
  494. //     pDC :  Pointer to a valid device context.
  495. // Remarks:
  496. //     Calculates the "day of week names" bounding rectangle coordinates
  497. //     for the given device context's current header font.
  498. // Returns:
  499. //     A CSize object that contains the "day of week names" rectangle
  500. //     coordinates.
  501. // ---------------------------------------------------------------------
  502. virtual CSize CalcDayOfWeekRect(CDC* pDC);
  503. // ----------------------------------------------------------------------
  504. // Summary:
  505. //     This member function calculates the "week numbers" bounding
  506. //     rectangle coordinates.
  507. // Parameters:
  508. //     pDC :  Pointer to a valid device context.
  509. // Remarks:
  510. //     Calculates the "week numbers" bounding rectangle coordinates for
  511. //     the given device context's current header font.
  512. // Returns:
  513. //     A CSize object that contains the "week numbers" bounding rectangle
  514. //     coordinates.
  515. // ----------------------------------------------------------------------
  516. virtual CSize CalcWeekNumbersRect(CDC* pDC);
  517. // ------------------------------------------------------------------
  518. // Summary:
  519. //     This member function calculates the month's bounding rectangle
  520. //     coordinates.
  521. // Parameters:
  522. //     pDC :  Pointer to a valid device context.
  523. // Remarks:
  524. //     Calculates the Month's bounding rectangle coordinates for the
  525. //     given device context's current header font.
  526. // Returns:
  527. //     A CSize object that contains the month's bounding rectangle
  528. //     coordinates.
  529. // ------------------------------------------------------------------
  530. virtual CSize CalcMonthRect(CDC* pDC);
  531. // --------------------------------------------------------------------------------
  532. // Summary:
  533. //     This member function is used to switch "Themes".
  534. // Parameters:
  535. //     bEnableTheme :  A BOOL that is used as a flag to indicate if themes are
  536. //                     enabled. Set to TRUE if Themes are enabled, FALSE Themes not enabled.
  537. // --------------------------------------------------------------------------------
  538. virtual void EnableTheme(BOOL bEnableTheme);
  539. // --------------------------------------------------------------------
  540. // Summary:
  541. //     This member function is used to obtain the back cursor used for
  542. //     weeks selection.
  543. // Returns:
  544. //     A handle of the loaded cursor.
  545. // --------------------------------------------------------------------
  546. virtual HCURSOR GetCursorBack();
  547. protected:
  548. // --------------------------------------------------------------------
  549. // Summary:
  550. //     This member function is used to draw a black triangle.
  551. // Parameters:
  552. //     pDC : Pointer to a valid device context.
  553. //     pt0 : Apex coordinate.
  554. //     pt1 : Apex coordinate.
  555. //     pt2 : Apex coordinate.
  556. //     clrColor : The triangle color
  557. // --------------------------------------------------------------------
  558. virtual void Triangle(CDC* pDC, CPoint pt0, CPoint pt1, CPoint pt2, COLORREF clrColor = 0);
  559. // -----------------------------------------------------------------------
  560. // Summary:
  561. //     This member function is used to get a parent date picker object.
  562. // Returns:
  563. //     A pointer to CXTPDatePickerControl parent object.
  564. // -----------------------------------------------------------------------
  565. virtual CXTPDatePickerControl*  GetControl();
  566. // -----------------------------------------------------------------------
  567. // Summary:
  568. //     This member function is used to set a parent date picker object.
  569. // Parameters:
  570. //     pControl  : Pointer to a parent control when assigned or NULL when
  571. //                 detached.
  572. // Remarks:
  573. //     Called from CXTPDatePickerControl implementation when paint manager
  574. //     (or derived theme) assigned or detached.
  575. // -----------------------------------------------------------------------
  576. virtual void SetControl(CXTPDatePickerControl*  pControl);
  577. //-----------------------------------------------------------------------
  578. // Summary:
  579. //     This member function is used to obtain current paint theme.
  580. // Returns:
  581. //     A paint theme ID from enum XTPCalendarTheme.
  582. //-----------------------------------------------------------------------
  583. virtual XTPCalendarTheme GetPaintTheme() const;
  584. //-----------------------------------------------------------------------
  585. // Summary:
  586. //     This member function is used to set current paint theme.
  587. // Parameters:
  588. //     ePaintTheme - A paint theme ID from enum XTPCalendarTheme.
  589. //-----------------------------------------------------------------------
  590. virtual void SetPaintTheme(XTPCalendarTheme ePaintTheme);
  591. protected:
  592. COLORREF m_clrControlBack;      // -------------------------------------------------------------
  593.                                 // This member variable is a COLORREF object that is used as the
  594.                                 // background color of the control.
  595.                                 // -------------------------------------------------------------
  596. COLORREF m_clrDayBack;          // -------------------------------------------------------------
  597.                                 // This member variable is a COLORREF object that is used as the
  598.                                 // background color of the normal day item.
  599.                                 // -------------------------------------------------------------
  600. COLORREF m_clrDayText;          // -------------------------------------------------------------
  601.                                 // This member variable is a COLORREF object that is used as the
  602.                                 // color of the usual day item.
  603.                                 // -------------------------------------------------------------
  604. COLORREF m_clrNonMonthDayBack;  // -------------------------------------------------------------
  605.                                 // This member variable is a COLORREF object that is used as the
  606.                                 // background color of the non month day item.
  607.                                 // -------------------------------------------------------------
  608. COLORREF m_clrNonMonthDayText;  // -------------------------------------------------------------
  609.                                 // This member variable is a COLORREF object that is used as the
  610.                                 // color of the non month day item.
  611.                                 // -------------------------------------------------------------
  612. COLORREF m_clrSelectedDayBack;  // -------------------------------------------------------------
  613.                                 // This member variable is a COLORREF object that is used as the
  614.                                 // background color of the selected day item.
  615.                                 // -------------------------------------------------------------
  616. COLORREF m_clrSelectedDayText;  // -------------------------------------------------------------
  617.                                 // This member variable is a COLORREF object that is used as the
  618.                                 // color of the selected day item.
  619.                                 // -------------------------------------------------------------
  620. COLORREF m_clrHeaderBack;       // -------------------------------------------------------------
  621.                                 // This member variable is a COLORREF object that is used as the
  622.                                 // background color of the month header area.
  623.                                 // -------------------------------------------------------------
  624. COLORREF m_clrHeaderText;       // ------------------------------------------------------------------
  625.                                 // This member variable is a COLORREF object that is used as the text
  626.                                 // color of the month header area.
  627.                                 // ------------------------------------------------------------------
  628. COLORREF m_clrDaysOfWeekBack;   // --------------------------------------------------------------
  629.                                 // This member variable is a COLORREF object that is used for the
  630.                                 // background color of the days of weeks area.
  631.                                 // --------------------------------------------------------------
  632. COLORREF m_clrDaysOfWeekText;   // ------------------------------------------------------------------
  633.                                 // This member variable is a COLORFEF object that is used as the text
  634.                                 // color of the days of weeks area.
  635.                                 // ------------------------------------------------------------------
  636. COLORREF m_clrWeekNumbersBack;  // -------------------------------------------------------------
  637.                                 // This member variable is a COLORREF object that is used as the
  638.                                 // background color of the week numbers area.
  639.                                 // -------------------------------------------------------------
  640. COLORREF m_clrWeekNumbersText;  // ------------------------------------------------------------------
  641.                                 // This member variable is a COLORREF object that is used as the text
  642.                                 // color of the week numbers items.
  643.                                 // ------------------------------------------------------------------
  644. COLORREF m_clrListControlBack;  // -------------------------------------------------------------
  645.                                 // This member variable is a COLORREF object that is used as the
  646.                                 // background color of the pop-up month list control.
  647.                                 // -------------------------------------------------------------
  648. COLORREF m_clrListControlText;  // ------------------------------------------------------------------
  649.                                 // This member variable is a COLORREF object that is used as the text
  650.                                 // color of the pop-up month list control.
  651.                                 // ------------------------------------------------------------------
  652. COLORREF m_clrHighlightToday;   // -------------------------------------------------------------
  653.                                 // This member variable is a COLORREF object that is used as the
  654.                                 // color for highlighting the "Today" item.
  655.                                 // -------------------------------------------------------------
  656. COLORREF m_clrBtnText;          // -------------------------------------------------------------
  657.                                 // This member variable is a COLORREF object that is used as the
  658.                                 // color for the button text.
  659.                                 // -------------------------------------------------------------
  660. COLORREF m_clrStaticBorder;     // Static border color
  661. COLORREF m_clr3DShadow;         // -----------------------------------------------------------------
  662.                                 // This member variable is a COLORREF object that is used to specify
  663.                                 // the color for shadow areas.
  664.                                 // -----------------------------------------------------------------
  665. COLORREF m_clrBtnFace;          // -------------------------------------------------------------------
  666.                                 // This member variable is a COLORREF object that is used as the basic
  667.                                 // color for buttons.
  668.                                 // -------------------------------------------------------------------
  669. COLORREF m_clrWindow;           // -------------------------------------------------------------
  670.                                 // This member variable is a COLORREF object that is used as the
  671.                                 // Color of the window.
  672.                                 // -------------------------------------------------------------
  673. COLORREF m_clr3DLight;          // -----------------------------------------------------------------
  674.                                 // This member variable is a COLORREF object that is used to specify
  675.                                 // the color for light areas
  676.                                 // -----------------------------------------------------------------
  677. CFont m_fontDay;                // ----------------------------------------------------------------
  678.                                 // This member variable is a CFont object that is used for the font
  679.                                 // of the usual day item.
  680.                                 // ----------------------------------------------------------------
  681. CFont m_fontDayBold;             // ----------------------------------------------------------------
  682. // This member variable is a CFont object that is used for the font
  683. // of the bold day item.
  684. // ----------------------------------------------------------------
  685. CFont m_fontNonMonthDay;        // ---------------------------------------------------------------
  686.                                 // This member variable is a CFont object that is used as the font
  687.                                 // for the non month day item.
  688.                                 // ---------------------------------------------------------------
  689. CFont m_fontHeader;             // ---------------------------------------------------------------
  690.                                 // This member variable is a CFont object that is used as the font
  691.                                 // for the header text.
  692.                                 // ---------------------------------------------------------------
  693. CFont m_fontDaysOfWeek;         // ---------------------------------------------------------------
  694.                                 // This member variable is a CFont object that is used as the font
  695.                                 // for the days of weeks text.
  696.                                 // ---------------------------------------------------------------
  697. CFont m_fontWeekNumbers;        // ---------------------------------------------------------------
  698.                                 // This member variable is a CFont object that is used as the font
  699.                                 // for the week number items text.
  700.                                 // ---------------------------------------------------------------
  701. CFont m_fontListControl;        // ---------------------------------------------------------------
  702.                                 // This member variable is a CFont object that is used as the font
  703.                                 // for the pop-up month list control.
  704.                                 // ---------------------------------------------------------------
  705. CFont m_fontButton;             // ---------------------------------------------------------------
  706.                                 // This member variable is a CFont object that is used as the font
  707.                                 // for the button text.
  708.                                 // ---------------------------------------------------------------
  709. BOOL m_bEnableTheme;            // ---------------------------------------------------------------
  710.                                 // This member variable is a BOOL that is used to indicate if Luna
  711.                                 // colors are enabled. The valid values are TRUE to enable Luna
  712.                                 // colors, otherwise FALSE.
  713.                                 // ---------------------------------------------------------------
  714. CXTPWinThemeWrapper m_themeButton; // -----------------------------------------------------------------
  715.                                    // This member variable is a CXTPWinThemeWrapper object that is used
  716.                                    // as the theme wrapper for the Paint Manager.
  717.                                    // -----------------------------------------------------------------
  718. HCURSOR m_hCursorBack;          // Back cursor for week selection
  719. XTPCalendarTheme m_nPaintTheme; // Store the Paint Theme;
  720. protected:
  721. CXTPDatePickerControl*  m_pControl; // Stores a pointer to owner control.
  722. };
  723. AFX_INLINE COLORREF CXTPDatePickerPaintManager::GetControlBackColor() {
  724. return m_clrControlBack;
  725. }
  726. AFX_INLINE COLORREF CXTPDatePickerPaintManager::GetDayBackColor() {
  727. return m_clrDayBack;
  728. }
  729. AFX_INLINE COLORREF CXTPDatePickerPaintManager::GetDayTextColor() {
  730. return m_clrDayText;
  731. }
  732. AFX_INLINE CFont* CXTPDatePickerPaintManager::GetDayTextFont() {
  733. return &m_fontDay;
  734. }
  735. AFX_INLINE CFont* CXTPDatePickerPaintManager::GetDayTextFontBold() {
  736. return &m_fontDayBold;
  737. }
  738. AFX_INLINE COLORREF CXTPDatePickerPaintManager::GetNonMonthDayBackColor() {
  739. return m_clrNonMonthDayBack;
  740. }
  741. AFX_INLINE COLORREF CXTPDatePickerPaintManager::GetNonMonthDayTextColor() {
  742. return m_clrNonMonthDayText;
  743. }
  744. AFX_INLINE CFont* CXTPDatePickerPaintManager::GetNonMonthDayTextFont() {
  745. return &m_fontNonMonthDay;
  746. }
  747. AFX_INLINE COLORREF CXTPDatePickerPaintManager::GetSelectedDayBackColor() {
  748. return m_clrSelectedDayBack;
  749. }
  750. AFX_INLINE COLORREF CXTPDatePickerPaintManager::GetSelectedDayTextColor() {
  751. return m_clrSelectedDayText;
  752. }
  753. AFX_INLINE COLORREF CXTPDatePickerPaintManager::GetHeaderBackColor() {
  754. return m_clrHeaderBack;
  755. }
  756. AFX_INLINE COLORREF CXTPDatePickerPaintManager::GetHeaderTextColor() {
  757. return m_clrHeaderText;
  758. }
  759. AFX_INLINE CFont* CXTPDatePickerPaintManager::GetHeaderTextFont() {
  760. return &m_fontHeader;
  761. }
  762. AFX_INLINE COLORREF CXTPDatePickerPaintManager::GetDaysOfWeekBackColor() {
  763. return m_clrDaysOfWeekBack;
  764. }
  765. AFX_INLINE COLORREF CXTPDatePickerPaintManager::GetDaysOfWeekTextColor() {
  766. return m_clrDaysOfWeekText;
  767. }
  768. AFX_INLINE CFont* CXTPDatePickerPaintManager::GetDaysOfWeekTextFont() {
  769. return &m_fontDaysOfWeek;
  770. }
  771. AFX_INLINE COLORREF CXTPDatePickerPaintManager::GetWeekNumbersBackColor() {
  772. return m_clrWeekNumbersBack;
  773. }
  774. AFX_INLINE COLORREF CXTPDatePickerPaintManager::GetWeekNumbersTextColor() {
  775. return m_clrWeekNumbersText;
  776. }
  777. AFX_INLINE CFont* CXTPDatePickerPaintManager::GetWeekNumbersTextFont() {
  778. return &m_fontWeekNumbers;
  779. }
  780. AFX_INLINE COLORREF CXTPDatePickerPaintManager::GetListControlBackColor() {
  781. return m_clrListControlBack;
  782. }
  783. AFX_INLINE COLORREF CXTPDatePickerPaintManager::GetListControlTextColor() {
  784. return m_clrListControlText;
  785. }
  786. AFX_INLINE CFont* CXTPDatePickerPaintManager::GetListControlTextFont() {
  787. return &m_fontListControl;
  788. }
  789. AFX_INLINE COLORREF CXTPDatePickerPaintManager::GetHighlightTodayColor() {
  790. return m_clrHighlightToday;
  791. }
  792. AFX_INLINE CFont* CXTPDatePickerPaintManager::GetButtonFont(){
  793. return &m_fontButton;
  794. }
  795. AFX_INLINE void CXTPDatePickerPaintManager::EnableTheme(BOOL bEnableTheme) {
  796. m_bEnableTheme = bEnableTheme;
  797. RefreshMetrics();
  798. }
  799. AFX_INLINE HCURSOR CXTPDatePickerPaintManager::GetCursorBack() {
  800. return m_hCursorBack;
  801. }
  802. AFX_INLINE CXTPDatePickerControl* CXTPDatePickerPaintManager::GetControl() {
  803. return m_pControl;
  804. }
  805. AFX_INLINE void CXTPDatePickerPaintManager::SetControl(CXTPDatePickerControl*   pControl) {
  806. m_pControl = pControl;
  807. }
  808. //////////////////////////////////////////////////////////////////////////
  809. //************************************************************************
  810. class CXTPDatePickerTheme;
  811. //{{AFX_CODEJOCK_PRIVATE
  812. class _XTP_EXT_CLASS CXTPDatePickerThemePart : public CXTPCmdTarget
  813. {
  814. DECLARE_DYNAMIC(CXTPDatePickerThemePart)
  815. public:
  816. CXTPDatePickerThemePart()
  817. {
  818. m_pTheme = NULL;
  819. }
  820. virtual void RefreshMetrics()
  821. {
  822. };
  823. void Create(CXTPDatePickerTheme* pTheme);
  824. protected:
  825. CXTPDatePickerTheme* m_pTheme;
  826. };
  827. //}}AFX_CODEJOCK_PRIVATE
  828. //---------------------------------------------------------------------------
  829. // Summary:
  830. //     Abstract class CXTPDatePickerTheme is derived from
  831. //     CXTPDatePickerPaintManager and handles most of the drawing activities
  832. //     for the DatePicker control.
  833. //     This class must be used as a base to create different themes
  834. //     implementations (like CXTPDatePickerThemeOffice2007).
  835. // Remarks:
  836. //     The difference from paint manager that it has own drawing parameters
  837. //     set to customize DatePicker control - like in the CXTPCalendarTheme
  838. //     for CalendarControl.
  839. //     PaintManager drawing parameters are valid too, but changing of them
  840. //     will take no effects.
  841. // See Also:
  842. //     CXTPDatePickerThemeOffice2007
  843. //---------------------------------------------------------------------------
  844. class _XTP_EXT_CLASS CXTPDatePickerTheme : public CXTPDatePickerPaintManager
  845. {
  846. //{{AFX_CODEJOCK_PRIVATE
  847. friend class CXTPDatePickerThemePart;
  848. friend class CXTPDatePickerControl;
  849. typedef CXTPDatePickerPaintManager TBase;
  850. DECLARE_DYNAMIC(CXTPDatePickerTheme)
  851. public:
  852. CXTPDatePickerTheme(){};
  853. virtual ~CXTPDatePickerTheme();
  854. //-----------------------------------------------------------------------
  855. class CThemeFontColorSet
  856. {
  857. public:
  858. CXTPPaintManagerColor       clrColor;
  859. CXTPCalendarThemeFontValue  fntFont;
  860. void SetStandardValue(const CThemeFontColorSet& refSrc)
  861. {
  862. clrColor.SetStandardValue(refSrc.clrColor);
  863. fntFont.SetStandardValue(refSrc.fntFont.GetValue());
  864. }
  865. };
  866. //-----------------------------------------------------------------------
  867. class CThemeFontColorBkSet : public CThemeFontColorSet
  868. {
  869. public:
  870. CXTPPaintManagerColor       clrBkColor;
  871. void SetStandardValue(const CThemeFontColorBkSet& refSrc)
  872. {
  873. CThemeFontColorSet::SetStandardValue(refSrc);
  874. clrBkColor.SetStandardValue(refSrc.clrBkColor);
  875. }
  876. };
  877. //=======================================================================
  878. class _XTP_EXT_CLASS CTODay : public CXTPDatePickerThemePart
  879. {
  880. public:
  881. virtual void RefreshMetrics();
  882. virtual BOOL Draw(CDC* pDC, CXTPDatePickerItemDay* pDay);
  883. struct CDayItem
  884. {
  885. CThemeFontColorBkSet        fcsetText;
  886. CThemeFontColorBkSet        fcsetTextBold;
  887. CThemeFontColorBkSet        fcsetTextGrayed;
  888. CThemeFontColorBkSet        fcsetTextGrayedBold;
  889. };
  890. CDayItem m_Normal;
  891. CDayItem m_Selected;
  892. CXTPPaintManagerColor m_clrToodayFrame;
  893. };
  894. friend class CTODay;
  895. virtual CTODay* GetDayPart() = 0;
  896. //=======================================================================
  897. class _XTP_EXT_CLASS CTOMonthHeader : public CXTPDatePickerThemePart
  898. {
  899. public:
  900. virtual void RefreshMetrics();
  901. virtual void Draw(CDC* pDC, CXTPDatePickerItemMonth* pMonth);
  902. CXTPPaintManagerColor   m_clrBackground;
  903. CThemeFontColorSet      m_Text;
  904. CXTPPaintManagerColor   m_clrButtons;
  905. };
  906. friend class CTOMonthHeader;
  907. virtual CTOMonthHeader* GetMonthHeaderPart() = 0;
  908. //=======================================================================
  909. class _XTP_EXT_CLASS CTOWeekDay : public CXTPDatePickerThemePart
  910. {
  911. public:
  912. virtual void RefreshMetrics();
  913. virtual void Draw(CDC* pDC, CXTPDatePickerItemMonth* pMonth);
  914. CThemeFontColorBkSet    m_Text;
  915. };
  916. friend class CTOWeekDay;
  917. virtual CTOWeekDay* GetWeekDayPart() = 0;
  918. //=======================================================================
  919. class _XTP_EXT_CLASS CTOWeekNumber : public CXTPDatePickerThemePart
  920. {
  921. public:
  922. virtual void RefreshMetrics();
  923. virtual void Draw(CDC* pDC, CXTPDatePickerItemMonth* pMonth);
  924. CThemeFontColorBkSet    m_Text;
  925. };
  926. friend class CTOWeekNumber;
  927. virtual CTOWeekNumber* GetWeekNumberPart() = 0;
  928. //=======================================================================
  929. class _XTP_EXT_CLASS CTOButton : public CXTPDatePickerThemePart
  930. {
  931. public:
  932. virtual void RefreshMetrics();
  933. CThemeFontColorBkSet    m_Text;
  934. };
  935. friend class CTOButton;
  936. virtual CTOButton* GetButtonPart() = 0;
  937. //=======================================================================
  938. CXTPPaintManagerColor m_clrBackground;
  939. CXTPPaintManagerColor m_clrLineTop;
  940. CXTPPaintManagerColor m_clrLineLeft;
  941. //CXTPPaintManagerColor m_clrLineBottom;
  942. CXTPCalendarThemeFontValue  m_fntBaseFont;
  943. CXTPCalendarThemeFontValue  m_fntBaseFontBold;
  944. //=======================================================================
  945. virtual void RefreshMetrics();
  946. virtual COLORREF GetColor2(LPCTSTR pcszColorName, COLORREF clrDefault);
  947. //******************************************************
  948. virtual void DrawBackground(CDC* pDC, CRect rcClient);
  949. virtual void DrawBorder(CDC* pDC, const CXTPDatePickerControl* pControl, CRect& rcClient, BOOL bDraw);
  950. virtual void DrawScrollTriangle(CDC* pDC, CRect rcSpot, BOOL bLeftDirection, COLORREF clrColor = 0);
  951. virtual void DrawButton(CDC* pDC, const CRect& rcButton, const CString& strButton,
  952. BOOL bIsDown, BOOL bIsHighLight);
  953. virtual BOOL DrawDay(CDC* pDC, CXTPDatePickerItemDay* pDay);
  954. virtual void DrawMonthHeader(CDC* pDC, CXTPDatePickerItemMonth* pMonth);
  955. virtual void DrawWeekNumbers(CDC* pDC, CXTPDatePickerItemMonth* pMonth);
  956. virtual void DrawDaysOfWeek(CDC* pDC, CXTPDatePickerItemMonth* pMonth);
  957. virtual CSize CalcDayRect(CDC* pDC);
  958. virtual CSize CalcMonthHeaderRect(CDC* pDC);
  959. virtual CSize CalcDayOfWeekRect(CDC* pDC);
  960. virtual CSize CalcWeekNumbersRect(CDC* pDC);
  961. //virtual CSize CalcMonthRect(CDC* pDC);
  962. protected:
  963. typedef CXTPCalendarPtrCollectionT<CXTPDatePickerThemePart> CThemePartsArray;
  964. CThemePartsArray        m_arMembers;
  965. virtual void SetControl(CXTPDatePickerControl*  pControl);
  966. DECLARE_XTP_SINK(CXTPDatePickerTheme, m_Sink)
  967. virtual void OnEvent_Office2007ImagesChanged(XTP_NOTIFY_CODE Event, WPARAM wParam, LPARAM lParam);
  968. //}}AFX_CODEJOCK_PRIVATE
  969. };
  970. /////////////////////////////////////////////////////////////////////////////
  971. //---------------------------------------------------------------------------
  972. // Summary:
  973. //     Class CXTPDatePickerThemeOffice2007 is derived from CXTPDatePickerTheme
  974. //     is implement Office 2007 style for DatePicker control.
  975. // Example:
  976. // <code>
  977. //      if (m_bThemeOffice2007)
  978. //      {
  979. //          CXTPDatePickerThemeOffice2007* pTheme2007 = new CXTPDatePickerThemeOffice2007;
  980. //          m_wndDatePicker.SetTheme(pTheme2007);
  981. //      }
  982. //      else
  983. //      {
  984. //          m_wndDatePicker.SetTheme(NULL);
  985. //      }
  986. // </code>
  987. // See Also:
  988. //     CXTPDatePickerThemeOffice2007
  989. //---------------------------------------------------------------------------
  990. class _XTP_EXT_CLASS CXTPDatePickerThemeOffice2007 : public CXTPDatePickerTheme
  991. {
  992. //{{AFX_CODEJOCK_PRIVATE
  993. DECLARE_DYNCREATE(CXTPDatePickerThemeOffice2007)
  994. typedef CXTPDatePickerTheme TBase;
  995. public:
  996. CXTPDatePickerThemeOffice2007();
  997. virtual ~CXTPDatePickerThemeOffice2007(){};
  998. virtual void RefreshMetrics();
  999. virtual void SetPaintTheme(XTPCalendarTheme ePaintTheme);
  1000. //=======================================================================
  1001. class CTODay_base : public CXTPDatePickerTheme::CTODay {};
  1002. class _XTP_EXT_CLASS CTODay : public CTODay_base
  1003. {
  1004. typedef CTODay_base TBase;
  1005. public:
  1006. virtual void RefreshMetrics();
  1007. };
  1008. friend class CTODay;
  1009. CTODay* m_pDayPart;
  1010. virtual CTODay* GetDayPartX() {return m_pDayPart;};
  1011. virtual CXTPDatePickerTheme::CTODay* GetDayPart(){return m_pDayPart;};
  1012. //=======================================================================
  1013. class CTOMonthHeader_base : public CXTPDatePickerTheme::CTOMonthHeader {};
  1014. class _XTP_EXT_CLASS CTOMonthHeader : public CTOMonthHeader_base
  1015. {
  1016. typedef CTOMonthHeader_base TBase;
  1017. public:
  1018. virtual void RefreshMetrics();
  1019. };
  1020. friend class CTOMonthHeader;
  1021. CTOMonthHeader* m_pMonthHeader;
  1022. virtual CTOMonthHeader* GetMonthHeaderPartX() {return m_pMonthHeader;};
  1023. virtual CXTPDatePickerTheme::CTOMonthHeader* GetMonthHeaderPart() {return m_pMonthHeader;};
  1024. //=======================================================================
  1025. class CTOWeekDay_base : public CXTPDatePickerTheme::CTOWeekDay {};
  1026. class _XTP_EXT_CLASS CTOWeekDay : public CTOWeekDay_base
  1027. {
  1028. typedef CTOWeekDay_base TBase;
  1029. public:
  1030. //virtual void RefreshMetrics();
  1031. };
  1032. friend class CTOWeekDay;
  1033. CTOWeekDay* m_pWeekDay;
  1034. virtual CTOWeekDay* GetWeekDayPartX() {return m_pWeekDay;};
  1035. virtual CXTPDatePickerTheme::CTOWeekDay* GetWeekDayPart() {return m_pWeekDay;};
  1036. //=======================================================================
  1037. class CTOWeekNumber_base : public CXTPDatePickerTheme::CTOWeekNumber {};
  1038. class _XTP_EXT_CLASS CTOWeekNumber : public CTOWeekNumber_base
  1039. {
  1040. typedef CTOWeekNumber_base TBase;
  1041. public:
  1042. //virtual void RefreshMetrics();
  1043. };
  1044. friend class CTOWeekNumber;
  1045. CTOWeekNumber* m_pWeekNumberPart;
  1046. virtual CTOWeekNumber* GetWeekNumberPartX() {return m_pWeekNumberPart;};
  1047. virtual CXTPDatePickerTheme::CTOWeekNumber* GetWeekNumberPart() {return m_pWeekNumberPart;};
  1048. //=======================================================================
  1049. class CTOButton_base : public CXTPDatePickerTheme::CTOButton {};
  1050. class _XTP_EXT_CLASS CTOButton : public CTOButton_base
  1051. {
  1052. typedef CTOButton_base TBase;
  1053. public:
  1054. //virtual void RefreshMetrics();
  1055. };
  1056. friend class CTOButton;
  1057. CTOButton* m_pButtonPart;
  1058. virtual CTOButton* GetButtonPartX() {return m_pButtonPart;};
  1059. virtual CXTPDatePickerTheme::CTOButton* GetButtonPart() {return m_pButtonPart;};
  1060. //=======================================================================
  1061. protected:
  1062. //}}AFX_CODEJOCK_PRIVATE
  1063. };
  1064. //}}AFX_CODEJOCK_PRIVATE
  1065. #endif // !defined(_XTPDATEPICKERPAINTMANAGER_H__)