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

对话框与窗口

开发平台:

Visual C++

  1. // XTPCalendarEventRecurrenceDlg.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_RECURRENCE_DLG_H__)
  22. #define _XTP_CALENDAR_EVENT_RECURRENCE_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. //===========================================================================
  30. // Summary:
  31. //      This constant defines a value which returned from
  32. //      CXTPCalendarEventRecurrenceDlg::DoModal() when "Remove Recurrence"
  33. //      button pressed.
  34. // See Also:
  35. //      CXTPCalendarEventRecurrenceDlg
  36. //===========================================================================
  37. static const int XTP_CALENDAR_DLGRESULT_REMOVE_RECURRENCE = 103;
  38. //===========================================================================
  39. // Summary:
  40. //      This class used for manipulations with recurrence state of the events.
  41. // See Also:
  42. //      CXTPCalendarEventPropertiesDlg
  43. //===========================================================================
  44. class _XTP_EXT_CLASS CXTPCalendarEventRecurrenceDlg : public CDialog
  45. {
  46. //{{AFX_CODEJOCK_PRIVATE
  47. DECLARE_DYNAMIC(CXTPCalendarEventRecurrenceDlg)
  48. //}}AFX_CODEJOCK_PRIVATE
  49. public:
  50. //{{AFX_CODEJOCK_PRIVATE
  51. enum { IDD = XTP_IDD_CALENDAR_RECURRENCE_PROPERTIES };
  52. //}}AFX_CODEJOCK_PRIVATE
  53. //-----------------------------------------------------------------------
  54. // Summary:
  55. //     Dialog class constructor.
  56. // Parameters:
  57. //     pMasterEvent - [in] Master event pointer to edit recurrence.
  58. //     pParent      - [in] Pointer to parent window. Can be NULL.
  59. //     nIDTemplate   - [in] Contains the ID number of a dialog-box template resource.
  60. // See Also:
  61. //     ~CXTPCalendarEventRecurrenceDlg()
  62. //-----------------------------------------------------------------------
  63. CXTPCalendarEventRecurrenceDlg(CXTPCalendarEvent* pMasterEvent, CWnd* pParent = NULL,
  64.    UINT nIDTemplate = CXTPCalendarEventRecurrenceDlg::IDD);
  65. //-----------------------------------------------------------------------
  66. // Summary:
  67. //     Default collection destructor.
  68. //-----------------------------------------------------------------------
  69. virtual ~CXTPCalendarEventRecurrenceDlg();
  70. BOOL m_bDisableRemove;  // Set TRUE to disable button remove recurrence. FALSE by default.
  71. protected:
  72. //-----------------------------------------------------------------------
  73. // Summary:
  74. //      Initialize data for Start and End combobox controls.
  75. // Remarks:
  76. //      Time formatted using active locale.
  77. //-----------------------------------------------------------------------
  78. virtual void InitStartEndCB();
  79. //-----------------------------------------------------------------------
  80. // Summary:
  81. //      Initialize data for Duration combobox control.
  82. // Remarks:
  83. //      Time duration formatted using active resource file.
  84. //-----------------------------------------------------------------------
  85. virtual void InitDurationCB();
  86. //-----------------------------------------------------------------------
  87. // Summary:
  88. //      Initialize data for days of week names.
  89. // Parameters:
  90. //      wndCB - A CComboBox object reference to set data.
  91. // Remarks:
  92. //      Values formatted using active locale.
  93. //-----------------------------------------------------------------------
  94. virtual void InitDayOfWeekCBs(CComboBox& wndCB);
  95. //-----------------------------------------------------------------------
  96. // Summary:
  97. //      Initialize data for months names.
  98. // Parameters:
  99. //      wndCB - A CComboBox object reference to set data.
  100. // Remarks:
  101. //      Values formatted using active resource file.
  102. //-----------------------------------------------------------------------
  103. virtual void InitMonthCBs(CComboBox& wndCB);
  104. //-----------------------------------------------------------------------
  105. // Summary:
  106. //      Initialize data for which day (First, Second, ...).
  107. // Parameters:
  108. //      wndCB - A CComboBox object reference to set data.
  109. // Remarks:
  110. //      Values formatted using active resource file.
  111. //-----------------------------------------------------------------------
  112. virtual void InitWhichDayCBs(CComboBox& wndCB);
  113. //-----------------------------------------------------------------------
  114. // Summary:
  115. //      Shows error message if the user's input is incorrect.
  116. // Parameters:
  117. //      pWnd    - A pointer to control with wrong value (to set focus).
  118. //      nCtrlID - A dialog control ID with wrong value (to set focus).
  119. //      nMin    - A minimum value of allowed range.
  120. //      nMax    - A maximum value of allowed range.
  121. // Remarks:
  122. //      Message formatted using active resource file.
  123. //-----------------------------------------------------------------------
  124. virtual void MsgBox_WrongValue(CWnd *pWnd);
  125. virtual void MsgBox_WrongValueRange(UINT nCtrlID, int nMin, int nMax); //<COMBINE CXTPCalendarEventRecurrenceDlg::MsgBox_WrongValue@CWnd *>
  126. //{{AFX_CODEJOCK_PRIVATE
  127. virtual BOOL OnInitDialog();
  128. virtual void DoDataExchange(CDataExchange* pDX);
  129. virtual void OnOK();
  130. afx_msg void OnStartComboChanged();
  131. afx_msg void OnEndComboChanged();
  132. afx_msg void OnDurationComboChanged();
  133. afx_msg void OnStartComboEdited();
  134. afx_msg void OnEndComboEdited();
  135. afx_msg void OnDurationComboEdited();
  136. afx_msg void OnBnClickedButtonRemoveRecurrence();
  137. // Update visible state of controls, according to the selected mode:
  138. //day/week/month/year. wparam - ID of the selected radio
  139. afx_msg void OnBnClickedRadioDailyYearly(UINT wparam);
  140. afx_msg void OnTimer(UINT_PTR nIDEvent);
  141. virtual void _MoveControlsBy_Y();
  142. virtual int _AddString(CComboBox& wndCB, UINT nStrResID, DWORD_PTR dwItemData);
  143. virtual int _AddLocaleString(CComboBox& wndCB, LCTYPE lcidStr, DWORD_PTR dwItemData);
  144. virtual void OnStartChanged();
  145. virtual void _OnStartChanged();
  146. virtual void OnEndChanged();
  147. virtual void _OnEndChanged();
  148. virtual void OnDurationChanged();
  149. virtual void _OnDurationChanged();
  150. //Gets Time in Minutes, shown in ComboBox
  151. virtual int GetChangedComboTimeInMin(CComboBox &wndCb);
  152. virtual int GetDurationComboInMin();
  153. // Shows or hides control on the dialog with specified id
  154. virtual void ShowWindow(int nID, BOOL bShow = TRUE);
  155. virtual void MoveWindow_Y(int nID, int nYOffset);
  156. virtual CRect GetCtrlRect(int nID);
  157. DECLARE_MESSAGE_MAP()
  158. //}}AFX_CODEJOCK_PRIVATE
  159. protected:
  160. CXTPCalendarEventPtr m_ptrMasterEvent;          //Pointer to master event
  161. CXTPCalendarRecurrencePatternPtr m_ptrPattern;  //recurrence pattern
  162. COleDateTime m_dtStart;     // Store StartTime editor value.
  163. COleDateTime m_dtEnd;       // Store EndTime editor value.
  164. COleDateTime m_dtStartDate; // Store StartDate editor value. UpdateData method used to Exchange value with dialog control.
  165. COleDateTime m_dtEndDate;   // Store EndDate editor value. UpdateData method used to Exchange value with dialog control.
  166. CComboBox m_wndCbStart;     // StartTime combobox object.
  167. CComboBox m_wndCbEnd;       // EndTime combobox object.
  168. CComboBox m_wndCbDuration;  // Duration combobox object.
  169. int m_nOccurNum;            // Store Number of occurrences editor value. UpdateData method used to Exchange value with dialog control.
  170. // Daly recurrence case
  171. int m_nDayInterval;         // Store days interval editor value. UpdateData method used to Exchange value with dialog control.
  172. // Weekly recurrence case
  173. int m_nWeeklyInterval;      // Store weeks interval editor value. UpdateData method used to Exchange value with dialog control.
  174. BOOL m_bMonday;     // Store Monday checkbox state. UpdateData method used to Exchange value with dialog control.
  175. BOOL m_bTuesday;    // Store Tuesday checkbox state. UpdateData method used to Exchange value with dialog control.
  176. BOOL m_bWednesday;  // Store Wednesday checkbox state. UpdateData method used to Exchange value with dialog control.
  177. BOOL m_bThursday;   // Store Thursday checkbox state. UpdateData method used to Exchange value with dialog control.
  178. BOOL m_bFriday;     // Store Friday checkbox state. UpdateData method used to Exchange value with dialog control.
  179. BOOL m_bSaturday;   // Store Saturday checkbox state. UpdateData method used to Exchange value with dialog control.
  180. BOOL m_bSunday;     // Store Sunday checkbox state. UpdateData method used to Exchange value with dialog control.
  181. // Monthly recurrence case
  182. int m_MonthDate;        // Store month day editor value. UpdateData method used to Exchange value with dialog control.
  183. int m_nMonthInterval;   // Store month interval editor value. UpdateData method used to Exchange value with dialog control.
  184. int m_nMonthInterval2;  // Store month interval editor value (for second case). UpdateData method used to Exchange value with dialog control.
  185. CComboBox m_wndCbMonthDay;   // Day of week combobox object for monthly recurrence.
  186. CComboBox m_wndCbMonthWhich; // Which Day combobox object for monthly recurrence.
  187. // Yearly recurrence case
  188. int m_nDayOfMonth;              // Store month day editor value for Yearly recurrence. UpdateData method used to Exchange value with dialog control.
  189. CComboBox m_wndYearMonth;       // Month combobox object for Yearly recurrence.
  190. CComboBox m_wndComboYearMonth2; // Month combobox object for Yearly recurrence (for second case).
  191. CComboBox m_wndCbYearWhich;     // Which Day combobox object for Yearly recurrence.
  192. CComboBox m_wndCbYearDay;       // Day of week combobox object for Yearly recurrence.
  193. };
  194. /////////////////////////////////////////////////////////////////////////////
  195. AFX_INLINE void CXTPCalendarEventRecurrenceDlg::ShowWindow(int nID, BOOL bShow)
  196. {
  197. if (GetDlgItem(nID))
  198. GetDlgItem(nID)->ShowWindow(bShow ? SW_SHOW : SW_HIDE);
  199. }
  200. #endif // !defined(_XTP_CALENDAR_EVENT_RECURRENCE_DLG_H__)