You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			1150 lines
		
	
	
		
			49 KiB
		
	
	
	
		
			C
		
	
		
		
			
		
	
	
			1150 lines
		
	
	
		
			49 KiB
		
	
	
	
		
			C
		
	
| 
											2 years ago
										 | // XTPCalendarDayView.h: interface for the CXTPCalendarDayView 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(_XTPCALENDARDAYVIEW_H__)
 | ||
|  | #define _XTPCALENDARDAYVIEW_H__
 | ||
|  | //}}AFX_CODEJOCK_PRIVATE
 | ||
|  | 
 | ||
|  | #if _MSC_VER > 1000
 | ||
|  | #pragma once
 | ||
|  | #endif // _MSC_VER > 1000
 | ||
|  | 
 | ||
|  | class CXTPCalendarDayViewTimeScale; | ||
|  | class CXTPCalendarDayViewDay; | ||
|  | class CXTPCalendarTimeZone; | ||
|  | 
 | ||
|  | XTP_DEFINE_SMART_PTR_INTERNAL(CXTPCalendarTimeZone) | ||
|  | 
 | ||
|  | //===========================================================================
 | ||
|  | // Summary:
 | ||
|  | //     This class implements a specific view portion of the Calendar
 | ||
|  | //     control - called <b>Day view</b>.
 | ||
|  | // Remarks:
 | ||
|  | //          The Day view consists of one or more days, placed in a
 | ||
|  | //          row. Each day is stretched down by a number of fixed time
 | ||
|  | //          intervals. Each day is represented by a CXTPCalendarDayViewDay class.
 | ||
|  | //
 | ||
|  | //          The Day view also contains two time scales defining those intervals
 | ||
|  | //          at the left of the view, which is represented by the
 | ||
|  | //          CXTPCalendarDayViewTimeScale class. One time scale is the main and
 | ||
|  | //          is visible by default, second one is the alternative and can be
 | ||
|  | //          enabled programmatically. Time scale interval can be changed
 | ||
|  | //          using the SetScaleInterval member function. The content of the view
 | ||
|  | //          refreshes automatically.
 | ||
|  | //
 | ||
|  | // See Also: CXTPCalendarView, CXTPCalendarWeekView, CXTPCalendarMonthView,
 | ||
|  | //          CXTPCalendarDayViewDay, CXTPCalendarDayViewEvent
 | ||
|  | //===========================================================================
 | ||
|  | class _XTP_EXT_CLASS CXTPCalendarDayView : public CXTPCalendarViewT<CXTPCalendarDayViewDay> | ||
|  | { | ||
|  | 	//{{AFX_CODEJOCK_PRIVATE
 | ||
|  | 	friend class CXTPCalendarDayViewDay; | ||
|  | 	friend class CXTPCalendarDayViewGroup; | ||
|  | 	friend class CXTPCalendarDayViewTimeScale; | ||
|  | 
 | ||
|  | 	friend class CXTPCalendarControl; | ||
|  | 	friend class CXTPCalendarControlView; | ||
|  | 	friend class CXTPCalendarTheme; | ||
|  | 
 | ||
|  | 	DECLARE_DYNAMIC(CXTPCalendarDayView) | ||
|  | 	//}}AFX_CODEJOCK_PRIVATE
 | ||
|  | public: | ||
|  | 
 | ||
|  | 	//------------------------------------------------------------------------
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     Base class type definition
 | ||
|  | 	//------------------------------------------------------------------------
 | ||
|  | 	typedef CXTPCalendarViewT<CXTPCalendarDayViewDay> TBase; | ||
|  | 
 | ||
|  | public: | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Default object constructor.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pCalendarControl - Pointer to CXTPCalendarControl object.
 | ||
|  | 	// See Also: ~CXTPCalendarEvent()
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	CXTPCalendarDayView(CXTPCalendarControl* pCalendarControl); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Default class destructor.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     Handles class members deallocation.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual ~CXTPCalendarDayView(); | ||
|  | 
 | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to obtain the view type flag.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     An XTPCalendarViewType object that contains the view type flag.
 | ||
|  | 	// See Also: XTPCalendarViewType
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual XTPCalendarViewType GetViewType() const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to adjust the view's layout
 | ||
|  | 	//     depending on the window's client dimensions and calls.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pDC      - Pointer to a valid device context.
 | ||
|  | 	//     rcView   - A CRect that contains the bounding rectangle dimensions
 | ||
|  | 	//                of the view.
 | ||
|  | 	//     bCallPostAdjustLayout - TRUE for calling additional post-adjustments
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     Call Populate() prior adjusting layout. Adjust layout of all
 | ||
|  | 	//     sub-items.
 | ||
|  | 	//     AdjustLayout2 is called by calendar control instead of AdjustLayout
 | ||
|  | 	//     when theme is set.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void AdjustLayout(CDC* pDC, const CRect& rcView, BOOL bCallPostAdjustLayout = TRUE); | ||
|  | 	virtual void AdjustLayout2(CDC* pDC, const CRect& rcView, BOOL bCallPostAdjustLayout = TRUE); //<COMBINE AdjustLayout>
 | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to retrieve information about a
 | ||
|  | 	//     scroll bar's state.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pSI          - A pointer to scrollbar information structure.
 | ||
|  | 	//     pnScrollStep - A pointer to int to receive scroll step. Can be NULL.
 | ||
|  | 	// Returns: A BOOL.
 | ||
|  | 	//          TRUE if the visible row count is not the same as the actual row count.
 | ||
|  | 	//          FALSE otherwise.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual BOOL GetScrollBarInfoV(SCROLLINFO* pSI) const; | ||
|  | 	virtual BOOL GetScrollBarInfoH(SCROLLINFO* pSI, int* pnScrollStep = NULL) const; //<COMBINE CXTPCalendarDayView::GetScrollBarInfoV@SCROLLINFO*@const>
 | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to scroll the content of a view.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     nPos     - Position value.
 | ||
|  | 	//     nPos_raw - Raw position value. (Not used at this time.)
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void ScrollV(int nPos, int nPos_raw); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to scroll the content of a view.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     nPos     - Position value.
 | ||
|  | 	//     nPos_raw - Raw position value. (Not used at this time.)
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void ScrollH(int nPos, int nPos_raw); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function returns values which interpreted as a minimum
 | ||
|  | 	//     column width, where column is a group view object.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     The returned number may be one of the following values:
 | ||
|  | 	//      [ul]
 | ||
|  | 	//      [li] 0 means disabled;
 | ||
|  | 	//      [li] -1 use some default width for multiresources only;
 | ||
|  | 	//      [li] -N use for multiresources only (internally converted to +N);
 | ||
|  | 	//      [li] +N used always (in single and multi resources mode).
 | ||
|  | 	//      [/ul]
 | ||
|  | 	//
 | ||
|  | 	// Returns:
 | ||
|  | 	//     Minimum column width in pixels (may be negative) or 0 or -1.
 | ||
|  | 	// See Also: SetMinColumnWidth
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual int GetMinColumnWidth() const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function used to set minimum column width, where column
 | ||
|  | 	//     is a group view object.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     nWidth - [in] Minimum column width in pixels (may be negative) or 0 or -1.
 | ||
|  | 	//              See remarks section.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     nWidth number may be one of the following values:
 | ||
|  | 	//      [ul]
 | ||
|  | 	//      [li] 0 means disabled;
 | ||
|  | 	//      [li] -1 use some default width for multiresources only;
 | ||
|  | 	//      [li] -N use for multiresources only (internally converted to +N);
 | ||
|  | 	//      [li] +N used always (in single and multi resources mode).
 | ||
|  | 	//      [/ul]
 | ||
|  | 	//
 | ||
|  | 	// See Also: GetMinColumnWidth
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void SetMinColumnWidth(int nWidth); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function performs all of the drawing logic of the
 | ||
|  | 	//     calendar view.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pDC - Pointer to a valid device context.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void OnDraw(CDC* pDC); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to draw the view content using the
 | ||
|  | 	//     specified device context.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pDC - Pointer to a valid device context.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     Call AdjustLayout() before Draw()
 | ||
|  | 	//     Draw2 is called by calendar control instead of Draw when theme
 | ||
|  | 	//     is set.
 | ||
|  | 	// See Also: AdjustLayout
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void Draw(CDC* pDC); | ||
|  | 	virtual void Draw2(CDC* pDC); //<COMBINE Draw>
 | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to process left mouse button events.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     nFlags  - Indicates whether various virtual keys are down.
 | ||
|  | 	//     point   - Specifies the x- and y- coordinate of the cursor.
 | ||
|  | 	//     These coordinates are always relative to the upper-left corner
 | ||
|  | 	//     of the window.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     TRUE if the operation is successful, FALSE else.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     This method is called by the CalendarControl when the user
 | ||
|  | 	//     presses the left mouse button.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual BOOL OnLButtonDown(UINT nFlags, CPoint point); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to processes left mouse button events.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     nFlags  - A UINT that is used to indicate whether various virtual keys are down.
 | ||
|  | 	//     point   - A CPoint that specifies the x- and y- coordinates of the cursor.
 | ||
|  | 	//               These coordinates are always relative to the
 | ||
|  | 	//               upper-left corner of the window.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     TRUE if the operation is successful, FALSE else.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     This method is called by the CalendarControl when the user
 | ||
|  | 	//     releases the left mouse button.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual BOOL OnLButtonUp(UINT nFlags, CPoint point); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to process mouse move events.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     nFlags  - Indicates whether various virtual keys are down.
 | ||
|  | 	//     point   - Specifies the x- and y- coordinate of the cursor.
 | ||
|  | 	//     These coordinates are always relative to the upper-left
 | ||
|  | 	//     corner of the window.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     This method is called by the CalendarControl when the user
 | ||
|  | 	//     moves the mouse cursor or stylus.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void OnMouseMove(UINT nFlags, CPoint point); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to process keyboard events.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     nChar   - Virtual key code of the given key.
 | ||
|  | 	//     nRepCnt - Number of times the keystroke is repeated as a result
 | ||
|  | 	//               of the user holding down the key.
 | ||
|  | 	//     nFlags  - Scan code, key-transition code, previous key state,
 | ||
|  | 	//               and context code.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     This method is called by the CalendarControl when the user
 | ||
|  | 	//     presses keys on the keyboard.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to get the date of a day view by the
 | ||
|  | 	//     day's index.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     nIndex  - Day view index in the view collection.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     COleDateTime object with the day view date and time.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     Index number starts at 0 and cannot be negative.
 | ||
|  | 	// See Also: GetViewDayCount()
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual COleDateTime GetViewDayDate(int nIndex) const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to determine which view item,
 | ||
|  | 	//     if any, is at a specified position index, and returns
 | ||
|  | 	//     additional info in a XTP_CALENDAR_HITTESTINFO structure.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pt       - Coordinates of point to test.
 | ||
|  | 	//     pHitTest - Pointer to a XTP_CALENDAR_HITTESTINFO structure.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     TRUE if item found. FALSE otherwise.
 | ||
|  | 	// See Also: XTP_CALENDAR_HITTESTINFO
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual BOOL HitTestEx(CPoint pt, XTP_CALENDAR_HITTESTINFO* pHitTest) const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to obtain the visible row count
 | ||
|  | 	//     on the view.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     An int containing the count of the visible rows on the view.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	int GetVisibleRowCount() const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to obtain the top visible row on the view.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     An int that contains the number of the top visible row on the view.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	int GetTopRow() const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to obtain the total row count on the view.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     An int containing the total count of rows on the view.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	int GetRowCount() const; | ||
|  | 
 | ||
|  | 	/////////////////////////////////////////////////////////////////////////
 | ||
|  | 	// time scale related
 | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to obtain the time scale item interval.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A COleDateTimeSpan object that contains the time interval of
 | ||
|  | 	//     the time scale item.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	COleDateTimeSpan GetScaleInterval() const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to set the time scale item interval.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     spScaleInterval - A COleDateTimeSpan object that contains the
 | ||
|  | 	//                       new time scale item interval.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	void SetScaleInterval(const COleDateTimeSpan spScaleInterval); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to obtain the minimal time which is
 | ||
|  | 	//     shown on the day view scale.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A COleDateTime object that contains the minimal scale time.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	COleDateTime GetScaleMinTime() const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to set the minimal time which is
 | ||
|  | 	//     shown on the day view scale.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     Only time part of the argument will be used by the control.
 | ||
|  | 	//     It will be used for all dates. Date part of the argument is ignored.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     dtNewScaleMinTime - A COleDateTime object that contains the
 | ||
|  | 	//                         new minimal time scale value.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	void SetScaleMinTime(const COleDateTime dtNewScaleMinTime); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to obtain the maximal time which is
 | ||
|  | 	//     shown on the day view scale.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A COleDateTime object that contains the maximal scale time.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	COleDateTime GetScaleMaxTime() const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to set the maximal time which is
 | ||
|  | 	//     shown on the day view scale.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     Only time part of the argument will be used by the control.
 | ||
|  | 	//     It will be used for all dates. Date part of the argument is ignored.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     dtNewScaleMaxTime - A COleDateTime object that contains the
 | ||
|  | 	//                         new maximal time scale value.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	void SetScaleMaxTime(const COleDateTime dtNewScaleMaxTime); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to set the text label for the
 | ||
|  | 	//     default time scale.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     strText - A CString that contains the new text label for the
 | ||
|  | 	//               default time label.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	void SetScaleText(LPCTSTR strText); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to obtain the text label of the
 | ||
|  | 	//     default time scale.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A CString object that contains the default time scale text label.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	CString GetScaleText() const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to set the text label for the
 | ||
|  | 	//     alternative time scale.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     strText - A CString that contains the new text label.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	void SetScale2Text(LPCTSTR strText); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to obtain the text label of the
 | ||
|  | 	//     alternative time scale.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A CString object that contains the alternative time scale text label.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	CString GetScale2Text() const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to set the time zone information for
 | ||
|  | 	//     the alternative time scale.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pTzInfo - A pointer to time zone information structure.
 | ||
|  | 	// See Also:
 | ||
|  | 	//     MSDN Articles:
 | ||
|  | 	//          INFO: Retrieving Time-Zone Information
 | ||
|  | 	//          KB115231, Q115231
 | ||
|  | 	//
 | ||
|  | 	//          HOWTO: Change Time Zone Information Using Visual Basic
 | ||
|  | 	//          KB221542, Q221542
 | ||
|  | 	//
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	void SetScale2TimeZone(const TIME_ZONE_INFORMATION* pTzInfo); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to get the time zone information for
 | ||
|  | 	//     the alternative time scale.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A reference to time zone information structure.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	const TIME_ZONE_INFORMATION& GetScale2TimeZone() const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// 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() const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//      Get full information about additional time scale time zone.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//      Retrieve additional information from the registry.
 | ||
|  | 	// Returns:
 | ||
|  | 	//      A smart pointer to CXTPCalendarTimeZone object.
 | ||
|  | 	// See Also:
 | ||
|  | 	//      GetTimeZoneInformation(), CXTPCalendarTimeZone::GetTimeZoneInfo()
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	CXTPCalendarTimeZonePtr GetScale2TimeZoneInfo() const;  // scale 2
 | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to Show or hide the alternative
 | ||
|  | 	//     time scale.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     bShow - A BOOL that contains the new visibility flag value.
 | ||
|  | 	//             TRUE - Default value, shows the alternative time scale.
 | ||
|  | 	//             FALSE - Do not show the default value.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	void ShowScale2(BOOL bShow = TRUE); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to obtain the visibility flag of
 | ||
|  | 	//     the alternative time scale.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A BOOL that contains the visibility flag value.
 | ||
|  | 	//     TRUE - If the alternative time scale is visible.
 | ||
|  | 	//     FALSE - If the alternative time scale is not visible.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	BOOL IsScale2Visible() const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to obtain the Expand Up glyph
 | ||
|  | 	//     flag value.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A BOOL that contains the Expand Up glyph flag value.
 | ||
|  | 	//         TRUE  - If the Expand Up glyph is visible.
 | ||
|  | 	//         FALSE - If the Expand Up glyph is not visible.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	BOOL IsExpandUp() const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to obtain the Expand Down glyph
 | ||
|  | 	//     flag value.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A BOOL that contains the Expand Down flag value.
 | ||
|  | 	//     TRUE  - If the Expand Down glyph is visible.
 | ||
|  | 	//     FALSE - If the Expand Down glyph is not visible.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	BOOL IsExpandDown() const; | ||
|  | 
 | ||
|  | 	/////////////////////////////////////////////////////////////////////////
 | ||
|  | 	// cells related
 | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to obtain the time value for
 | ||
|  | 	//     the specified cell.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     nCell - An int that contains a cell number.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A COleDateTime object that contains the specific time value
 | ||
|  | 	//     for the cell's beginning coordinate.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	COleDateTime GetCellTime(int nCell) const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to obtain the current cell duration.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A COleDateTimeSpan object that contains the amount of time between
 | ||
|  | 	//     a cell's start coordinates and the next cell's starting coordinates.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	COleDateTimeSpan GetCellDuration() const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to calculate the cell number for
 | ||
|  | 	//     the specified time value.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     dtTime - A COleDateTime object that contains a time
 | ||
|  | 	//              value to check for.
 | ||
|  | 	//     bForEndTime - A BOOL that contains the value that indicates if
 | ||
|  | 	//                   we should consider a split line between cells to
 | ||
|  | 	//                   belong to the end of the previous
 | ||
|  | 	//                   cell or to the beginning of the next cell.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     Call this member function when you want to retrieve which cell
 | ||
|  | 	//     contains a specified time value.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	int GetCellNumber(COleDateTime dtTime, BOOL bForEndTime) const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to calculate the cell number for
 | ||
|  | 	//     the specified time value.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     nHour - An int that contains the hour part of the time value to check for.
 | ||
|  | 	//     nMin - An int that contains the minute part of the time value to check for.
 | ||
|  | 	//     nSec - An int that contains the second part of the time value to check for.
 | ||
|  | 	//     bForEndTime - A BOOL that contains the value that indicates if
 | ||
|  | 	//                   we should consider a split line between cells to
 | ||
|  | 	//                   belong to the end of the previous
 | ||
|  | 	//                   cell or to the beginning of the next cell.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     Call this member function when you want to retrieve which cell
 | ||
|  | 	//     contains a specified time value.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	int GetCellNumber(int nHour, int nMin, int nSec, BOOL bForEndTime) const; | ||
|  | 
 | ||
|  | 	/////////////////////////////////////////////////////////////////////////
 | ||
|  | 	// selection related
 | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to obtain the view selection.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pBegin                 - A pointer to the COleDateTime object
 | ||
|  | 	//                              that contains the beginning of the selection.
 | ||
|  | 	//     pEnd                   - A pointer to the COleDateTime object
 | ||
|  | 	//                              that contains the ending of the selection.
 | ||
|  | 	//     pbAllDayEvent          - A pointer to the BOOL variable
 | ||
|  | 	//                              that contains the AllDayEvent attribute of
 | ||
|  | 	//                              the selection (used in the day view only).
 | ||
|  | 	//     pnGroupIndex           - A pointer to int to receive group index.
 | ||
|  | 	//     pspSelectionResolution - A pointer to the COleDateTimeSpan
 | ||
|  | 	//                              object that contains the selection unit
 | ||
|  | 	//                              length. (i.e. 1 day, 1 Hour, ... 5 min)
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     Call this member function to fill provided COleDateTime
 | ||
|  | 	//     objects with the values of the selection beginning, ending,
 | ||
|  | 	//     and selection unit length.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     TRUE - If the selection is returned successfully.
 | ||
|  | 	//     FALSE otherwise.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual BOOL GetSelection(COleDateTime* pBegin = NULL, COleDateTime* pEnd = NULL, | ||
|  | 							  BOOL* pbAllDayEvent = NULL, int* pnGroupIndex = NULL, | ||
|  | 							  COleDateTimeSpan* pspSelectionResolution = NULL) const; | ||
|  | 
 | ||
|  | 	/////////////////////////////////////////////////////////////////////////
 | ||
|  | 	// day manipulations
 | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to show the specified day in the
 | ||
|  | 	//     calendar day view.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     date - A COleDateTime object that contains the date to show.
 | ||
|  | 	//     bSelect - TRUE to select the specified day after showing,
 | ||
|  | 	//               FALSE otherwise. TRUE is the default value.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     Call this member function to show only the specified day in the
 | ||
|  | 	//     calendar day view.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void ShowDay(const COleDateTime& date, BOOL bSelect = TRUE); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to show the specified day interval
 | ||
|  | 	//     in the calendar day view.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     dtBegin - A COleDateTime object that contains the beginning
 | ||
|  | 	//               interval date to show.
 | ||
|  | 	//     dtEnd - A COleDateTime object that contains the ending interval
 | ||
|  | 	//             date to show.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     Call this member function to show all days from the dtBegin
 | ||
|  | 	//     up to dtEnd inclusive.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void ShowDays(const COleDateTime& dtBegin, const COleDateTime& dtEnd); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to show that working week
 | ||
|  | 	//     in the calendar day view, which includes the specified day.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     dtDay - A COleDateTime object that contains the date to show.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     Call this member function to show working week
 | ||
|  | 	//     which includes dtDay.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void ShowWorkingDays(const COleDateTime& dtDay); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to add a specified date to the
 | ||
|  | 	//     dates set showing in the current calendar day view.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     date - A COleDateTime object that contains the date to display.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     Call this member function to display a specific day in the
 | ||
|  | 	//     calendar day view in addition to the days already visible.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void AddDay(const COleDateTime& date); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to ensure that an event view item
 | ||
|  | 	//     is visible.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pViewEvent - A CXTPCalendarViewEvent object.  A pointer to the
 | ||
|  | 	//                  event view item being made visible.
 | ||
|  | 	//     pViewGroup - A CXTPCalendarViewGroup object. A pointer to the
 | ||
|  | 	//                  group view being made visible.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     If necessary, the function scrolls the day view so that the
 | ||
|  | 	//     event view item is visible.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     Returns TRUE if the system scrolled the day view in the
 | ||
|  | 	//     Calendar control to ensure that the specified event view item
 | ||
|  | 	//     is visible. Otherwise, the return value is FALSE.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual BOOL EnsureVisible(CXTPCalendarViewEvent* pViewEvent); | ||
|  | 	virtual BOOL EnsureVisibleH(CXTPCalendarViewEvent* pViewEvent); //<COMBINE EnsureVisible>
 | ||
|  | 	virtual BOOL EnsureVisibleH(CXTPCalendarViewGroup* pViewGroup); //<COMBINE EnsureVisible>
 | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to start view from the work day starting time.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     Call this method after set new data provider because new data
 | ||
|  | 	//     provider store other time scale resolution value.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void ScrollToWorkDayBegin(); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to determine whether resource group
 | ||
|  | 	//     header should be visible.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     This method returns FALSE when resource groups count is zero and
 | ||
|  | 	//     there is only one schedule used.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     TRUE when visible; FALSE otherwise.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual BOOL IsGroupHeaderVisible() const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to get main or additional time scale
 | ||
|  | 	//     object.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     nNumber - A time scale object number:
 | ||
|  | 	//                  1 - main time scale,
 | ||
|  | 	//                  2 - additional time scale.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//   By default number 1 (main time scale) is used.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     Pointer to the CXTPCalendarDayViewTimeScale object.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual CXTPCalendarDayViewTimeScale* GetTimeScale(int nNumber = 1) const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to obtain the CXTPCalendarDayViewDay object
 | ||
|  | 	//     by the day's date.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     dtDay  - A day date to find.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     Returns NULL if no day with the specified date in the days collection.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A pointer to a CXTPCalendarViewDay object.
 | ||
|  | 	// See Also: GetViewDayCount(), GetViewDay_, GetViewDay
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual CXTPCalendarDayViewDay* GetDay(COleDateTime dtDay); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to scroll the view back a
 | ||
|  | 	//     specified number of days.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     nScrollDaysCount - An int that is used to specify the number
 | ||
|  | 	//                        of days to scroll.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     Call this member function when you want to switch the
 | ||
|  | 	//     number of days back from the current day.
 | ||
|  | 	// See Also: ScrollDaysToNext
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void ScrollDaysToPrev(int nScrollDaysCount = 1); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to scroll the view forward a
 | ||
|  | 	//     specified number of days.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     nScrollDaysCount - An int that is used to specify the number
 | ||
|  | 	//                        of days to scroll.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     Call this member function to switch the number of days forward
 | ||
|  | 	//     from the current date.
 | ||
|  | 	// See Also: ScrollDaysToPrev
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void ScrollDaysToNext(int nScrollDaysCount = 1); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to scroll the view forward a
 | ||
|  | 	//     specified number of columns (schedules).
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     lColumn - columns # to show
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	void ScrollToColumn(long lColumn); | ||
|  | 
 | ||
|  | protected: | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to stop vertical scrolling.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     If there is a vertical scroll event in process, then calling
 | ||
|  | 	//     this member function stops the vertical scrolling.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void StopVertEventScroll(); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to stop horizontal scrolling.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     If there is a horizontal scroll event in process, then calling
 | ||
|  | 	//     this member function stops the v scrolling.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void StopHorzEventScroll(); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is an utility function used by OnKeyDown
 | ||
|  | 	//     It determines if we can scroll groups left if hscroll is disabled
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	BOOL GetIsCanHScrollGroupsLeft(COleDateTime dtNewSelEnd, BOOL bVKShift); | ||
|  | 
 | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is an utility function used by OnKeyDown
 | ||
|  | 	//     It determines if we can scroll groups right if hscroll is disabled
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	BOOL GetIsCanHScrollGroupsRight(COleDateTime dtNewSelEnd, BOOL bVKShift); | ||
|  | 
 | ||
|  | 	// ----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to change the mouse cursor.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     bOutOfArea : TRUE means out (FALSE - inside) of drag area.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     Call this member function to changes the mouse cursor depending on
 | ||
|  | 	//     which drag mode is currently active. Note: The drag mode is
 | ||
|  | 	//     contained in the XTPCalendarDraggingMode m_eDraggingMode member
 | ||
|  | 	//     variable.
 | ||
|  | 	// ----------------------------------------------------------------------
 | ||
|  | 	virtual void SetMouseOutOfDragArea(BOOL bOutOfArea); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to determine if the point is in
 | ||
|  | 	//     the drag able rectangle.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pnt      - A CPoint object that contains the point to test.
 | ||
|  | 	//     pHitInfo - Pointer to the XTP_CALENDAR_HITTESTINFO structure,
 | ||
|  | 	//                which helps to determine the client rectangle.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     TRUE if the point is out of the drag able rectangle, FALSE otherwise.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual BOOL IsOutOfClientRect(CPoint pnt, XTP_CALENDAR_HITTESTINFO *pHitInfo); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to determine the scroll direction.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pnt - Test mouse point.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     This function returns an XTPCalendarDayViewScrollDirection enumeration which defines the
 | ||
|  | 	//     scroll direction.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     xtpCalendarDayViewScrollUp/xtpCalendarDayViewScrollDown if scrolling up/down is needed.
 | ||
|  | 	//     xtpCalendarDayViewScrollNotNeeded if scrolling is not needed.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual XTPCalendarDayViewScrollDirection GetNeededScrollDirection(CPoint pnt) const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to vertically scroll an event
 | ||
|  | 	//     in the current view.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     bUp - A BOOL that contains the direction to scroll:
 | ||
|  | 	//           TRUE if up.
 | ||
|  | 	//           FALSE if down.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     TRUE, if scrolled successfully. FALSE otherwise.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual BOOL VertEventScroll(BOOL bUp); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to horizontally scroll an event
 | ||
|  | 	//     in the current view.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     bLeft - A BOOL that contains the direction to scroll:
 | ||
|  | 	//           TRUE if left.
 | ||
|  | 	//           FALSE if right.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     TRUE, if scrolled successfully. FALSE otherwise.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual BOOL HorzEventScroll(BOOL bLeft); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to return the minimum event
 | ||
|  | 	//     duration so that the event is visible in the current view.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A COleDateTimeSpan object that specifies the minimum duration
 | ||
|  | 	//     of the event.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual COleDateTimeSpan GetEventDurationMin() const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to select or un-select the provided
 | ||
|  | 	//     day, including all of the day's events.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pDay    - A pointer to a CXTPCalendarViewDay object.
 | ||
|  | 	// See Also: CXTPCalendarViewDay, SelectDay(COleDateTime dtSelDay, BOOL bSelect)
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void SelectDay(CXTPCalendarViewDay* pDay); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//      Converts Time Zones from both timescales to the minutes shift
 | ||
|  | 	//      of the second time scale in comparison with the first one.
 | ||
|  | 	// See Also: CXTPCalendarViewDay, SelectDay(COleDateTime dtSelDay, BOOL bSelect)
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void AdjustScale2TimeZone(); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to scroll the content of a view.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     nIndex :    Position value.
 | ||
|  | 	//     nPos_raw :  Raw position value. (Not used at this time.)
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void _ScrollV(int nIndex, int nPos_raw); | ||
|  | 
 | ||
|  | public: | ||
|  | 	COleDateTime GetDateTimeDay(const COleDateTime& dt) const; | ||
|  | 	COleDateTime GetDateTimeTime(const COleDateTime& dt) const; | ||
|  | 
 | ||
|  | private: | ||
|  | 	virtual void OnStartDragging(CPoint point, XTP_CALENDAR_HITTESTINFO* pHitTest); | ||
|  | 	virtual BOOL OnDragging(CPoint point, XTP_CALENDAR_HITTESTINFO* pHitTest); | ||
|  | 	virtual BOOL OnEndDragging(CPoint point, XTP_CALENDAR_HITTESTINFO* pHitInfo); | ||
|  | 
 | ||
|  | 	virtual void ClearDays(); | ||
|  | 
 | ||
|  | 	virtual void _ScrollDays(int nScrollDaysCount, BOOL bPrev); | ||
|  | 	virtual void ProcessCellSelection(COleDateTime dtNewSelBegin, BOOL bFixSelEnd, | ||
|  | 		BOOL bAllDayEventSel, int nGroupIndex); | ||
|  | 
 | ||
|  | 	virtual void ProcessDaySelection(XTP_CALENDAR_HITTESTINFO* pInfo, UINT nFlags); | ||
|  | 
 | ||
|  | 	virtual CXTPCalendarViewEvent* FindEventToEditByTAB(COleDateTime dtMinStart, | ||
|  | 														BOOL bReverse, | ||
|  | 														CXTPCalendarEvent* pAfterEvent = NULL); | ||
|  | 	virtual COleDateTime GetNextTimeEditByTAB() const; | ||
|  | 	virtual void UpdateNextTimeEditByTAB(COleDateTime dtNext, BOOL bReverse, | ||
|  | 										 BOOL bReset = FALSE); | ||
|  | 
 | ||
|  | 	virtual BOOL OnTimer(UINT_PTR uTimerID); | ||
|  | 	virtual void OnActivateView(BOOL bActivate, CXTPCalendarView* pActivateView, | ||
|  | 								CXTPCalendarView* pInactiveView); | ||
|  | 
 | ||
|  | 	void _AddDay(const COleDateTime& date); | ||
|  | 	int CalculateHeaderFormatAndHeight(CDC* pDC, int nCellWidth); | ||
|  | 
 | ||
|  | 	virtual CXTPCalendarData* _GetDataProviderByConnStr(LPCTSTR pcszConnStr, BOOL bCompareNoCase = TRUE); | ||
|  | 
 | ||
|  | public: | ||
|  | 	COleDateTime m_dtTimeScaleMin;  //Time scale minimum value.
 | ||
|  | 	COleDateTime m_dtTimeScaleMax;  //Time scale maximum value.
 | ||
|  | 
 | ||
|  | 	//BOOL m_bEcoMode;                //flag to use on screen drawing instead of memory bitmap manipulation
 | ||
|  | 									//(which restricted by 64K - sometimes it is not enough fo very many schedules case -
 | ||
|  | 									//and use too much memory on low-end PC)
 | ||
|  | 
 | ||
|  | 	BOOL m_bDraftMode;              //flag to set printout to print in B/W without Header and Footer
 | ||
|  | 	                                //to maximize main information space and simplify params set (default = FALSE)
 | ||
|  | 
 | ||
|  | 	BOOL m_bPrintRepeatHeaderFooterMode;    //flag to set printout to print Header and Footer only on first page
 | ||
|  | 	                                        //to maximize main information space (default = TRUE)
 | ||
|  | 
 | ||
|  | 	BOOL m_bDF_mode;            // Last page print mode flag (FALSE - print last page same size as other,
 | ||
|  | 	                            // TRUE (default) - can be shorter then others)
 | ||
|  | 
 | ||
|  | 	BOOL m_bPrintFullScale;     //print timescale range - if FALSE - print working hours range
 | ||
|  | 
 | ||
|  | 	int m_nDayViewPrintInterval;//interval to use in DayView Printing: 60 or 45 or 30 or 15
 | ||
|  | 
 | ||
|  | 	BOOL m_bEcoAllDayMode;      // If True use short AllDay area height
 | ||
|  | 
 | ||
|  | 	BOOL m_bPreventDragAllDayEventInDayView; //default FALSE If True it will be impossible to Drag All Day Event In DayView
 | ||
|  | 
 | ||
|  | 	int m_nDayHeaderPeriod;     //interval between in multi-scheduled mode Day Header for same date repeated -
 | ||
|  | 	                            //need for scrolling in very many - schedules case when one day can use few screens
 | ||
|  | 
 | ||
|  | 	int m_nCurPage;             // for AllDay event printing control by CXTPCalendarControlView
 | ||
|  | 
 | ||
|  | 	BOOL m_bUseNewHitTestCode;  //Tells whether to use new hit test code or not.
 | ||
|  | 
 | ||
|  | 	BOOL m_bShowLinks; //flag to show or hide 'virtual' view events
 | ||
|  | 	BOOL m_bHideLinkContainer; //flag to hide or show 'virtual' view events container column
 | ||
|  | 
 | ||
|  | 	BOOL m_bShowAllDayEventsOnly; | ||
|  | 	//{{AFX_CODEJOCK_PRIVATE
 | ||
|  | 	virtual void AdjustAllDayEvents(); | ||
|  | 
 | ||
|  | 	CRect GetDayHeaderRectangle() const; | ||
|  | 	CRect GetAllDayEventsRectangle() const; | ||
|  | 
 | ||
|  | 	void SetIsHideAllDayEventsArea(BOOL bHide); | ||
|  | 	BOOL GetIsHideAllDayEventsArea() const; | ||
|  | 
 | ||
|  | 	virtual int GetAllDayEventsMaxCount() const; | ||
|  | 	virtual int GetTotalGroupsCount() const; | ||
|  | 	virtual int RecalcMinColumnWidth() const; | ||
|  | 
 | ||
|  | 	//}}AFX_CODEJOCK_PRIVATE
 | ||
|  | 
 | ||
|  | protected: | ||
|  | 	//{{AFX_CODEJOCK_PRIVATE
 | ||
|  | 	XTP_DAY_VIEW_LAYOUT& GetLayout(); | ||
|  | 	virtual BOOL IsUseCellAlignedDraggingInTimeArea() const; | ||
|  | 	//}}AFX_CODEJOCK_PRIVATE
 | ||
|  | private: | ||
|  | 
 | ||
|  | 	XTP_DAY_VIEW_LAYOUT m_LayoutX; // Layout data.
 | ||
|  | 
 | ||
|  | 	CXTPCalendarDayViewTimeScale* m_pTimeScaleHeader;   // Pointer to the main time scale object.
 | ||
|  | 	CXTPCalendarDayViewTimeScale* m_pTimeScaleHeader2;  // Pointer to the alternative time scale object.
 | ||
|  | 
 | ||
|  | 	int m_nAllDayEventsCountMin_WhenDrag; | ||
|  | 
 | ||
|  | 	COleDateTimeSpan m_spDraggingStartOffset_Time; | ||
|  | 
 | ||
|  | 	COleDateTime m_dtSelectionStart; | ||
|  | 
 | ||
|  | 	DWORD m_dwScrollingEventTimerID; | ||
|  | 	DWORD m_dwScrollingEventTimerHorID; | ||
|  | 
 | ||
|  | 	BOOL m_bScrollingEventUp; | ||
|  | 	BOOL m_bScrollingEventLeft; | ||
|  | 
 | ||
|  | 	BOOL m_bMouseOutOfDragArea; | ||
|  | 	COleDateTime m_dtDraggingStartPoint; | ||
|  | 	CPoint m_ptLastMousePos; | ||
|  | 
 | ||
|  | 	DWORD m_dwRedrawNowLineTimerID; | ||
|  | 	COleDateTime m_dtLastRedrawTime; | ||
|  | 
 | ||
|  | 	BOOL m_bHideAllDayEventsArea; | ||
|  | 
 | ||
|  | protected: | ||
|  | 
 | ||
|  | 	int m_nScrollOffsetX;   // Stores horizontal left offset of visible day view part.
 | ||
|  | 
 | ||
|  | 	int m_nMinColumnWidth;  //  0 means disabled;
 | ||
|  | 	                        // -1 use some default width for multiresources only;
 | ||
|  | 	                        // -N use for multiresources only (internally converted to +N);
 | ||
|  | 	                        // +N used always (in single and multi resources mode).
 | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to get time scales area width.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     Time scales area width in pixels.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	int _GetTimeScaleWith() const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to get horizontal scroll area rect.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     Horizontal scroll area rect.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	CRect _GetScrollRectClient() const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to ensure that an event view item
 | ||
|  | 	//     is visible.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pViewEvent - A CXTPCalendarViewEvent object.  A pointer to the
 | ||
|  | 	//                  event view item being made visible.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     If necessary, the function scrolls the day view so that the
 | ||
|  | 	//     event view item is visible.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     Returns TRUE if the system scrolled the day view in the
 | ||
|  | 	//     Calendar control to ensure that the specified event view item
 | ||
|  | 	//     is visible. Otherwise, the return value is FALSE.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	BOOL _EnsureVisibleH(CXTPCalendarViewEvent* pViewEvent); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to ensure that an event view item
 | ||
|  | 	//     is visible.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pViewEvent - A CXTPCalendarViewEvent object.  A pointer to the
 | ||
|  | 	//                  event view item being made visible.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     If necessary, the function scrolls the day view so that the
 | ||
|  | 	//     event view item is visible.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     Returns TRUE if the system scrolled the day view in the
 | ||
|  | 	//     Calendar control to ensure that the specified event view item
 | ||
|  | 	//     is visible. Otherwise, the return value is FALSE.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	BOOL _EnsureVisibleV(CXTPCalendarViewEvent* pViewEvent); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function is used to ensure that an selection is visible.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     If necessary, the function scrolls the day view horizontally so that
 | ||
|  | 	//     the selection is visible.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     Returns TRUE if the system scrolled the day view, otherwise FALSE.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	BOOL _EnsureVisibleSelectionH(); | ||
|  | 
 | ||
|  | }; | ||
|  | 
 | ||
|  | //================================================================
 | ||
|  | 
 | ||
|  | AFX_INLINE CRect CXTPCalendarDayView::GetDayHeaderRectangle() const { | ||
|  | 	return m_LayoutX.m_rcDayHeader; | ||
|  | } | ||
|  | AFX_INLINE CRect CXTPCalendarDayView::GetAllDayEventsRectangle() const { | ||
|  | 	return m_LayoutX.m_rcAllDayEvents; | ||
|  | } | ||
|  | 
 | ||
|  | AFX_INLINE BOOL CXTPCalendarDayView::GetIsHideAllDayEventsArea() const { | ||
|  | 	return m_bHideAllDayEventsArea; | ||
|  | } | ||
|  | 
 | ||
|  | AFX_INLINE int CXTPCalendarDayView::GetRowCount() const { | ||
|  | 	return m_LayoutX.m_nRowCount; | ||
|  | } | ||
|  | AFX_INLINE int CXTPCalendarDayView::GetVisibleRowCount() const { | ||
|  | 	return m_LayoutX.m_nVisibleRowCount; | ||
|  | } | ||
|  | AFX_INLINE int CXTPCalendarDayView::GetTopRow() const { | ||
|  | 	return m_LayoutX.m_nTopRow; | ||
|  | } | ||
|  | AFX_INLINE void CXTPCalendarDayView::ProcessDaySelection(XTP_CALENDAR_HITTESTINFO* /*pInfo*/, UINT /*nFlags*/) { | ||
|  | 	UnselectAllEvents(); | ||
|  | } | ||
|  | AFX_INLINE void CXTPCalendarDayView::SelectDay(CXTPCalendarViewDay* /*pDay*/) { | ||
|  | 	// Do nothing for day view.
 | ||
|  | } | ||
|  | AFX_INLINE CXTPCalendarDayViewTimeScale* CXTPCalendarDayView::GetTimeScale(int nNumber) const { | ||
|  | 	ASSERT(nNumber == 1 || nNumber == 2); | ||
|  | 	return nNumber <= 1 ? m_pTimeScaleHeader : m_pTimeScaleHeader2; | ||
|  | } | ||
|  | AFX_INLINE XTP_DAY_VIEW_LAYOUT& CXTPCalendarDayView::GetLayout() { | ||
|  | 	return m_LayoutX; | ||
|  | } | ||
|  | AFX_INLINE int CXTPCalendarDayView::GetMinColumnWidth() const { | ||
|  | 	return m_nMinColumnWidth; | ||
|  | } | ||
|  | AFX_INLINE void CXTPCalendarDayView::SetMinColumnWidth(int nWidth) { | ||
|  | 	m_nMinColumnWidth = nWidth; | ||
|  | } | ||
|  | 
 | ||
|  | #endif // !defined(_XTPCALENDARDAYVIEW_H__)
 |