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

对话框与窗口

开发平台:

Visual C++

  1. // XTPCalendarOptions.h: interface for the CXTPCalendarOptions 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(_XTPCALENDAROPTIONS_H__)
  22. #define _XTPCALENDAROPTIONS_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. /////////////////////////////////////////////////////////////////////////////
  28. #include "XTPCalendarTimeZoneHelper.h"
  29. #include "XTPCalendarDefines.h"
  30. //#include "XTPCalendarEvent.h"
  31. class CXTPCalendarData;
  32. class CXTPPropExchange;
  33. class CXTPCalendarFlagsSet_imp;
  34. //===========================================================================
  35. // Summary:
  36. //     Enumerates additional calendar options flags.
  37. //===========================================================================
  38. enum XTPCalendarAdditionalOptions
  39. {
  40. xtpCalendarOptMonthViewShowStartTimeAlways  = 0x00000001,   // define option to always show event start time in the month view.
  41. xtpCalendarOptMonthViewShowEndTimeAlways    = 0x00000002,   // define option to always show event end time in the month view.
  42. xtpCalendarOptWeekViewShowStartTimeAlways   = 0x00000004,   // define option to always show event start time in the week view.
  43. xtpCalendarOptWeekViewShowEndTimeAlways     = 0x00000008,   // define option to always show event end time in the week view.
  44. xtpCalendarOptDayViewNoWordBreak            = 0x00000010    // define option to draw event text without word break in the day view.
  45. };
  46. //===========================================================================
  47. // Summary:
  48. //     Structure contains all calendar options.
  49. // Remarks:
  50. //     This structure contains all options which could be changed by the
  51. //     user for CXTPCalendarControl.
  52. // See Also: CXTPCalendarControl, XTPCalendarWeekDay, XTPCalendarWeekDay
  53. //===========================================================================
  54. class _XTP_EXT_CLASS CXTPCalendarOptions : public CXTPCmdTarget
  55. {
  56. //{{AFX_CODEJOCK_PRIVATE
  57. DECLARE_DYNAMIC(CXTPCalendarOptions)
  58. //}}AFX_CODEJOCK_PRIVATE
  59. public:
  60. //-----------------------------------------------------------------------
  61. // Summary:
  62. //      Default object constructor.
  63. //-----------------------------------------------------------------------
  64. CXTPCalendarOptions();
  65. //-----------------------------------------------------------------------
  66. // Summary:
  67. //     Default Destructor.
  68. // Remarks:
  69. //     Handles all deallocation.
  70. //-----------------------------------------------------------------------
  71. virtual ~CXTPCalendarOptions();
  72. public:
  73. //-----------------------------------------------------------------------
  74. // Summary:
  75. //     This method reads or writes data from or to an storage.
  76. // Parameters:
  77. //     pPX - A CXTPPropExchange object to serialize to or from.
  78. // Remarks:
  79. //     For the save case the options data from will be saved to archive.
  80. //     For the load a new data will be loaded from the specified
  81. //     archive and set to members.
  82. // See Also:
  83. //     CXTPPropExchange
  84. //-----------------------------------------------------------------------
  85. void DoPropExchange(CXTPPropExchange* pPX);
  86. //-----------------------------------------------------------------------
  87. // Summary:
  88. //      Get full information about current time zone.
  89. // Remarks:
  90. //      Retrieve additional information from the registry.
  91. // Returns:
  92. //      A smart pointer to CXTPCalendarTimeZone object.
  93. // See Also:
  94. //      GetTimeZoneInformation(), CXTPCalendarTimeZone::GetTimeZoneInfo()
  95. //-----------------------------------------------------------------------
  96. CXTPCalendarTimeZonePtr GetCurrentTimeZoneInfo();
  97. //-----------------------------------------------------------------------
  98. // Summary:
  99. //      This member function is called when option was changed.
  100. //-----------------------------------------------------------------------
  101. void OnOptionsChanged();
  102. /////////////////////////////////////////////////////////////////////////
  103. // data provider related
  104. //-----------------------------------------------------------------------
  105. // Summary:
  106. //     This member function sets the custom data provider for the control.
  107. // Parameters:
  108. //     pDataProvider - Pointer to the custom data provider object.
  109. //     lpszConnectionString - String containing the name and type of the data provider.
  110. // Remarks:
  111. //     Call this member function to set the custom data provider
  112. //     that is currently used by this calendar control. Note that
  113. //     custom data provider must be a descendant of CXTPCalendarData.
  114. // See Also: CXTPCalendarData overview, GetDataProvider
  115. //-----------------------------------------------------------------------
  116. void SetDataProvider(CXTPCalendarData* pDataProvider);
  117. public:
  118. //## Calendar work week
  119. int nWorkWeekMask;                  // This structure member represents week working days using XTPCalendarWeekDay enumeration.
  120.                                     // Each day is represented by the corresponding binary bit.
  121. int nFirstDayOfTheWeek;             // This member shows the first day of the week using XTPCalendarWeekDay enum.
  122. COleDateTime dtWorkDayStartTime;    // This member contains work day start time.
  123. COleDateTime dtWorkDayEndTime;      // This member contains work day end time.
  124. BOOL bEnableInPlaceEditEventSubject_ByF2;           // Set TRUE to enable in-place edit event subject by F2, FALSE otherwise.
  125. BOOL bEnableInPlaceEditEventSubject_ByMouseClick;   // Set TRUE to enable in-place edit event subject by Mouse Click, FALSE otherwise.
  126. BOOL bEnableInPlaceEditEventSubject_ByTab;          // Set TRUE to enable in-place edit event subject by TAB, FALSE otherwise.
  127. BOOL bEnableInPlaceEditEventSubject_AfterEventResize;// Set TRUE to enable in-place edit event subject after event resize, FALSE otherwise.
  128. BOOL bEnableInPlaceCreateEvent; // Set TRUE to enable in-place event creation, FALSE otherwise.
  129. BOOL bUseOutlookFontGlyphs;     // Set TRUE to use 'MS Outlook' font to display Glyps, otherwise bitmaps are used.
  130. //## Day View
  131. BOOL bDayView_AutoResetBusyFlag;    // If TRUE - 'Busy' event status will be automatically set to 'Free' when moving event from hours area to all day events area and vice versa. If FALSE - status flag is not changed automatically.
  132. int nDayView_ScaleInterval;         // DayView scale interval in minutes.
  133. CString strDayView_ScaleLabel;                   // Stores main time scale label (day view)
  134. CString strDayView_Scale2Label;                  // Stores secondary time scale label (day view)
  135. BOOL bDayView_Scale2Visible;                     // TRUE when secondary time scale is visible in day view, FALSE otherwise.
  136. TIME_ZONE_INFORMATION tziDayView_Scale2TimeZone; // Stores time zone information for the secondary time scale.
  137. int nDayView_CurrentTimeMarkVisible; // A set of flags which define when Current Time Mark on the timescale is visible. See Also XTPCalendarCurrentTimeMarkFlags. By default it is xtpCalendarCurrentTimeMarkVisibleForToday.
  138. BOOL bDayView_TimeScaleShowMinutes;  // If TRUE - minutes will be shown on time scale. FALSE by default.
  139. //## Month View
  140. BOOL bMonthView_CompressWeekendDays;// TRUE when compressing weekend days in month view, FALSE otherwise.
  141. BOOL bMonthView_ShowEndDate;        // TRUE when showing event end date in month view, FALSE otherwise.
  142. BOOL bMonthView_ShowTimeAsClocks;   // TRUE when showing event time as graphical clocks in month view, FALSE otherwise.
  143. //## Week View
  144. BOOL bWeekView_ShowEndDate;         // TRUE when showing event end date in week view, FALSE otherwise.
  145. BOOL bWeekView_ShowTimeAsClocks;    // TRUE when showing event time as graphical clocks in week view, FALSE otherwise.
  146. //## Common
  147. DWORD dwAdditionalOptions;          // Additional calendar options.
  148. //## "Add new appointment" tooltip
  149. BOOL bEnableAddNewTooltip;          // TRUE when "add new appointment" tooltips appears, FALSE otherwise
  150. CString strTooltipAddNewText;       // Text for "add new appointment" tooltip. Default is: "Click to add appointment"
  151. protected:
  152. CXTPCalendarData* m_pDataProvider;  // A stored pointer to the owner data provider.
  153. };
  154. #endif // !defined(_XTPCALENDAROPTIONS_H__)