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

对话框与窗口

开发平台:

Visual C++

  1. // XTPCalendarEventPropertiesDlg.h: interface for the CXTPCalendarEventPropertiesDlg.
  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(_XTP_CALENDAR_EVENT_PROPERTIS_DLG_H__)
  22. #define _XTP_CALENDAR_EVENT_PROPERTIS_DLG_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. #include "XTPCalendarPtrs.h"
  28. #include "XTPCalendarUtils.h"
  29. #include "XTPCalendarEventLabel.h"
  30. class CXTPCalendarViewEvent;
  31. class CXTPCalendarControl;
  32. class CXTPCalendarEventCategories;
  33. class CXTPCalendarEventCategoryIDs;
  34. //===========================================================================
  35. // Summary:
  36. //      This class implements event category selector combobox.
  37. //===========================================================================
  38. class _XTP_EXT_CLASS CXTPCalendarEventCategoryComboBox : public CComboBox
  39. {
  40. //DECLARE_DYNAMIC(CXTPCalendarEventCategoryComboBox)
  41. public:
  42. // -------------------------------------------------------------------
  43. // Summary:
  44. //     Standard object constructor.
  45. // -------------------------------------------------------------------
  46. CXTPCalendarEventCategoryComboBox();
  47. // -------------------------------------------------------------------
  48. // Summary:
  49. //     Standard object destructor.
  50. // -------------------------------------------------------------------
  51. virtual ~CXTPCalendarEventCategoryComboBox();
  52. //--------------------------------------------------------------------
  53. // Summary:
  54. //     Use this member to add default set of colors.
  55. // Parameters:
  56. //     pCategories  - Pointer to categories array.
  57. //     pChecked     - Pointer to array with checked items IDs.
  58. // Returns:
  59. //     true if successful, false otherwise.
  60. //--------------------------------------------------------------------
  61. virtual BOOL Init(CXTPCalendarEventCategories* pCategories, CXTPCalendarEventCategoryIDs* pChecked);
  62. //--------------------------------------------------------------------
  63. // Summary:
  64. //     Use this member to get selected categories.
  65. // Parameters:
  66. //     pChecked  - [in/out] A pointer to CXTPCalendarEventCategoryIDs
  67. //                 collection to receive selected category's IDs.
  68. //     pbChanged - [in/out] This member is set to TRUE if category's
  69. //                 IDs set changed.
  70. //--------------------------------------------------------------------
  71. virtual void GetChecked(CXTPCalendarEventCategoryIDs* pChecked, BOOL* pbChanged);
  72. protected:
  73. //--------------------------------------------------------------------
  74. // Summary:
  75. //     This function implements custom draw combobox items.
  76. // Parameters:
  77. //     lpDIS - A pointer to LPDRAWITEMSTRUCT structure.
  78. //--------------------------------------------------------------------
  79. virtual void DrawItem(LPDRAWITEMSTRUCT lpDIS);
  80. //--------------------------------------------------------------------
  81. // Summary:
  82. //     This function implements measure items for custom draw.
  83. // Parameters:
  84. //     lpDIS - A pointer to LPMEASUREITEMSTRUCT structure.
  85. //--------------------------------------------------------------------
  86. virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMIS);
  87. protected:
  88. // -------------------------------------------------------------------
  89. // Summary:
  90. //      Use this member function to get list box selected item (works
  91. //      for dropped state only).
  92. // Returns:
  93. //      Currently selected item index or LB_ERR.
  94. // -------------------------------------------------------------------
  95. virtual int GetLBCurSel() const;
  96. // -------------------------------------------------------------------
  97. // Summary:
  98. //      Use this member function to redraw list box (works for dropped
  99. //      state only).
  100. // Parameters:
  101. //      bUpdateNow - Set as TRUE to call UpdateWindow, FALSE to call Invalidate.
  102. // -------------------------------------------------------------------
  103. virtual void RedrawLB(BOOL bUpdateNow = FALSE);
  104. //{{AFX_CODEJOCK_PRIVATE
  105. afx_msg void OnSelChange();
  106. afx_msg void OnDropDown();
  107. afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
  108. virtual void _OnSelChange(int nItemIndex);
  109. //}}AFX_CODEJOCK_PRIVATE
  110. protected:
  111. CXTPCalendarEventCategories*    m_pCategories;  // Pointer to categories array.
  112. CXTPCalendarEventCategoryIDs    m_arChecked;    // Array which store checked item IDs.
  113. private:
  114. UINT m_nLastKey;
  115. DECLARE_MESSAGE_MAP()
  116. };
  117. //===========================================================================
  118. // Summary:
  119. //      This class implements event label selector combobox.
  120. //===========================================================================
  121. class _XTP_EXT_CLASS CXTPCalendarEventLabelComboBox : public CComboBox
  122. {
  123. public:
  124. //--------------------------------------------------------------------
  125. // Summary:
  126. //     Standard object constructor.
  127. //--------------------------------------------------------------------
  128. CXTPCalendarEventLabelComboBox();
  129. // -------------------------------------------------------------------
  130. // Summary:
  131. //     Standard object destructor.
  132. // -------------------------------------------------------------------
  133. virtual ~CXTPCalendarEventLabelComboBox();
  134. //--------------------------------------------------------------------
  135. // Summary:
  136. //     Use this member to add default set of colors.
  137. // Parameters:
  138. //     pLabels - Pointer to labels array.
  139. //--------------------------------------------------------------------
  140. virtual void Init(CXTPCalendarEventLabels*  pLabels);
  141. //--------------------------------------------------------------------
  142. // Summary:
  143. //     Use this member to get selected label ID.
  144. // Returns:
  145. //     A selected label ID.
  146. //--------------------------------------------------------------------
  147. virtual int GetLabelID() const;
  148. //--------------------------------------------------------------------
  149. // Summary:
  150. //     Use this member to set selected label ID.
  151. // Parameters:
  152. //     nID - A selected label ID.
  153. //--------------------------------------------------------------------
  154. virtual void SetLabelID(int nID);
  155. protected:
  156. //--------------------------------------------------------------------
  157. // Summary:
  158. //     This function implements custom draw combobox items.
  159. // Parameters:
  160. //     lpDIS - A pointer to LPDRAWITEMSTRUCT structure.
  161. //--------------------------------------------------------------------
  162. virtual void DrawItem(LPDRAWITEMSTRUCT lpDIS);
  163. //--------------------------------------------------------------------
  164. // Summary:
  165. //     This function implements measure items for custom draw.
  166. // Parameters:
  167. //     lpDIS - A pointer to LPMEASUREITEMSTRUCT structure.
  168. //--------------------------------------------------------------------
  169. virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMIS);
  170. protected:
  171. CXTPCalendarEventLabels*    m_pLabels;  // Pointer to labels array.
  172. };
  173. //===========================================================================
  174. // Summary:
  175. //      This class used to edit calendar event properties. This is a default
  176. //      implementation which can be used as an example or as a base class
  177. //      for custom dialogs.
  178. //      It designed to be localized - XTPResourceManager is used to load
  179. //      resources.
  180. // See Also:
  181. //      CXTPCalendarEventRecurrenceDlg
  182. //===========================================================================
  183. class _XTP_EXT_CLASS CXTPCalendarEventPropertiesDlg : public CDialog
  184. {
  185. //{{AFX_CODEJOCK_PRIVATE
  186. DECLARE_DYNAMIC(CXTPCalendarEventPropertiesDlg)
  187. //}}AFX_CODEJOCK_PRIVATE
  188. public:
  189. //{{AFX_CODEJOCK_PRIVATE
  190. enum { IDD = XTP_IDD_CALENDAR_EVENT_PROPERTIES };
  191. //}}AFX_CODEJOCK_PRIVATE
  192. //-----------------------------------------------------------------------
  193. // Summary:
  194. //     Dialog class constructor.
  195. // Parameters:
  196. //     pControl      - [in] Pointer to control.
  197. //     bAddEvent     - [in] If TRUE DataProvider->AddEvent() will be called
  198. //                          on OK button pressed, otherwise ChangeEvent
  199. //                          will be called.
  200. //     pParent       - [in] Pointer to parent window. Can be NULL.
  201. //
  202. //     pEditingEvent - [in, out] Pointer to editing event object. If NULL
  203. //                               a new event will be created.
  204. //     nIDTemplate   - [in] Contains the ID number of a dialog-box template resource.
  205. // Remarks:
  206. //     If pEditingEvent is NULL the new event will be created and StartTime,
  207. //     EndTime, AllDayEvent, ScheduleID properties will be initialized using
  208. //     current view selection.
  209. //     If OK button pressed event will be added or changed and control updated
  210. //     automatically.
  211. // See Also:
  212. //     ~CXTPCalendarEventRecurrenceDlg()
  213. //-----------------------------------------------------------------------
  214. CXTPCalendarEventPropertiesDlg(CXTPCalendarControl* pControl, BOOL bAddEvent,
  215. CWnd* pParent = NULL, CXTPCalendarEvent* pEditingEvent = NULL,
  216. UINT nIDTemplate = CXTPCalendarEventPropertiesDlg::IDD);
  217. //-----------------------------------------------------------------------
  218. // Summary:
  219. //     Default object destructor.
  220. //-----------------------------------------------------------------------
  221. virtual ~CXTPCalendarEventPropertiesDlg(){};
  222. protected:
  223. //-----------------------------------------------------------------------
  224. // Summary:
  225. //     Update dialog controls values using editing event properties.
  226. //-----------------------------------------------------------------------
  227. virtual void UpdateControlsFromEvent();
  228. //-----------------------------------------------------------------------
  229. // Summary:
  230. //     Update dialog controls state (enabled and visible) using editing
  231. //     event properties.
  232. //-----------------------------------------------------------------------
  233. virtual void UpdateControlsState();
  234. //-----------------------------------------------------------------------
  235. // Summary:
  236. //     Initialize Reminder combobox.
  237. // Remarks:
  238. //      Time duration formatted using active resource file.
  239. //-----------------------------------------------------------------------
  240. virtual void InitReminderComboBox();
  241. //-----------------------------------------------------------------------
  242. // Summary:
  243. //     Initialize Busy Status combobox.
  244. //-----------------------------------------------------------------------
  245. virtual void InitBusyStatusComboBox();
  246. // Generated message map functions
  247. //{{AFX_CODEJOCK_PRIVATE
  248. virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  249. virtual BOOL OnInitDialog();
  250. virtual void OnOK();
  251. virtual void OnCancel();
  252. afx_msg void OnCheckReminder();
  253. afx_msg void OnBnClickedButtonRecurrecnce();
  254. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  255. afx_msg void OnBnClickedCheckAlldayEvent();
  256. virtual CString LoadString(UINT nIDResource);
  257. virtual void AddEndDate_ResetTime(COleDateTime dtStartDate, COleDateTime& rdtEndDate, int nDays);
  258. DECLARE_MESSAGE_MAP()
  259. //}}AFX_CODEJOCK_PRIVATE
  260. protected:
  261. CXTPCalendarEventPtr    m_ptrEditingEvent;  // Pointer to editing event object.
  262. CXTPCalendarControl*    m_ptrControl;       // Pointer to Calendar control.
  263. BOOL                    m_bAddEvent;        // Store edit mode: Add or Change.
  264. //------------------------------------------------------------------------
  265. CString         m_strSubject;   // Store subject editor value. UpdateData method used to Exchange value with dialog control.
  266. CString         m_strLocation;  // Store location editor value. UpdateData method used to Exchange value with dialog control
  267. CString         m_strBody;      // Store body editor value. UpdateData method used to Exchange value with dialog control.
  268. COleDateTime    m_dtStartDate;  // Store StartDate editor value. UpdateData method used to Exchange value with dialog control.
  269. COleDateTime    m_dtStartTime;  // Store StartTime editor value. UpdateData method used to Exchange value with dialog control.
  270. COleDateTime    m_dtEndDate;    // Store EndDate editor value. UpdateData method used to Exchange value with dialog control.
  271. COleDateTime    m_dtEndTime;    // Store EndTime editor value. UpdateData method used to Exchange value with dialog control.
  272. int m_nBusyStatus;      // Store BusyStatus checkbox value. UpdateData method used to Exchange value with dialog control.
  273. BOOL m_bAllDayEvent;    // Store AllDayEvent checkbox value. UpdateData method used to Exchange value with dialog control.
  274. BOOL m_bPrivate;        // Store Private checkbox value. UpdateData method used to Exchange value with dialog control.
  275. BOOL m_bMeeting;        // Store Meeting checkbox value. UpdateData method used to Exchange value with dialog control.
  276. BOOL m_bReminder;       // Store Reminder checkbox value. UpdateData method used to Exchange value with dialog control.
  277. protected:
  278. int m_nAllDayEventSet;  // If value < 0 - AllDayEvent control initialized from editing event, otherwise it is initialized from m_nAllDayEventSet value.
  279. BOOL m_bOccurrence;     // If TRUE the not recurring event or recurrence exception (ocurrence) is editing, otherwise master event is editing.
  280. BOOL m_bCategoriesEnabled;  // Define are Categories or Labels used.
  281. CXTPCalendarEventCategoryComboBox m_ctrlCategories; // Categories combobox control instance.
  282. CXTPCalendarEventLabelComboBox    m_ctrlLabelCB;    // Label combobox control instance.
  283. CComboBox m_ctrlReminderCB;     // Reminder combobox control instance.
  284. CComboBox m_ctrlBusyStatusCB;   // BusyStatus combobox control instance.
  285. CComboBox m_ctrlScheduleIDCB;   // ScheduleID combobox control instance.
  286. CStatic   m_ctrlScheduleLabel;  // Label window for ScheduleID combobox control.
  287. };
  288. AFX_INLINE CString CXTPCalendarEventPropertiesDlg::LoadString(UINT nIDResource) {
  289. return CXTPCalendarUtils::LoadString(nIDResource);
  290. }
  291. #endif // !defined(_XTP_CALENDAR_EVENT_PROPERTIS_DLG_H__)