// XTPCalendarOptions.h: interface for the CXTPCalendarOptions class. // // This file is a part of the XTREME CALENDAR MFC class library. // (c)1998-2012 Codejock Software, All Rights Reserved. // // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN // CONSENT OF CODEJOCK SOFTWARE. // // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A // SINGLE COMPUTER. // // CONTACT INFORMATION: // support@codejock.com // http://www.codejock.com // ///////////////////////////////////////////////////////////////////////////// //{{AFX_CODEJOCK_PRIVATE #if !defined(_XTPCALENDAROPTIONS_H__) #define _XTPCALENDAROPTIONS_H__ //}}AFX_CODEJOCK_PRIVATE #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 class CXTPCalendarData; class CXTPPropExchange; class CXTPCalendarFlagsSet_imp; class CXTPCalendarTimeZone; XTP_DEFINE_SMART_PTR_INTERNAL(CXTPCalendarTimeZone) //=========================================================================== // Summary: // Enumerates additional calendar options flags. //=========================================================================== enum XTPCalendarAdditionalOptions { xtpCalendarOptMonthViewShowStartTimeAlways = 0x00000001, // define option to always show event start time in the month view. xtpCalendarOptMonthViewShowEndTimeAlways = 0x00000002, // define option to always show event end time in the month view. xtpCalendarOptWeekViewShowStartTimeAlways = 0x00000004, // define option to always show event start time in the week view. xtpCalendarOptWeekViewShowEndTimeAlways = 0x00000008, // define option to always show event end time in the week view. xtpCalendarOptDayViewNoWordBreak = 0x00000010, // define option to draw event text without word break in the day view. xtpCalendarOptWorkWeekViewShowStartTimeAlways = 0x00000020, // define option to always show event start time in the work week view. xtpCalendarOptWorkWeekViewShowEndTimeAlways = 0x00000040, // define option to always show event end time in the work week view. xtpCalendarOptDayViewShowStartTimeAlways = 0x00000080, // define option to always show event start time in the day view. xtpCalendarOptDayViewShowEndTimeAlways = 0x00000100 // define option to always show event end time in the day view. }; //=========================================================================== // Summary: // Structure contains all calendar options. // Remarks: // This structure contains all options which could be changed by the // user for CXTPCalendarControl. // See Also: CXTPCalendarControl, XTPCalendarWeekDay, XTPCalendarWeekDay //=========================================================================== class _XTP_EXT_CLASS CXTPCalendarOptions : public CXTPCmdTarget { //{{AFX_CODEJOCK_PRIVATE DECLARE_DYNAMIC(CXTPCalendarOptions) //}}AFX_CODEJOCK_PRIVATE public: //----------------------------------------------------------------------- // Summary: // Default object constructor. //----------------------------------------------------------------------- CXTPCalendarOptions(); //----------------------------------------------------------------------- // Summary: // Default Destructor. // Remarks: // Handles all deallocation. //----------------------------------------------------------------------- virtual ~CXTPCalendarOptions(); public: //----------------------------------------------------------------------- // Summary: // This method reads or writes data from or to an storage. // Parameters: // pPX - A CXTPPropExchange object to serialize to or from. // Remarks: // For the save case the options data from will be saved to archive. // For the load a new data will be loaded from the specified // archive and set to members. // See Also: // CXTPPropExchange //----------------------------------------------------------------------- void DoPropExchange(CXTPPropExchange* pPX); //----------------------------------------------------------------------- // Summary: // Get full information about current time zone. // Remarks: // Retrieve additional information from the registry. // Returns: // A smart pointer to CXTPCalendarTimeZone object. // See Also: // GetTimeZoneInformation(), CXTPCalendarTimeZone::GetTimeZoneInfo() //----------------------------------------------------------------------- CXTPCalendarTimeZonePtr GetCurrentTimeZoneInfo(); //----------------------------------------------------------------------- // Summary: // This member function is called when option was changed. //----------------------------------------------------------------------- void OnOptionsChanged(); ///////////////////////////////////////////////////////////////////////// // data provider related //----------------------------------------------------------------------- // Summary: // This member function sets the custom data provider for the control. // Parameters: // pDataProvider - Pointer to the custom data provider object. // lpszConnectionString - String containing the name and type of the data provider. // Remarks: // Call this member function to set the custom data provider // that is currently used by this calendar control. Note that // custom data provider must be a descendant of CXTPCalendarData. // See Also: CXTPCalendarData overview, GetDataProvider //----------------------------------------------------------------------- void SetDataProvider(CXTPCalendarData* pDataProvider); public: //## Calendar work week int nWorkWeekMask; // This structure member represents week working days using XTPCalendarWeekDay enumeration. // Each day is represented by the corresponding binary bit. int nFirstDayOfTheWeek; // This member shows the first day of the week using XTPCalendarWeekDay enum. COleDateTime dtWorkDayStartTime; // This member contains work day start time. COleDateTime dtWorkDayEndTime; // This member contains work day end time. COleDateTime dtScaleMinTime; //The scale minimum time. COleDateTime dtScaleMaxTime; //The scale maximum time. BOOL bEnableInPlaceEditEventSubject_ByF2; // Set TRUE to enable in-place edit event subject by F2, FALSE otherwise. BOOL bEnableInPlaceEditEventSubject_ByMouseClick; // Set TRUE to enable in-place edit event subject by Mouse Click, FALSE otherwise. BOOL bEnableInPlaceEditEventSubject_ByTab; // Set TRUE to enable in-place edit event subject by TAB, FALSE otherwise. BOOL bEnableInPlaceEditEventSubject_AfterEventResize;// Set TRUE to enable in-place edit event subject after event resize, FALSE otherwise. BOOL bEnableInPlaceCreateEvent; // Set TRUE to enable in-place event creation, FALSE otherwise. BOOL bUseOutlookFontGlyphs; // Set TRUE to use 'MS Outlook' font to display Glyps, otherwise bitmaps are used. //## Day View 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. int nDayView_ScaleInterval; // DayView scale interval in minutes. CString strDayView_ScaleLabel; // Stores main time scale label (day view) CString strDayView_Scale2Label; // Stores secondary time scale label (day view) BOOL bDayView_Scale2Visible; // TRUE when secondary time scale is visible in day view, FALSE otherwise. TIME_ZONE_INFORMATION tziDayView_Scale2TimeZone; // Stores time zone information for the secondary time scale. 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. BOOL bDayView_TimeScaleShowMinutes; // If TRUE - minutes will be shown on time scale. FALSE by default. BOOL bShowAllDayExpandButton; // TRUE to show all day header expand buttons when needed //## Month View BOOL bMonthView_CompressWeekendDays;// TRUE when compressing weekend days in month view, FALSE otherwise. BOOL bMonthView_ShowEndDate; // TRUE when showing event end date in month view, FALSE otherwise. BOOL bMonthView_ShowTimeAsClocks; // TRUE when showing event time as graphical clocks in month view, FALSE otherwise. BOOL bMonthView_HideTimes; // TRUE to suppress drawing time in month view event, FALSE otherwise //## Week View BOOL bWeekView_ShowEndDate; // TRUE when showing event end date in week view, FALSE otherwise. BOOL bWeekView_ShowTimeAsClocks; // TRUE when showing event time as graphical clocks in week view, FALSE otherwise. //## TimeLine View BOOL bTimeLineCompact; // TRUE when showing event compatized // or not (like Entry List in Outlook) //## Common DWORD dwAdditionalOptions; // Additional calendar options. BOOL bHatchAllDayViewEventsBkgnd; // flag to enable\disable all day events cell background color fill or hatch BOOL bShowCategoryIcons; // flag to show\hide additional categories icons in event view for day\multicolumn week views //## "Add new appointment" tooltip BOOL bEnableAddNewTooltip; // TRUE when "add new appointment" tooltips appears, FALSE otherwise CString strTooltipAddNewText; // Text for "add new appointment" tooltip. Default is: "Click to add appointment" //## Office2007 Theme only BOOL bEnablePrevNextEventButtons; // TRUE when "Prev/Next Appointment" buttons are enabled, FALSE otherwise protected: CXTPCalendarData* m_pDataProvider; // A stored pointer to the owner data provider. }; #endif // !defined(_XTPCALENDAROPTIONS_H__)