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

对话框与窗口

开发平台:

Visual C++

  1. // XTPCalendarDayViewDay.h: interface for the CXTPCalendarDayViewDay 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(_XTPCALENDARDAYVIEWDAY_H__)
  22. #define _XTPCALENDARDAYVIEWDAY_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. #include "XTPCalendarDayViewEvent.h"
  28. #include "XTPCalendarViewDay.h"
  29. class CXTPCalendarDayView;
  30. class CXTPCalendarViewPart;
  31. struct XTP_CALENDAR_HITTESTINFO_DAY_VIEW;
  32. //===========================================================================
  33. // Summary:
  34. //     This class represents a single resource view portion of the Calendar
  35. //     Day View.
  36. // Remarks:
  37. //     It represents a specific view of the CalendarView's associated events
  38. //     data grouped by one day and one resource and provides basic
  39. //     functionality on this data using user input through keyboard and mouse.
  40. //
  41. // See Also: CXTPCalendarDayViewDay
  42. //===========================================================================
  43. class _XTP_EXT_CLASS CXTPCalendarDayViewGroup : public CXTPCalendarViewGroupT<
  44. CXTPCalendarDayViewDay,
  45. CXTPCalendarDayViewEvent,
  46. XTP_CALENDAR_HITTESTINFO_DAY_VIEW,
  47. CXTPCalendarDayViewGroup>
  48. {
  49. //{{AFX_CODEJOCK_PRIVATE
  50. friend class CXTPCalendarDayViewEvent;
  51. friend class CXTPCalendarTheme;
  52. DECLARE_DYNAMIC(CXTPCalendarDayViewGroup)
  53. //}}AFX_CODEJOCK_PRIVATE
  54. public:
  55. //-----------------------------------------------------------------------
  56. // Summary:
  57. //     Base class type definition.
  58. //-----------------------------------------------------------------------
  59. typedef CXTPCalendarViewGroupT<
  60. CXTPCalendarDayViewDay,
  61. CXTPCalendarDayViewEvent,
  62. XTP_CALENDAR_HITTESTINFO_DAY_VIEW,
  63. CXTPCalendarDayViewGroup >
  64. TBase;
  65. //-----------------------------------------------------------------------
  66. // Summary:
  67. //     Default object constructor.
  68. //     Construct CXTPCalendarDayViewGroup object.
  69. // Parameters:
  70. //     pViewDay - Pointer to CXTPCalendarDayViewDay object.
  71. // See Also: ~CXTPCalendarDayViewGroup()
  72. //-----------------------------------------------------------------------
  73. CXTPCalendarDayViewGroup(CXTPCalendarDayViewDay* pViewDay);
  74. //-----------------------------------------------------------------------
  75. // Summary:
  76. //     Default class destructor.
  77. // Remarks:
  78. //     Handles member items deallocation.
  79. //-----------------------------------------------------------------------
  80. virtual ~CXTPCalendarDayViewGroup();
  81. //-----------------------------------------------------------------------
  82. // Summary:
  83. //     This member function is used to adjust the view's layout depending
  84. //     on the provided bounding rectangle. and calls AdjustLayout() for
  85. //     all sub items.
  86. // Parameters:
  87. //     pDC     - Pointer to a valid device context.
  88. //     rcGroup - A CRect object containing the dimensions of the bounding
  89. //               rectangle for the DayViewGroup area.
  90. // Remarks:
  91. //     AdjustLayout2 is called by calendar control instead of AdjustLayout
  92. //     when theme is set.
  93. //-----------------------------------------------------------------------
  94. virtual void AdjustLayout(CDC* pDC, const CRect& rcGroup);
  95. virtual void AdjustLayout2(CDC* pDC, const CRect& rcGroup); //<COMBINE AdjustLayout>
  96. //-----------------------------------------------------------------------
  97. // Summary:
  98. //     This member function is used to draw the view content utilizing
  99. //     the specified device context.
  100. // Parameters:
  101. //     pDC - Pointer to a valid device context.
  102. // Remarks:
  103. //     Call AdjustLayout() before Draw()
  104. // See Also: AdjustLayout
  105. //-----------------------------------------------------------------------
  106. virtual void Draw(CDC* pDC);
  107. //-----------------------------------------------------------------------
  108. // Summary:
  109. //     This member function is used to fill the
  110. //     XTP_CALENDAR_HITTESTINFO_DAY_VIEW structure.
  111. // Parameters:
  112. //     pt - A CPoint object that contains the point to test.
  113. //     pHitTest - Pointer to an XTP_CALENDAR_HITTESTINFO_DAY_VIEW struct.
  114. // Remarks:
  115. //     Call this member function to gather hit test information from
  116. //     the day view.
  117. // See Also: XTP_CALENDAR_HITTESTINFO_DAY_VIEW
  118. //-----------------------------------------------------------------------
  119. virtual BOOL HitTestEx(CPoint pt, XTP_CALENDAR_HITTESTINFO_DAY_VIEW* pHitTest);
  120. //-----------------------------------------------------------------------
  121. // Summary:
  122. //     This member function is used to obtain the busy status for the
  123. //     specified time.
  124. // Parameters:
  125. //     dtTime - A COleDateTime object that contains the time value for
  126. //              which to check the busy status.
  127. // Returns:
  128. //     XTPCalendarEventBusyStatus value.
  129. //-----------------------------------------------------------------------
  130. virtual int GetBusyStatus(COleDateTime dtTime);
  131. //-----------------------------------------------------------------------
  132. // Summary:
  133. //     This member function is used to obtain the drawing area of all day
  134. //     events.
  135. // Returns:
  136. //     A CRect object containing the coordinates of the all day events
  137. //     drawing area.
  138. //-----------------------------------------------------------------------
  139. virtual CRect GetAllDayEventsRect() const;
  140. //-----------------------------------------------------------------------
  141. // Summary:
  142. //     Adjusts layout of day events items.
  143. // Parameters:
  144. //     pDC - Pointer to a valid device context.
  145. //-----------------------------------------------------------------------
  146. virtual void AdjustDayEvents(CDC* pDC);
  147. //-----------------------------------------------------------------------
  148. // Summary:
  149. //     This member function is used to obtain the height of a single cell.
  150. // Returns:
  151. //     An int that contains the height, in pixels, of a single cell.
  152. //-----------------------------------------------------------------------
  153. int GetRowHeight() const;
  154. //-----------------------------------------------------------------------
  155. // Summary:
  156. //     This member function is used to obtain the number of rows
  157. //     visible in the view.
  158. // Returns:
  159. //     An int that contains the number of rows visible in the view.
  160. //-----------------------------------------------------------------------
  161. int GetVisibleRowCount() const;
  162. //-----------------------------------------------------------------------
  163. // Summary:
  164. //     This member function is used to obtain the number of the top
  165. //     visible row in the view.
  166. // Returns:
  167. //     An int that contains the number of the top visible row in the view.
  168. //-----------------------------------------------------------------------
  169. int GetTopRow() const;
  170. //-----------------------------------------------------------------------
  171. // Summary:
  172. //     This member function is used to obtain the total number of
  173. //     rows in the view.
  174. // Returns:
  175. //     An int that contains the total number of rows in the view.
  176. //-----------------------------------------------------------------------
  177. int GetRowCount() const;
  178. //-----------------------------------------------------------------------
  179. // Summary:
  180. //     This member function is used to obtain the beginning time value
  181. //     for the specified cell.
  182. // Parameters:
  183. //     nCell - An int that contains the cell index.
  184. // Returns:
  185. //     A COleDateTime object that contains the beginning time value
  186. //     for the specified cell.
  187. //-----------------------------------------------------------------------
  188. COleDateTime GetCellDateTime(int nCell) const;
  189. //-----------------------------------------------------------------------
  190. // Summary:
  191. //     This member function is used to calculate the cell number for
  192. //     the specified time value.
  193. // Parameters:
  194. //     dtTime - A COleDateTime object that contains the time value to
  195. //              search for.
  196. //     bForEndTime - A BOOL object that determines if a split line
  197. //                   between cells is needed.  The split line is used to
  198. //                   indicate if the date to search for belongs to the
  199. //                   end of the previous cell or to the beginning of the
  200. //                   next cell.
  201. // Returns:
  202. //     Call this member function to retrieve the cell that contains
  203. //     the specified time value.
  204. //-----------------------------------------------------------------------
  205. int GetDateTimeCell(const COleDateTime& dtTime, BOOL bForEndTime) const;
  206. //-----------------------------------------------------------------------
  207. // Summary:
  208. //     This member function is used to obtain the rect for the specified
  209. //     cell.
  210. // Parameters:
  211. //     nCell - An int that contains the cell index.
  212. // Returns:
  213. //     A CRect object that contains the cell rect.
  214. //-----------------------------------------------------------------------
  215. CRect GetCellRect(int nCell) const;
  216. //-----------------------------------------------------------------------
  217. // Summary:
  218. //     Call this member function to obtain the bounding rectangle of
  219. //     the tooltip space (currently this is only "click to add new appointment").
  220. //     Tooltip rectangle is calculated basing on the current mouse position
  221. // Returns:
  222. //     A CRect object with relative coordinates of the tooltip.
  223. // Remarks:
  224. //     This member function returns a rectangle calculated as a single
  225. //     cell rect which user currently holds a mouse on.
  226. //-----------------------------------------------------------------------
  227. virtual CRect GetTooltipRect(const CPoint& ptHit, const XTP_CALENDAR_HITTESTINFO& hitInfo);
  228. //-----------------------------------------------------------------------
  229. // Summary:
  230. //     This member function is used to check is the specified date time
  231. //     work or non-work.
  232. // Parameters:
  233. //     dtDateTime - A COleDateTime object that contains the date time
  234. //                  value to check.
  235. // Returns:
  236. //     TRUE if the specified date time is work, FALSE otherwise.
  237. //-----------------------------------------------------------------------
  238. BOOL IsWorkDateTime(const COleDateTime& dtDateTime);
  239. //-----------------------------------------------------------------------
  240. // Summary:
  241. //     This member function is used to determine is the group header
  242. //     visible or not.
  243. // Returns:
  244. //     TRUE if the group header is visible, FALSE otherwise.
  245. //-----------------------------------------------------------------------
  246. BOOL IsGroupHeaderVisible() const;
  247. //-----------------------------------------------------------------------
  248. // Summary:
  249. //     Call this member function to set ExpandUp sign visible.
  250. // Remarks:
  251. //     Can be useful to implement visualization themes.
  252. //-----------------------------------------------------------------------
  253. void SetExpandUp();
  254. //-----------------------------------------------------------------------
  255. // Summary:
  256. //     Call this member function to set ExpandDown sign visible.
  257. // Remarks:
  258. //     Can be useful to implement visualization themes.
  259. //-----------------------------------------------------------------------
  260. void SetExpandDown();
  261. //-----------------------------------------------------------------------
  262. // Summary:
  263. //     Call this member function to determine is ExpandUp sign visible.
  264. // Remarks:
  265. //     Can be useful to implement visualization themes.
  266. // Returns:
  267. //     TRUE if ExpandUp sign visible, FALSE otherwise.
  268. //-----------------------------------------------------------------------
  269. BOOL IsExpandUp();
  270. //-----------------------------------------------------------------------
  271. // Summary:
  272. //     Call this member function to determine is ExpandDown sign visible.
  273. // Remarks:
  274. //     Can be useful to implement visualization themes.
  275. // Returns:
  276. //     TRUE if ExpandDown sign visible, FALSE otherwise.
  277. //-----------------------------------------------------------------------
  278. BOOL IsExpandDown();
  279. //-----------------------------------------------------------------------
  280. // Summary:
  281. //     Call this member function to find top and bottom events in group.
  282. // Parameters:
  283. //     rpMin - [out] Reference to store pointer to a top event.
  284. //     rpMax - [out] Reference to store pointer to a bottom event.
  285. //-----------------------------------------------------------------------
  286. void FindMinMaxGroupDayEvents(CXTPCalendarDayViewEvent*& rpMin, CXTPCalendarDayViewEvent*& rpMax);
  287. //-----------------------------------------------------------------------
  288. // Summary:
  289. //      This member function used to process user action xtpCalendarUserAction_OnScrollDay.
  290. // Parameters:
  291. //      eButton - [in] a button from which this action comes.
  292. // Remarks:
  293. //      Implementation send a XTP_NC_CALENDAR_USERACTION notification.
  294. //
  295. // Returns:
  296. //      TRUE if action was handled by user and default processing must  be
  297. //      skipped, FALSE otherwise.
  298. // See Also: XTP_NC_CALENDAR_USERACTION
  299. //-----------------------------------------------------------------------
  300. BOOL UserAction_OnScrollDay(XTPCalendarScrollDayButton eButton);
  301. protected:
  302. //-----------------------------------------------------------------------
  303. // Summary:
  304. //     This member function is used to processes left mouse button events.
  305. // Parameters:
  306. //     nFlags  - A UINT that is used to indicates whether various virtual
  307. //               keys are down.
  308. //     point   - A CPoint that specifies the x- and y- coordinates of the cursor.
  309. //               These coordinates are always relative to the
  310. //               upper-left corner of the window.
  311. // Remarks:
  312. //     This method is called by the CalendarControl when the user
  313. //     presses the left mouse button.
  314. //-----------------------------------------------------------------------
  315. virtual BOOL OnLButtonDown(UINT nFlags, CPoint point);
  316. //-----------------------------------------------------------------------
  317. // Summary:
  318. //     This member function is used to processes mouse movement events.
  319. // Parameters:
  320. //     nFlags  - A UINT that is used to indicate whether various virtual
  321. //               keys are down.
  322. //     point   - A CPoint that specifies the x- and y- coordinates of the cursor.
  323. //               These coordinates are always relative to the
  324. //               upper-left corner of the window.
  325. // Remarks:
  326. //     This method is called by the CalendarControl when the user
  327. //     moves the mouse cursor or stylus.
  328. //-----------------------------------------------------------------------
  329. virtual void OnMouseMove(UINT nFlags, CPoint point);
  330. //-----------------------------------------------------------------------
  331. // Summary:
  332. //     This member function is used to obtain the view part of the
  333. //     specified cell.
  334. // Parameters:
  335. //     dtDateTime - A COleDateTime object that contains the cell's
  336. //                  date to return the view part for.
  337. // Returns: A pointer to a CXTPCalendarViewPart object.
  338. //          The CXTPCalendarViewPart object contains the Day View
  339. //          Working Cell part if dtDateTime is the same as the Work Date
  340. //          Time.
  341. //          Otherwise the CXTPCalendarViewPart object contains the
  342. //          Non Work Cell part.
  343. // See Also: CXTPCalendarViewPart overview
  344. //-----------------------------------------------------------------------
  345. virtual CXTPCalendarViewPart* GetCellViewPart(const COleDateTime& dtDateTime);
  346. //-----------------------------------------------------------------------
  347. // Summary:
  348. //     This member function is used to obtain the events collection
  349. //     which belongs to the specified cell.
  350. // Parameters:
  351. //     nCell       - An int that contains the cell number for the events
  352. //                   collection.
  353. //     pViewEvents - Pointer to an event views collection. This pointer
  354. //                   is used populate the views collection with data.
  355. //     rdtMinEventTime - A COleDateTime object used to contain the minimum
  356. //                       time for events in the returned collection.
  357. //     rdtMaxEventTime - A COleDateTime object used to contain the maximum
  358. //                       time for events in the returned collection.
  359. // See Also: TViewEventsCollection
  360. //-----------------------------------------------------------------------
  361. virtual void GetCellEvents(int nCell,
  362. CXTPCalendarDayViewGroup::TBase::TViewEventsCollection* pViewEvents,
  363. COleDateTime& rdtMinEventTime, COleDateTime& rdtMaxEventTime);
  364. //-----------------------------------------------------------------------
  365. // Summary:
  366. //     This member function is used to fill an
  367. //     XTP_CALENDAR_HITTESTINFO_DAY_VIEW structure.
  368. // Parameters:
  369. //     pHitTest - A pointer to an XTP_CALENDAR_HITTESTINFO_DAY_VIEW structure.
  370. // Remarks:
  371. //     Call this member function to gather hit test information from
  372. //     the day view.
  373. //     It uses pHitTest->pt point for gathering information.
  374. // Returns: A BOOL.
  375. //          TRUE if pHitTest->pt point is on a valid part of the Day View.
  376. //          FALSE otherwise.
  377. // See Also: XTP_CALENDAR_HITTESTINFO_DAY_VIEW
  378. //-----------------------------------------------------------------------
  379. virtual BOOL HitTestDateTime(XTP_CALENDAR_HITTESTINFO_DAY_VIEW* pHitTest);
  380. // -----------------------------------------------------------------------
  381. // Summary:
  382. //     This member function is used to fill an
  383. //     XTP_CALENDAR_HITTESTINFO_DAY_VIEW structure.
  384. // Parameters:
  385. //     pHitTest :  A pointer to an XTP_CALENDAR_HITTESTINFO_DAY_VIEW structure.
  386. // Remarks:
  387. //     Call this member function to gather hit test information from the
  388. //     day view.
  389. // See Also:
  390. //     XTP_CALENDAR_HITTESTINFO_DAY_VIEW
  391. // -----------------------------------------------------------------------
  392. virtual void FillHitTestEx(XTP_CALENDAR_HITTESTINFO_DAY_VIEW* pHitTest);
  393. public:
  394. //{{AFX_CODEJOCK_PRIVATE
  395. struct XTP_DAY_VIEW_GROUP_LAYOUT
  396. {
  397. CRect m_rcAllDayEvents; // The coordinates of the all day area.
  398. CRect m_rcDayDetails;   // The coordinates of days details area.
  399. BOOL  m_bShowHeader;    // TRUE to show resource group header; FALSE otherwise.
  400. // for office 2007 theme
  401. int   m_nHotState;  // Last Items Hot state.
  402. enum XTPEnumHotItem
  403. {
  404. xtpHotHeader        = 0x001,
  405. xtpHotScrollUp      = xtpCalendarHitTestDayViewScrollUp,
  406. xtpHotScrollDown    = xtpCalendarHitTestDayViewScrollDown,
  407. //xtpHotADScrollUp      = 0x010,
  408. //xtpHotADScrollDown    = 0x020,
  409. };
  410. };
  411. //}}AFX_CODEJOCK_PRIVATE
  412. protected:
  413. //{{AFX_CODEJOCK_PRIVATE
  414. virtual XTP_DAY_VIEW_GROUP_LAYOUT& GetLayout();
  415. //}}AFX_CODEJOCK_PRIVATE
  416. protected:
  417. XTP_DAY_VIEW_GROUP_LAYOUT m_LayoutX; // Store group view layout.
  418. BOOL m_bExpandUP;           // Store is ExpandUP sign visible.
  419. BOOL m_bExpandDOWN;         // Store is ExpandDOWN sign visible.
  420. private:
  421. TViewEventsCollection m_arRegionViewEvents;
  422. void _AddInRegion_IfNeed(CXTPCalendarDayViewEvent* pViewEvent);
  423. void _OnRegionEnded(CDC* pDC, int nRegionMaxSize);
  424. virtual CXTPCalendarDayViewGroup* GetPThis();
  425. };
  426. AFX_INLINE CXTPCalendarDayViewGroup* CXTPCalendarDayViewGroup::GetPThis() {
  427. return this;
  428. }
  429. //===========================================================================
  430. // Summary:
  431. //     This class represents a day view portion of the Calendar Day View.
  432. // Remarks:
  433. //     It represents a specific view of the CalendarView's associated events
  434. //     data grouped by one day and provides basic functionality on this
  435. //     data using user input through keyboard and mouse.
  436. //
  437. //          CXTPCalendarDayViewDay is based on CXTPCalendarViewDayT template
  438. //          class. It inherits basic behavior from its and overlaps and add some
  439. //          to get its own behavior and look.
  440. //
  441. // See Also: CXTPCalendarViewDay, CXTPCalendarViewDayT
  442. //===========================================================================
  443. class _XTP_EXT_CLASS CXTPCalendarDayViewDay : public CXTPCalendarViewDayT<
  444. CXTPCalendarDayView,
  445. CXTPCalendarDayViewGroup,
  446. XTP_CALENDAR_HITTESTINFO_DAY_VIEW,
  447. CXTPCalendarDayViewDay >
  448. {
  449. //{{AFX_CODEJOCK_PRIVATE
  450. friend class CXTPCalendarDayView;
  451. friend class CXTPCalendarDayViewGroup;
  452. friend class CXTPCalendarDayViewEvent;
  453. DECLARE_DYNAMIC(CXTPCalendarDayViewDay)
  454. //}}AFX_CODEJOCK_PRIVATE
  455. public:
  456. //-----------------------------------------------------------------------
  457. // Summary:
  458. //     Base class type definition.
  459. //-----------------------------------------------------------------------
  460. typedef CXTPCalendarViewDayT<CXTPCalendarDayView,
  461.  CXTPCalendarDayViewGroup,
  462.  XTP_CALENDAR_HITTESTINFO_DAY_VIEW,
  463.  CXTPCalendarDayViewDay >    TBase;
  464. //-----------------------------------------------------------------------
  465. // Summary:
  466. //     Default object constructor.
  467. // Parameters:
  468. //     pDayView - Pointer to parent CXTPCalendarDayView object.
  469. //     dtDate - A date for which the day view is created.
  470. // Remarks:
  471. //     Construct CXTPCalendarDayViewDay object.
  472. // See Also: ~CXTPCalendarDayViewDay()
  473. //-----------------------------------------------------------------------
  474. CXTPCalendarDayViewDay(CXTPCalendarDayView* pDayView, COleDateTime dtDate);
  475. //-----------------------------------------------------------------------
  476. // Summary:
  477. //     Default class destructor.
  478. // Remarks:
  479. //     Handles member items deallocation.
  480. //-----------------------------------------------------------------------
  481. virtual ~CXTPCalendarDayViewDay();
  482. //-----------------------------------------------------------------------
  483. // Summary:
  484. //     This member function is used to draw the view content utilizing
  485. //     the specified device context.
  486. // Parameters:
  487. //     pDC - Pointer to a valid device context.
  488. // Remarks:
  489. //     Call AdjustLayout() before Draw()
  490. // See Also: AdjustLayout(CRect rcDay)
  491. //-----------------------------------------------------------------------
  492. virtual void Draw(CDC* pDC);
  493. //-----------------------------------------------------------------------
  494. // Summary:
  495. //     This member function is used to adjust the view's layout depending
  496. //     on the provided bounding rectangle. and calls AdjustLayout() for
  497. //     all sub items.
  498. // Parameters:
  499. //     pDC     - Pointer to a valid device context.
  500. //     rcDay   - A CRect object containing the dimensions of the bounding
  501. //               rectangle for the control.
  502. // Remarks:
  503. //     AdjustLayout2 is called by calendar control instead of AdjustLayout
  504. //     when theme is set.
  505. //-----------------------------------------------------------------------
  506. virtual void AdjustLayout(CDC* pDC, const CRect& rcDay);
  507. virtual void AdjustLayout2(CDC* pDC, const CRect& rcDay);//<COMBINE AdjustLayout>
  508. //-----------------------------------------------------------------------
  509. // Summary:
  510. //     This member function is used to populate the view with data
  511. //     for all items contained in the view.
  512. // Parameters:
  513. //     dtDayDate - A COleDateTime object that contains the day's date.
  514. //-----------------------------------------------------------------------
  515. virtual void Populate(COleDateTime dtDayDate);
  516. //-----------------------------------------------------------------------
  517. // Summary:
  518. //     This member function is used to obtain a single day's view caption.
  519. // Returns:
  520. //     A CString object that contains the day's view caption.
  521. //-----------------------------------------------------------------------
  522. virtual CString GetCaption();
  523. //-----------------------------------------------------------------------
  524. // Summary:
  525. //     This member function is used to fill an
  526. //     XTP_CALENDAR_HITTESTINFO_DAY_VIEW structure.
  527. // Parameters:
  528. //     pInfo :  A pointer to an XTP_CALENDAR_HITTESTINFO_DAY_VIEW structure.
  529. // Remarks:
  530. //     Call this member function to gather hit test information from the
  531. //     day view.
  532. // See Also:
  533. //     XTP_CALENDAR_HITTESTINFO_DAY_VIEW
  534. //-----------------------------------------------------------------------
  535. virtual void FillHitTestEx(XTP_CALENDAR_HITTESTINFO_DAY_VIEW* pInfo);
  536. protected:
  537. //-----------------------------------------------------------------------
  538. // Summary:
  539. //     This member function is used to processes mouse movement events.
  540. // Parameters:
  541. //     nFlags  - A UINT that is used to indicate whether various virtual
  542. //               keys are down.
  543. //     point   - A CPoint that specifies the x- and y- coordinates of the cursor.
  544. //               These coordinates are always relative to the
  545. //               upper-left corner of the window.
  546. // Remarks:
  547. //     This method is called by the CalendarControl when the user
  548. //     moves the mouse cursor or stylus.
  549. //-----------------------------------------------------------------------
  550. virtual void OnMouseMove(UINT nFlags, CPoint point);
  551. private:
  552. virtual CXTPCalendarDayViewDay* GetPThis();
  553. };
  554. /////////////////////////////////////////////////////////////////////////////
  555. AFX_INLINE CRect CXTPCalendarDayViewGroup::GetAllDayEventsRect() const {
  556. return m_LayoutX.m_rcAllDayEvents;
  557. }
  558. AFX_INLINE BOOL CXTPCalendarDayViewGroup::IsGroupHeaderVisible() const {
  559. return m_LayoutX.m_bShowHeader;
  560. }
  561. AFX_INLINE CXTPCalendarDayViewGroup::XTP_DAY_VIEW_GROUP_LAYOUT&
  562. CXTPCalendarDayViewGroup::GetLayout() {
  563. return m_LayoutX;
  564. }
  565. AFX_INLINE CXTPCalendarDayViewDay* CXTPCalendarDayViewDay::GetPThis() {
  566. return this;
  567. }
  568. AFX_INLINE void CXTPCalendarDayViewGroup::SetExpandUp() {
  569. m_bExpandUP = TRUE;
  570. }
  571. AFX_INLINE void CXTPCalendarDayViewGroup::SetExpandDown() {
  572. m_bExpandDOWN = TRUE;
  573. }
  574. AFX_INLINE BOOL CXTPCalendarDayViewGroup::IsExpandUp() {
  575. return m_bExpandUP;
  576. }
  577. AFX_INLINE BOOL CXTPCalendarDayViewGroup::IsExpandDown() {
  578. return m_bExpandDOWN;
  579. }
  580. #endif // !defined(AFX_XTPCALENDARDAYVIEWDAY_H__7E299FBF_C671_4648_8919_8ACAFDF38A99__INCLUDED_)