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.
		
		
		
		
		
			
		
			
				
	
	
		
			1234 lines
		
	
	
		
			49 KiB
		
	
	
	
		
			C++
		
	
			
		
		
	
	
			1234 lines
		
	
	
		
			49 KiB
		
	
	
	
		
			C++
		
	
| // XTPCalendarCaptionBarControl.h: interfaces for Time Zone Helper classes.
 | |
| //
 | |
| // 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(__XTPCalendarCaptionBarControl_H__)
 | |
| #define __XTPCalendarCaptionBarControl_H__
 | |
| //}}AFX_CODEJOCK_PRIVATE
 | |
| 
 | |
| #if _MSC_VER >= 1000
 | |
| #pragma once
 | |
| #endif // _MSC_VER >= 1000
 | |
| 
 | |
| class CXTPCalendarCaptionBarTheme;
 | |
| class CXTPNotifySink;
 | |
| class CXTPWinThemeWrapper;
 | |
| 
 | |
| //////////////////////////////////////////////////////////////////////////
 | |
| // Office2007
 | |
| 
 | |
| /*
 | |
| 	Switch View Bar:
 | |
| 		SwitchViewButtonPart
 | |
| 		RadioButtonPart
 | |
| 		// LabelPart
 | |
| 
 | |
| 	Scroll Date Bar:
 | |
| 		ScrollDateButtonPart
 | |
| 		DateLabelPart
 | |
| 
 | |
| 	==========================================
 | |
| 	ButtonViewDay   : SwitchViewButtonPart
 | |
| 	ButtonViewWeek  : SwitchViewButtonPart
 | |
| 	ButtonViewMonth : SwitchViewButtonPart
 | |
| 
 | |
| 	ShowWorkWeek    : RadioButtonPart
 | |
| 	ShowFullWeek    : RadioButtonPart
 | |
| 	---------------------------------
 | |
| 	ScrollPrevDate  : ScrollDateButtonPart
 | |
| 	ScrollNextDate  : ScrollDateButtonPart
 | |
| 	DateLabel       : DateLabelPart
 | |
| 
 | |
| 	---------------------------------
 | |
| 	SwitchViewBarBkColor
 | |
| 	ScrollDateBarBkColor
 | |
| 
 | |
| */
 | |
| 
 | |
| 
 | |
| //===========================================================================
 | |
| // Summary:
 | |
| //     Enumerates Calendar Caption Bar graphical objects .
 | |
| //===========================================================================
 | |
| enum XTPEnumCalendarCaptionBarThemeObject
 | |
| {
 | |
| 	xtpCalendarCaptionBar_Unknown           = 0,            // Defines Unknown (NULL) value.
 | |
| 
 | |
| 	xtpCalendarCaptionBar_ButtonViewDay     = 0x00000001,   // Defines SwitchViewBar DayViewButton.
 | |
| 	xtpCalendarCaptionBar_ButtonViewWeek    = 0x00000002,   // Defines SwitchViewBar WeekViewButton.
 | |
| 	xtpCalendarCaptionBar_ButtonViewMonth   = 0x00000004,   // Defines SwitchViewBar MonthViewButton.
 | |
| 
 | |
| 	xtpCalendarCaptionBar_ShowWorkWeek      = 0x00000010,   // Defines SwitchViewBar ShowWorkWeek radio button.
 | |
| 	xtpCalendarCaptionBar_ShowFullWeek      = 0x00000020,   // Defines SwitchViewBar ShowFullWeek radio button.
 | |
| 	xtpCalendarCaptionBar_ShowTimeline      = 0x00000040,   // Defines SwitchViewBar ShowTimeline radio button.
 | |
| 	xtpCalendarCaptionBar_MultiColumnsWeek  = 0x00000080,   // Defines SwitchViewBar MultiColumnsWeek radio button.
 | |
| 	xtpCalendarCaptionBar_ScrollPrevDate    = 0x00000100,   // Defines ScrollDateBar PrevDateButton.
 | |
| 	xtpCalendarCaptionBar_ScrollNextDate    = 0x00000200,   // Defines ScrollDateBar NextDateButton.
 | |
| 	xtpCalendarCaptionBar_DateLabel         = 0x00000400,   // Defines ScrollDateBar DateLabel.
 | |
| 	xtpCalendarCaptionBar_ButtonExpand      = 0x00000800    // Defines ScrollDateBar Expand Buton.
 | |
| };
 | |
| 
 | |
| //===========================================================================
 | |
| // Summary:
 | |
| //     CXTPCalendarCaptionBarControl represents CalendarCaptionBar control and
 | |
| //     used as a part of CXTPCalendarControl object. They looks and works as
 | |
| //     a single control but separated on 2 objects for customization
 | |
| //     possibilities.
 | |
| // Remarks:
 | |
| //     This class is used as owner (host, events source) window for
 | |
| //     CXTPCalendarCaptionBarTheme object which implements the most control logic.
 | |
| //
 | |
| // See Also: CXTPCalendarCaptionBarTheme, CXTPCalendarControl
 | |
| //===========================================================================
 | |
| class _XTP_EXT_CLASS CXTPCalendarCaptionBarControl : public CWnd
 | |
| {
 | |
| 	//{{AFX_CODEJOCK_PRIVATE
 | |
| 	DECLARE_DYNAMIC(CXTPCalendarCaptionBarControl)
 | |
| 	//}}AFX_CODEJOCK_PRIVATE
 | |
| public:
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Default object constructor.
 | |
| 	// See Also:
 | |
| 	//     ~CXTPCalendarCaptionBarControl
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	CXTPCalendarCaptionBarControl();
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Default object destructor.
 | |
| 	// See Also:
 | |
| 	//     CXTPCalendarCaptionBarControl
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual ~CXTPCalendarCaptionBarControl();
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function retrieves the minimum size required to show a
 | |
| 	//     CaptionBar control.
 | |
| 	// Parameters:
 | |
| 	//     bExactSize - BOOL flag for calc mode
 | |
| 	// Remarks:
 | |
| 	//     This member function call CXTPCalendarCaptionBarTheme::CalcMinRect
 | |
| 	//     function.
 | |
| 	// Returns:
 | |
| 	//     A minimum rectangle required to show CaptionBar control.
 | |
| 	// See Also:
 | |
| 	//     CXTPCalendarCaptionBarTheme::CalcMinRect
 | |
| 	// --------------------------------------------------------------------------
 | |
| 	virtual CRect CalcMinRect(BOOL bExactSize = FALSE);
 | |
| 
 | |
| 	// -----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to create the CaptionBar control window.
 | |
| 	// Parameters:
 | |
| 	//     dwStyle :     Specifies the window style attributes.
 | |
| 	//     rect :        A RECT object that contains the coordinates of the
 | |
| 	//                   window, in the client coordinates of pParentWnd.
 | |
| 	//     pParentWnd :  A CWnd pointer to the parent window.
 | |
| 	//     nID :         A UINT that contains the ID of the child window.
 | |
| 	// Returns:
 | |
| 	//     Nonzero if successful. Otherwise 0.
 | |
| 	// -----------------------------------------------------------------------
 | |
| 	virtual BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);
 | |
| 
 | |
| 	// ----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to adjust the object's layout
 | |
| 	//     depending on the provided bounding rectangle.
 | |
| 	// Parameters:
 | |
| 	//     pDC :     Pointer to a valid device context (may be NULL).
 | |
| 	//     prcWnd :  A CRect object containing the dimensions of the bounding
 | |
| 	//               rectangle for this part.
 | |
| 	//
 | |
| 	// ----------------------------------------------------------------------
 | |
| 	virtual void AdjustLayout(CDC* pDC = NULL, const CRect* prcWnd = NULL);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to obtain pointer to
 | |
| 	//     CXTPCalendarCaptionBarTheme object.
 | |
| 	// Returns:
 | |
| 	//     A pointer to CXTPCalendarCaptionBarTheme object.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	CXTPCalendarCaptionBarTheme* GetTheme() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to set theme object.
 | |
| 	// Parameters:
 | |
| 	//     pTheme - A pointer to CXTPCalendarCaptionBarTheme object.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void SetTheme(CXTPCalendarCaptionBarTheme* pTheme);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Register the window class if it has not already been registered.
 | |
| 	// Parameters:
 | |
| 	//     hInstance - Instance of resource where control is located
 | |
| 	// Returns:
 | |
| 	//     TRUE if the window class was successfully registered.  FALSE otherwise.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	BOOL RegisterWindowClass(HINSTANCE hInstance = NULL);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to adjust the object's layout depending
 | |
| 	//     on the provided bounding rectangle.
 | |
| 	// Returns:
 | |
| 	//     A CRect object containing the dimensions of the bounding rectangle
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	CRect GetBorders() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to adjust the object's layout depending
 | |
| 	//     on the provided bounding rectangle.
 | |
| 	// Parameters:
 | |
| 	//  nLeft - rectange data
 | |
| 	//  nTop - rectange data
 | |
| 	//  nRight - rectange data
 | |
| 	//  nBottom - rectange data
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual void SetBorders(int nLeft, int nTop, int nRight, int nBottom);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to adjust the object's layout depending
 | |
| 	//     on the provided bounding rectangle.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual void UpdateBorders();
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to show or hide Timeline button.
 | |
| 	// Parameters:
 | |
| 	//     bEnable - BOOL falg to pass
 | |
| 	// see also m_bTimelineEnable
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void EnableTimeline(BOOL bEnable);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to get state of m_bTimelineEnable
 | |
| 	// Returns:
 | |
| 	//     TRUE if the time line is enabled, FALSE else.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	BOOL IsTimelineEnable();
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to show or hide Multi-Columns mode button.
 | |
| 	// Parameters:
 | |
| 	//     bEnable - BOOL falg to pass
 | |
| 	// see also m_bMulticolumnsEnable
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void EnableMulticolumns(BOOL bEnable);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to get state of m_bMulticolumnsEnable
 | |
| 	// Returns:
 | |
| 	//     TRUE if the this button enable.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	BOOL IsMulticolumnsEnable();
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//  This member function is used to get state of GetTheme()->m_bIsOneLine -
 | |
| 	// Parameters:
 | |
| 	//  bSet - BOOL flag to toggle CaptionMode 2-lines or 1-line modes
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void UseOneLine(BOOL bSet);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//  This member function is used to get state of GetTheme()->m_bIsOneLine -
 | |
| 	//  flag to toggle CaptionMode 2-lines or 1-line modes
 | |
| 	//
 | |
| 	// Returns:
 | |
| 	//     TRUE if the this One Line mode used
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	BOOL IsUseOneLine(); // get state of m_bIsOneLine
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//  This member function is used to Set Button Text if text not empty
 | |
| 	//  and hide button and adjust Caption Bar if text is empty
 | |
| 	// Parameters:
 | |
| 	//  iButtonNumber - ordinal number of button starting from 0
 | |
| 	//  sButtonText - CString of text passed
 | |
| 	//
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void SetButtonText(int iButtonNumber, CString sButtonText);
 | |
| 	// Smart function which allow to set custom text on Caption Bar buttons and
 | |
| 	// hide - if text EMPTY at least MonthView, WeekView and DayView buttons to prevent user switch mode
 | |
| 	//(for restricted app)
 | |
| 
 | |
| /* example of using with button numbers linked to specific View type:
 | |
| 	GetCalendarCaptionBarCtrl().SetButtonText(0, _T("D")); - DayView
 | |
| 	GetCalendarCaptionBarCtrl().SetButtonText(1, _T("W")); - WeekView
 | |
| 	GetCalendarCaptionBarCtrl().SetButtonText(2, _T("M")); - MonthView
 | |
| 
 | |
| 	GetCalendarCaptionBarCtrl().SetButtonText(3, _T("TL")); - TimeLine
 | |
| 	GetCalendarCaptionBarCtrl().SetButtonText(4, _T("WW")); - WorkWeek
 | |
| 	GetCalendarCaptionBarCtrl().SetButtonText(5, _T("FW")); - FullWeek
 | |
| 	GetCalendarCaptionBarCtrl().SetButtonText(6, _T("III")); - Multi-Columns mode
 | |
| */
 | |
| 
 | |
| protected:
 | |
| 	CXTPCalendarCaptionBarTheme* m_pTheme; // Store pointer to CXTPCalendarCaptionBarTheme object.
 | |
| 	CRect m_Borders;              // Store options to draw border lines;
 | |
| 
 | |
| 	//{{AFX_CODEJOCK_PRIVATE
 | |
| 	afx_msg void OnPaint();
 | |
| 	afx_msg void OnNcPaint();
 | |
| 	afx_msg void OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS* lpncsp);
 | |
| 
 | |
| 	afx_msg BOOL OnEraseBkgnd(CDC* pDC);
 | |
| 	afx_msg void OnSize(UINT nType, int cx, int cy);
 | |
| 	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
 | |
| 	afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
 | |
| 	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
 | |
| 	afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
 | |
| 	afx_msg void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags);
 | |
| 	afx_msg void OnTimer(UINT_PTR uTimerID);
 | |
| 	afx_msg void OnDestroy();
 | |
| //  afx_msg void OnEnable(BOOL bEnable);
 | |
| //  afx_msg UINT OnGetDlgCode();
 | |
| //  afx_msg void OnSetFocus(CWnd* pOldWnd);
 | |
| 	afx_msg void OnKillFocus (CWnd* pNewWnd);
 | |
| 
 | |
| 	DECLARE_MESSAGE_MAP()
 | |
| //}}AFX_CODEJOCK_PRIVATE
 | |
| };
 | |
| 
 | |
| //===========================================================================
 | |
| // Summary:
 | |
| //     This class used as a base class for graphical Parts of CalendarCaptionBar
 | |
| //     paint theme.
 | |
| // See Also: CXTPCalendarCaptionBarTheme
 | |
| //===========================================================================
 | |
| class _XTP_EXT_CLASS CXTPCalendarCaptionBarThemePart : public CXTPCalendarWMHandler
 | |
| {
 | |
| 	//{{AFX_CODEJOCK_PRIVATE
 | |
| 	friend class CXTPCalendarCaptionBarTheme;
 | |
| 
 | |
| 	DECLARE_DYNAMIC(CXTPCalendarCaptionBarThemePart)
 | |
| 	//}}AFX_CODEJOCK_PRIVATE
 | |
| 
 | |
| public:
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Default object constructor.
 | |
| 	// Parameters:
 | |
| 	//     pTheme - Pointer to parent CXTPCalendarCaptionBarTheme object.
 | |
| 	//     nPartID - An object identifier (value from enum XTPEnumCalendarCaptionBarThemeObject).
 | |
| 	// See Also:
 | |
| 	//     ~CXTPCalendarCaptionBarThemePart
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	CXTPCalendarCaptionBarThemePart(CXTPCalendarCaptionBarTheme* pTheme, int nPartID);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Default object destructor.
 | |
| 	// See Also:
 | |
| 	//     CXTPCalendarCaptionBarThemePart
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual ~CXTPCalendarCaptionBarThemePart();
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to adjust the object's layout depending
 | |
| 	//     on the provided bounding rectangle.
 | |
| 	// Parameters:
 | |
| 	//     pDC      - Pointer to a valid device context (may be NULL).
 | |
| 	//     rcRect   - A CRect object containing the dimensions of the bounding
 | |
| 	//               rectangle for this part.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual void AdjustLayout(CDC* pDC, const CRect& rcRect);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to draw the part content utilizing
 | |
| 	//     the specified device context.
 | |
| 	// Parameters:
 | |
| 	//     pDC - Pointer to a valid device context.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual void Draw(CDC* pDC);
 | |
| 
 | |
| 	//-------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Performs refreshing of graphical related parameters from
 | |
| 	//     system settings. Base implementation do nothing.
 | |
| 	//-------------------------------------------------------------------
 | |
| 	virtual void RefreshMetrics() {};
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function initiates the CalendarCaptionBar control's redrawing.
 | |
| 	// Parameters:
 | |
| 	//     bUpdateNow : Set this parameter to TRUE if you'd like to force
 | |
| 	//                  control's redrawing.
 | |
| 	// Remarks:
 | |
| 	//     Call this member function if you want to request or force the control's
 | |
| 	//     redrawing.
 | |
| 	// See Also:
 | |
| 	//     CXTPCalendarCaptionBarTheme::Redraw, AdjustLayout
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual void Redraw(BOOL bUpdateNow = FALSE);
 | |
| 
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to determine is the specified point
 | |
| 	//     over visible object rectangle.
 | |
| 	// Parameters:
 | |
| 	//     pt - A CPoint object reference that contains the point to test.
 | |
| 	// Returns:
 | |
| 	//      TRUE if the point is inside the caption bar, FALSE else.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual BOOL HitTest(const CPoint& pt) const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to obtain pointer to parent
 | |
| 	//     CXTPCalendarCaptionBarTheme object.
 | |
| 	// Returns:
 | |
| 	//     A pointer to CXTPCalendarCaptionBarTheme object.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual CXTPCalendarCaptionBarTheme* GetTheme() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to obtain current paint theme.
 | |
| 	// Returns:
 | |
| 	//     A paint theme ID from enum XTPCalendarTheme.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual XTPCalendarTheme GetPaintTheme() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to obtain an object identifier.
 | |
| 	// Returns:
 | |
| 	//     An object ID (value from enum XTPEnumCalendarCaptionBarThemeObject).
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual int GetPartID() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to obtain an object rectangle.
 | |
| 	// Returns:
 | |
| 	//     An object rectangle.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual CRect GetRect() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to obtain an object text.
 | |
| 	// Returns:
 | |
| 	//     An object text as CString.
 | |
| 	// See Also: SetText
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual CString GetText() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to set object text.
 | |
| 	// Parameters:
 | |
| 	//     pcszText - An object text to set.
 | |
| 	// See Also: GetText
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual void SetText(LPCTSTR pcszText);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to get is part object visible.
 | |
| 	// Returns:
 | |
| 	//     TRUE if object is visible, FALSE otherwise.
 | |
| 	// See Also: SetVisible
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual BOOL IsVisible() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to set visible object's state.
 | |
| 	// Parameters:
 | |
| 	//     bVisible - A BOOL value to define visible state.
 | |
| 	// See Also: GetVisible
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual void SetVisible(BOOL bVisible);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to get checked state.
 | |
| 	// Returns:
 | |
| 	//     Non-zero if object is checked, 0 (zero) otherwise.
 | |
| 	// See Also: SetCheck
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual int GetCheck() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to set checked state.
 | |
| 	// Parameters:
 | |
| 	//     nCheck - Set as Non-zero if object is checked, 0 (zero) otherwise.
 | |
| 	// See Also: GetCheck
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual void SetCheck(int nCheck);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to get object state (flags from
 | |
| 	//     CXTPCalendarCaptionBarThemePart::EStates enum).
 | |
| 	// Returns:
 | |
| 	//     Current object state flags.
 | |
| 	// See Also: SetState
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	int GetState() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to set object state as set of flags
 | |
| 	//     from CXTPCalendarCaptionBarThemePart::EStates enum.
 | |
| 	// Parameters:
 | |
| 	//     nState - Current object state flags.
 | |
| 	// See Also: SetState
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual void SetState(int nState);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to get object text color.
 | |
| 	// Returns:
 | |
| 	//     m_clrTextColor value returned if it is defined, otherwise
 | |
| 	//     GetTheme()->m_clrTextColor value returned.
 | |
| 	// See Also:
 | |
| 	//     CXTPCalendarCaptionBarThemePart::m_clrTextColor,
 | |
| 	//     CXTPCalendarCaptionBarTheme::m_clrTextColor
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual COLORREF GetTextColor();
 | |
| 
 | |
| public:
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Defines the part object states flags.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	enum EStates
 | |
| 	{
 | |
| 		xtpBtnStateNormal       = 0,        // defines a normal state.
 | |
| 		xtpBtnStateMouseOver    = 0x001,    // defines a mouse over state.
 | |
| 		xtpBtnStatePressed      = 0x002,    // defines a pressed state.
 | |
| 		xtpBtnStateChecked      = 0x004,    // defines a checked state.
 | |
| 		xtpBtnStateFocused      = 0x008,    // defines a ficused state.
 | |
| 	};
 | |
| 
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to processes mouse movement 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.
 | |
| 	// Remarks:
 | |
| 	//     This method is called by the parent object when the user
 | |
| 	//     moves the mouse cursor.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual void OnMouseMove(UINT nFlags, CPoint point);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to process left mouse button down events.
 | |
| 	// Parameters:
 | |
| 	//     nFlags  - An int that indicates whether various virtual keys are down.
 | |
| 	//     point   - A CPoint object 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 message is handled successfully, FALSE else.
 | |
| 	// Remarks:
 | |
| 	//     This method is called by the parent object when the user
 | |
| 	//     presses the left mouse button.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual BOOL OnLButtonDown(UINT nFlags, CPoint point);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to process left mouse button up events.
 | |
| 	// Parameters:
 | |
| 	//     nFlags  - An int that indicates whether various virtual keys are down.
 | |
| 	//     point   - A CPoint object 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 message is handled successfully, FALSE else.
 | |
| 	// Remarks:
 | |
| 	//     This method is called by the parent object when the user
 | |
| 	//     releases the left mouse button.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual BOOL OnLButtonUp(UINT nFlags, CPoint point);
 | |
| 
 | |
| public:
 | |
| 	CXTPPaintManagerColor   m_clrTextColor; // Store the object's text color.
 | |
| 
 | |
| protected:
 | |
| 	CXTPCalendarCaptionBarTheme* m_pTheme;  // Store pointer to a parent theme object.
 | |
| 	int m_nPartID;      // Store a Part ID.
 | |
| 
 | |
| 	CRect   m_rcRect;   // Store a Part rectangle.
 | |
| 	CString m_strText;  // Store a Part text.
 | |
| 	int     m_nState;   // Store a Part state.
 | |
| 	BOOL    m_bVisible; // Store a Part visible state.
 | |
| };
 | |
| 
 | |
| //===========================================================================
 | |
| // Summary:
 | |
| //     This class CalendarCaptionBar control drawing, user interaction logic
 | |
| //     and interaction logic with attached Calendar control.
 | |
| //     paint theme.
 | |
| // See Also: CXTPCalendarCaptionBarTheme
 | |
| //===========================================================================
 | |
| class _XTP_EXT_CLASS CXTPCalendarCaptionBarTheme : public CXTPCalendarWMHandler
 | |
| {
 | |
| 	//{{AFX_CODEJOCK_PRIVATE
 | |
| 	DECLARE_DYNCREATE(CXTPCalendarCaptionBarTheme)
 | |
| 
 | |
| 	friend class CXTPCalendarCaptionBarControl;
 | |
| 	friend class CXTPCalendarCaptionBarThemePart;
 | |
| 	//}}AFX_CODEJOCK_PRIVATE
 | |
| 
 | |
| public:
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Default object constructor.
 | |
| 	// See Also:
 | |
| 	//     ~CXTPCalendarCaptionBarTheme
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	CXTPCalendarCaptionBarTheme();
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Default object destructor.
 | |
| 	// See Also:
 | |
| 	//     CXTPCalendarCaptionBarTheme
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual ~CXTPCalendarCaptionBarTheme();
 | |
| 
 | |
| 	double m_dScale;        //The scale.
 | |
| 
 | |
| public:
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This class implements SwitchView button part of the SwitchViewBar.
 | |
| 	// See Also:
 | |
| 	//     CXTPCalendarCaptionBarThemePart
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	class _XTP_EXT_CLASS CSwitchViewButtonPart: public CXTPCalendarCaptionBarThemePart
 | |
| 	{
 | |
| 	public:
 | |
| 		//{{AFX_CODEJOCK_PRIVATE
 | |
| 		CSwitchViewButtonPart(CXTPCalendarCaptionBarTheme* pTheme, int nPartID) :
 | |
| 							CXTPCalendarCaptionBarThemePart (pTheme, nPartID) {};
 | |
| 
 | |
| 		virtual void RefreshMetrics();
 | |
| 		virtual void AdjustLayout(CDC* pDC, const CRect& rcRect);
 | |
| 		virtual void Draw(CDC* pDC);
 | |
| 		//}}AFX_CODEJOCK_PRIVATE
 | |
| 	};
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This class implements Radio button part of the SwitchViewBar.
 | |
| 	// See Also:
 | |
| 	//     CXTPCalendarCaptionBarThemePart
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	class _XTP_EXT_CLASS CRadioButtonPart : public CXTPCalendarCaptionBarThemePart
 | |
| 	{
 | |
| 	public:
 | |
| 		//{{AFX_CODEJOCK_PRIVATE
 | |
| 		CRadioButtonPart(CXTPCalendarCaptionBarTheme* pTheme, int nPartID) :
 | |
| 							CXTPCalendarCaptionBarThemePart (pTheme, nPartID) {};
 | |
| 
 | |
| 		virtual void AdjustLayout(CDC* pDC, const CRect& rcRect);
 | |
| 		virtual void RefreshMetrics();
 | |
| 		virtual void Draw(CDC* pDC);
 | |
| 		//}}AFX_CODEJOCK_PRIVATE
 | |
| 	};
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This class implements Checkbox button part of the SwitchViewBar.
 | |
| 	// See Also:
 | |
| 	//     CXTPCalendarCaptionBarThemePart
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	class _XTP_EXT_CLASS CCheckboxButtonPart : public CXTPCalendarCaptionBarThemePart
 | |
| 	{
 | |
| 	public:
 | |
| 		//{{AFX_CODEJOCK_PRIVATE
 | |
| 		CCheckboxButtonPart(CXTPCalendarCaptionBarTheme* pTheme, int nPartID) :
 | |
| 							CXTPCalendarCaptionBarThemePart (pTheme, nPartID) {};
 | |
| 
 | |
| 		virtual void AdjustLayout(CDC* pDC, const CRect& rcRect);
 | |
| 		virtual void RefreshMetrics();
 | |
| 		virtual void Draw(CDC* pDC);
 | |
| 		//}}AFX_CODEJOCK_PRIVATE
 | |
| 	};
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This class implements Scroll Date button part of the ScrollDateBar.
 | |
| 	// See Also:
 | |
| 	//     CXTPCalendarCaptionBarThemePart
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	class _XTP_EXT_CLASS CScrollDateButtonPart : public CXTPCalendarCaptionBarThemePart
 | |
| 	{
 | |
| 	public:
 | |
| 		//{{AFX_CODEJOCK_PRIVATE
 | |
| 		CScrollDateButtonPart(CXTPCalendarCaptionBarTheme* pTheme, int nPartID) :
 | |
| 							CXTPCalendarCaptionBarThemePart (pTheme, nPartID) {};
 | |
| 
 | |
| 		virtual void Draw(CDC* pDC);
 | |
| 		virtual void AdjustLayout(CDC* pDC, const CRect& rcRect);
 | |
| 
 | |
| 		virtual BOOL OnLButtonDown(UINT nFlags, CPoint point);
 | |
| 		virtual void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
 | |
| 		virtual void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags);
 | |
| 		//}}AFX_CODEJOCK_PRIVATE
 | |
| 	protected:
 | |
| 		//{{AFX_CODEJOCK_PRIVATE
 | |
| 		virtual LPCTSTR _GetImageName();
 | |
| 
 | |
| 		virtual void DrawScrollTriangle(CDC* pDC, CRect rcRect, BOOL bLeftDirection, COLORREF clrColor);
 | |
| 		//}}AFX_CODEJOCK_PRIVATE
 | |
| 	};
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This class implements Date Label part of the ScrollDateBar.
 | |
| 	// See Also:
 | |
| 	//     CXTPCalendarCaptionBarThemePart
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	class _XTP_EXT_CLASS CDateLabelPart : public CXTPCalendarCaptionBarThemePart
 | |
| 	{
 | |
| 	public:
 | |
| 		//{{AFX_CODEJOCK_PRIVATE
 | |
| 		CDateLabelPart(CXTPCalendarCaptionBarTheme* pTheme, int nPartID) :
 | |
| 				CXTPCalendarCaptionBarThemePart (pTheme, nPartID) {};
 | |
| 
 | |
| 		virtual void RefreshMetrics();
 | |
| 		virtual void Draw(CDC* pDC);
 | |
| 
 | |
| 		virtual CString _FormatDate(COleDateTime dtDay1, COleDateTime dtDay2, BOOL bShowMonthDay);
 | |
| 		void UserAction_FormatCaptionBarLabel(CString& strCaption, COleDateTime dtDay1);
 | |
| 		//}}AFX_CODEJOCK_PRIVATE
 | |
| 	public:
 | |
| 		CXTPCalendarThemeFontValue  m_fntTextFont; // Store the text font.
 | |
| 	};
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This class implements Expand button part of the ScrollDateBar.
 | |
| 	// See Also:
 | |
| 	//     CXTPCalendarCaptionBarThemePart
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	class _XTP_EXT_CLASS CExpandButtonPart : public CXTPCalendarCaptionBarThemePart
 | |
| 	{
 | |
| 	public:
 | |
| 		//{{AFX_CODEJOCK_PRIVATE
 | |
| 		CExpandButtonPart(CXTPCalendarCaptionBarTheme* pTheme, int nPartID) :
 | |
| 							CXTPCalendarCaptionBarThemePart (pTheme, nPartID) {};
 | |
| 
 | |
| 		virtual void Draw(CDC* pDC);
 | |
| 		virtual void AdjustLayout(CDC* pDC, const CRect& rcRect);
 | |
| 		//}}AFX_CODEJOCK_PRIVATE
 | |
| 	protected:
 | |
| 		//{{AFX_CODEJOCK_PRIVATE
 | |
| 		//virtual LPCTSTR _GetImageName();
 | |
| 
 | |
| 		//virtual void _DrawTriangle(CDC* pDC, CPoint pt0, CPoint pt1, CPoint pt2, COLORREF clrColor);
 | |
| 		virtual void DrawExpandTriangle(CDC* pDC, CRect rcRect, BOOL bDownDirection, COLORREF clrColor);
 | |
| 		//}}AFX_CODEJOCK_PRIVATE
 | |
| 	};
 | |
| 
 | |
| public:
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function retrieves the minimum size required to show a
 | |
| 	//     CaptionBar control.
 | |
| 	// Parameters:
 | |
| 	//     pDC      - Pointer to a valid device context (may be NULL).
 | |
| 	//     bExactSize - BOOL flag to make Caption Bar minimum height if TRUE
 | |
| 	//                  and 11 pixels more if not (esthetic choice)
 | |
| 	// Returns:
 | |
| 	//     A minimum rectangle required to show CaptionBar control.
 | |
| 	// See Also:
 | |
| 	//     CXTPCalendarCaptionBarControl::CalcMinRect
 | |
| 	// --------------------------------------------------------------------------
 | |
| 	virtual CRect CalcMinRect(CDC* pDC = NULL, BOOL bExactSize = FALSE);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to adjust the object's layout depending
 | |
| 	//     on the provided bounding rectangle.
 | |
| 	// Parameters:
 | |
| 	//     pDC      - Pointer to a valid device context (may be NULL).
 | |
| 	//     rcRect   - A CRect object containing the dimensions of the bounding
 | |
| 	//               rectangle for this part.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual void AdjustLayout(CDC* pDC, const CRect& rcRect);
 | |
| 
 | |
| 	//-------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Performs refreshing of graphical related parameters from
 | |
| 	//     system settings. Base implementation do nothing.
 | |
| 	//-------------------------------------------------------------------
 | |
| 	virtual void RefreshMetrics();
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function initiates the CalendarCaptionBar control's redrawing.
 | |
| 	// Parameters:
 | |
| 	//     bUpdateNow : Set this parameter to TRUE if you'd like to force
 | |
| 	//                  control's redrawing.
 | |
| 	// Remarks:
 | |
| 	//     Call this member function if you want to request or force the control's
 | |
| 	//     redrawing.
 | |
| 	// See Also:
 | |
| 	//     CXTPCalendarCaptionBarTheme::Redraw, AdjustLayout
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual void Redraw(BOOL bUpdateNow = FALSE);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member functions is used to get is CaptionBar object visible.
 | |
| 	// Returns:
 | |
| 	//     TRUE if corresponding object is visible, FALSE otherwise.
 | |
| 	// See Also:
 | |
| 	//     SetSwitchViewButtons, SetScrollDateButtons, SetDateLabel
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	BOOL IsSwitchViewButtons() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member functions is used to get is Scroll Date Buttons object visible.
 | |
| 	// Returns:
 | |
| 	//     TRUE if corresponding object is visible, FALSE otherwise.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	BOOL IsScrollDateButtons() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member functions is used to get is Date Label object visible.
 | |
| 	// Returns:
 | |
| 	//     TRUE if corresponding object is visible, FALSE otherwise.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	BOOL IsDateLabel() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member functions is used to get is Expand Button object visible.
 | |
| 	// Returns:
 | |
| 	//     TRUE if corresponding object is visible, FALSE otherwise.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	BOOL IsExpandButton() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to set visible Switch View Buttons object's state.
 | |
| 	// Parameters:
 | |
| 	//     bVisible - A BOOL value to define visible state.
 | |
| 	// See Also: GetVisible
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void SetSwitchViewButtons(BOOL bVisible);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member functions is used to set Scroll Date Buttons object visible or not.
 | |
| 	// Parameters:
 | |
| 	//     bVisible - A BOOL value to define visible state.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void SetScrollDateButtons(BOOL bVisible);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member functions is used to set Date Label object visible or not.
 | |
| 	// Parameters:
 | |
| 	//     bVisible - A BOOL value to define visible state.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void SetDateLabel(BOOL bVisible);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member functions is used to set Expand Button object visible or not.
 | |
| 	// Parameters:
 | |
| 	//     bVisible - A BOOL value to define visible state.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void SetExpandButton(BOOL bVisible);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member functions is used to set Expand Button Checked state.
 | |
| 	// Parameters:
 | |
| 	//     bVisible - A BOOL value to define checked state.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void SetExpandButtonCheck(BOOL bCheck);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member functions is used to get is Expand Button object checked.
 | |
| 	// Returns:
 | |
| 	//     TRUE if corresponding object is checked, FALSE otherwise.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	BOOL GetExpandButtonCheck();
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to obtain current paint theme.
 | |
| 	// Returns:
 | |
| 	//     A paint theme ID from enum XTPCalendarTheme.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual XTPCalendarTheme GetPaintTheme() const;
 | |
| 
 | |
| 	// ------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to set current paint theme.
 | |
| 	// Parameters:
 | |
| 	//     nTheme :  A paint theme ID from enum XTPCalendarTheme.
 | |
| 	//
 | |
| 	// ------------------------------------------------------------
 | |
| 	virtual void SetPaintTheme(XTPCalendarTheme nTheme);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to get Notify Connection object
 | |
| 	// Returns:
 | |
| 	//     pointer to CXTPNotifyConnection object;
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	CXTPNotifyConnection* GetConnection();
 | |
| 
 | |
| public:
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to draw the object content utilizing
 | |
| 	//     the specified device context.
 | |
| 	// Parameters:
 | |
| 	//     pDC - Pointer to a valid device context.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual void Draw(CDC* pDC);
 | |
| 
 | |
| 	// ----------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to draw the object borders
 | |
| 	// Parameters:
 | |
| 	//     pDC - Pointer to a valid device context.
 | |
| 	//     rcRect - object rectangle
 | |
| 	//     Borders - border rectangle
 | |
| 	//
 | |
| 	// ----------------------------
 | |
| 	virtual void DrawBorders(CDC* pDC, const CRect& rcRect, const CRect& Borders);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to obtain an object rectangle.
 | |
| 	// Returns:
 | |
| 	//     An object rectangle.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual const CRect& GetRect();
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to obtain an owner (parent, host) window.
 | |
| 	// Returns:
 | |
| 	//     A pointer to CWnd object.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	CWnd* GetOwnerWnd() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to set owner (parent, host) window.
 | |
| 	// Remarks:
 | |
| 	//     CXTPCalendarCaptionBarControl::SetTheme call this method.
 | |
| 	// Parameters:
 | |
| 	//     pCaptionBar - A pointer to CXTPCalendarCaptionBarControl window.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual void SetOwner(CXTPCalendarCaptionBarControl* pCaptionBar);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to attach to CalendarControl to interact
 | |
| 	//     as a single control.
 | |
| 	// Parameters:
 | |
| 	//     pCalendar - A pointer to CXTPCalendarControl object or set as NULL
 | |
| 	//                 to detach from calendar.
 | |
| 	// See Also: GetCalendarCtrl
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual void AttachCalendar(CXTPCalendarControl* pCalendar);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to obtain attached calendar control.
 | |
| 	// Returns:
 | |
| 	//     A pointer to CXTPCalendarControl object.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual CXTPCalendarControl* GetCalendarCtrl() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is called to update CaptionBar controls states
 | |
| 	//     correspondingly to attached calendar control.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual void UpdateControlsState();
 | |
| 
 | |
| 	// ----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is used to read color by name from resources.
 | |
| 	// Parameters:
 | |
| 	//     pcszColorName :  string with Color Name
 | |
| 	//     clrDefault :     COLORREF of default color
 | |
| 	// Returns:
 | |
| 	//     A RGB color value.
 | |
| 	// ----------------------------------------------------------------------
 | |
| 	virtual COLORREF GetColor2(LPCTSTR pcszColorName, COLORREF clrDefault);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member function is called when user click on the caption bar
 | |
| 	//     element (part).
 | |
| 	// Parameters:
 | |
| 	//     nPartID - An identifier of clicked part object.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual void OnPartClick(int nPartID);
 | |
| 
 | |
| 	BOOL m_bTimelineEnable; // Flag to show (and able to use) button to toggle TimeLine mode
 | |
| 	BOOL m_bMulticolumnsEnable; // Flag to show (and able to use) button to toggle Multi-Column / 2-Column Week modes
 | |
| 
 | |
| protected:
 | |
| 
 | |
| 	//{{AFX_CODEJOCK_PRIVATE
 | |
| 	virtual int GetChildHandlersCount() const;
 | |
| 	virtual CXTPCalendarWMHandler* GetChildHandlerAt(int nIndex) const;
 | |
| 
 | |
| 	virtual void OnBeforeDestroy();
 | |
| 	virtual void OnMouseMove(UINT nFlags, CPoint point);
 | |
| 	virtual BOOL OnTimer(UINT_PTR uTimerID);
 | |
| 
 | |
| 	virtual void OnKillFocus (CWnd* pNewWnd);
 | |
| 	virtual BOOL _UpdateControlsHotState(BOOL* pbMouseLeave = NULL);
 | |
| 	//}}AFX_CODEJOCK_PRIVATE
 | |
| 
 | |
| protected:
 | |
| 
 | |
| 	CXTPCalendarCaptionBarControl* m_pCaptionBar; // Store pointer owner CaptionBar control.
 | |
| 	CXTPCalendarControl* m_pCalendar;   // Store pointer attached calendar control.
 | |
| 
 | |
| 	CRect m_rcRect;                     // Store object rect.
 | |
| 	UINT_PTR m_nCheckHotStateTimerID;   // Store timer ID to refresh controls hot state.
 | |
| 
 | |
| 	XTPCalendarTheme m_nPaintTheme;     // Store current paint theme.
 | |
| 
 | |
| protected:
 | |
| 
 | |
| 	CSwitchViewButtonPart*  m_pButtonViewDay;   // Store Switch to DayView button part object.
 | |
| 	CSwitchViewButtonPart*  m_pButtonViewWeek;  // Store Switch to WeekView button part object.
 | |
| 	CSwitchViewButtonPart*  m_pButtonViewMonth; // Store Switch to MonthView button part object.
 | |
| 
 | |
| 	CRadioButtonPart* m_pShowWorkWeek;  // Store Show Work Week radio button part object.
 | |
| 	CRadioButtonPart* m_pShowFullWeek;  // Store Show Full Week radio button part object.
 | |
| 	//CRadioButtonPart* m_pShowMcWeek;    // Store Show Multicolumns Week radio button part object.
 | |
| 	CCheckboxButtonPart* m_pShowMcWeek;    // Store Show Multicolumns Week radio button part object.
 | |
| 	CCheckboxButtonPart* m_pShowTimeline;  // Store Show Timeline radio button part object.
 | |
| 	//---------------------------------
 | |
| 	CScrollDateButtonPart*  m_pScrollPrevDate;  // Store Scroll Date Prev button part object.
 | |
| 	CScrollDateButtonPart*  m_pScrollNextDate;  // Store Scroll Date Next button part object.
 | |
| 	CDateLabelPart*         m_pDateLabel;       // Store Date Label part object.
 | |
| 
 | |
| 	CExpandButtonPart*      m_pExpandButton;       // Store Expand button part object.
 | |
| 
 | |
| 	//---------------------------------
 | |
| 	BOOL m_bIsSwitchViewButtons;    // Store option is SwitchViewBar visible.
 | |
| 	BOOL m_bIsScrollDateButtons;    // Store option is ScrollDate buttons visible.
 | |
| 	BOOL m_bIsDateLabel;            // Store option is date Label visible.
 | |
| 	BOOL m_bIsExpandButton;         // Store option is Expand button visible.
 | |
| 
 | |
| 	BOOL m_bIsOneLine; // flag to present 1-line (if TRUE) or 2-lines object layout
 | |
| 
 | |
| 	int m_nScrollDateButtonsMargin;
 | |
| 
 | |
| public:
 | |
| 
 | |
| 	CXTPPaintManagerColor   m_clrSwitchViewBarBk;   // Store SwitchViewBar background color.
 | |
| 	CXTPPaintManagerColor   m_clrScrollDateBarBk;   // Store ScrollDateBar background color.
 | |
| 
 | |
| 	CXTPCalendarThemeFontValue  m_fntTextFont;      // Store the text font.
 | |
| 	CXTPPaintManagerColor       m_clrTextColor;     // Store the text color.
 | |
| 
 | |
| 	CXTPPaintManagerColor   m_clrBorders;           // Store border lines color.
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member functions is used to get is CaptionBar layout use 1-line shape.
 | |
| 	// Returns:
 | |
| 	//     TRUE if corresponding object use 1-line shape, FALSE if 2-lines shape.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	BOOL IsOneLine() { return m_bIsOneLine; }
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This member functions is used to set CaptionBar layout to use 1-line shape.
 | |
| 	// Parameters:
 | |
| 	//     bSet - BOOL (TRUE to use 1-line shape, FALSE to use 2-lines shape)
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void SetOneLine(BOOL bSet) { m_bIsOneLine = bSet; }
 | |
| 
 | |
| public:
 | |
| 	//{{AFX_CODEJOCK_PRIVATE
 | |
| 	typedef CXTPCalendarPtrCollectionT<CXTPCalendarCaptionBarThemePart> CThemePartsArray;
 | |
| 	CThemePartsArray        m_arMembers;
 | |
| 	CXTPWinThemeWrapper*    m_themeButton;
 | |
| 
 | |
| 	virtual void _DrawTriangle(CDC* pDC, CPoint pt0, CPoint pt1, CPoint pt2, COLORREF clrColor);
 | |
| 	//}}AFX_CODEJOCK_PRIVATE
 | |
| 
 | |
| protected:
 | |
| 	//{{AFX_CODEJOCK_PRIVATE
 | |
| 	CXTPNotifyConnection* m_pConnection;
 | |
| 
 | |
| 	CXTPNotifySink* m_pSink;
 | |
| 
 | |
| 	virtual void OnEvent_Calendar(XTP_NOTIFY_CODE Event, WPARAM wParam, LPARAM lParam);
 | |
| 	virtual void OnEvent_ResourceImagesChanged(XTP_NOTIFY_CODE Event, WPARAM wParam, LPARAM lParam);
 | |
| 
 | |
| 	friend class CCalendarCaptionBarCtrl;
 | |
| 	//}}AFX_CODEJOCK_PRIVATE
 | |
| };
 | |
| 
 | |
| /////////////////////////////////////////////////////////////////////////////
 | |
| AFX_INLINE CRect CXTPCalendarCaptionBarControl::GetBorders() const {
 | |
| 	return m_Borders;
 | |
| }
 | |
| AFX_INLINE CXTPCalendarControl* CXTPCalendarCaptionBarTheme::GetCalendarCtrl() const {
 | |
| 	return m_pCalendar;
 | |
| }
 | |
| 
 | |
| AFX_INLINE CXTPCalendarCaptionBarTheme* CXTPCalendarCaptionBarControl::GetTheme() const {
 | |
| 	return m_pTheme;
 | |
| }
 | |
| AFX_INLINE const CRect& CXTPCalendarCaptionBarTheme::GetRect() {
 | |
| 	return m_rcRect;
 | |
| }
 | |
| 
 | |
| AFX_INLINE CWnd* CXTPCalendarCaptionBarTheme::GetOwnerWnd() const {
 | |
| 	return m_pCaptionBar;
 | |
| }
 | |
| AFX_INLINE BOOL CXTPCalendarCaptionBarTheme::IsSwitchViewButtons() const{
 | |
| 	return m_bIsSwitchViewButtons;
 | |
| }
 | |
| AFX_INLINE BOOL CXTPCalendarCaptionBarTheme::IsScrollDateButtons() const {
 | |
| 	return m_bIsScrollDateButtons;
 | |
| }
 | |
| 
 | |
| AFX_INLINE BOOL CXTPCalendarCaptionBarTheme::IsDateLabel() const {
 | |
| 	return m_bIsDateLabel;
 | |
| }
 | |
| AFX_INLINE BOOL CXTPCalendarCaptionBarTheme::IsExpandButton() const {
 | |
| 	return m_bIsExpandButton;
 | |
| }
 | |
| AFX_INLINE void CXTPCalendarCaptionBarTheme::SetSwitchViewButtons(BOOL bVisible) {
 | |
| 	m_bIsSwitchViewButtons = bVisible;
 | |
| 	Redraw();
 | |
| }
 | |
| AFX_INLINE void CXTPCalendarCaptionBarTheme::SetScrollDateButtons(BOOL bVisible) {
 | |
| 	m_bIsScrollDateButtons = bVisible;
 | |
| 	Redraw();
 | |
| }
 | |
| AFX_INLINE void CXTPCalendarCaptionBarTheme::SetExpandButton(BOOL bVisible) {
 | |
| 	m_bIsExpandButton = bVisible;
 | |
| 	Redraw();
 | |
| }
 | |
| 
 | |
| AFX_INLINE void CXTPCalendarCaptionBarTheme::SetExpandButtonCheck(BOOL bCheck)
 | |
| {
 | |
| 	m_pExpandButton->SetCheck(bCheck ? 1 : 0);
 | |
| }
 | |
| AFX_INLINE BOOL CXTPCalendarCaptionBarTheme::GetExpandButtonCheck()
 | |
| {
 | |
| 	return (m_pExpandButton->GetCheck() > 0 ? TRUE : FALSE);
 | |
| }
 | |
| 
 | |
| AFX_INLINE void CXTPCalendarCaptionBarTheme::SetDateLabel(BOOL bVisible) {
 | |
| 	m_bIsDateLabel = bVisible;
 | |
| 	Redraw();
 | |
| }
 | |
| AFX_INLINE XTPCalendarTheme CXTPCalendarCaptionBarTheme::GetPaintTheme() const {
 | |
| 	return m_nPaintTheme;
 | |
| }
 | |
| AFX_INLINE void CXTPCalendarCaptionBarTheme::SetPaintTheme(XTPCalendarTheme nTheme) {
 | |
| 	m_nPaintTheme = nTheme;
 | |
| 	RefreshMetrics();
 | |
| 	Redraw();
 | |
| }
 | |
| AFX_INLINE CXTPCalendarCaptionBarTheme* CXTPCalendarCaptionBarThemePart::GetTheme() const {
 | |
| 	return m_pTheme;
 | |
| }
 | |
| AFX_INLINE XTPCalendarTheme CXTPCalendarCaptionBarThemePart::GetPaintTheme() const {
 | |
| 	return m_pTheme ? m_pTheme->GetPaintTheme() : xtpCalendarThemeUnknown;
 | |
| }
 | |
| AFX_INLINE CRect CXTPCalendarCaptionBarThemePart::GetRect() const {
 | |
| 	return m_rcRect;
 | |
| }
 | |
| AFX_INLINE CString CXTPCalendarCaptionBarThemePart::GetText() const {
 | |
| 	return m_strText;
 | |
| }
 | |
| AFX_INLINE void CXTPCalendarCaptionBarThemePart::SetText(LPCTSTR pcszText) {
 | |
| 	m_strText = pcszText;
 | |
| }
 | |
| AFX_INLINE int CXTPCalendarCaptionBarThemePart::GetPartID() const {
 | |
| 	return m_nPartID;
 | |
| }
 | |
| AFX_INLINE BOOL CXTPCalendarCaptionBarThemePart::IsVisible() const {
 | |
| 	return m_bVisible;
 | |
| }
 | |
| AFX_INLINE void CXTPCalendarCaptionBarThemePart::SetVisible(BOOL bVisible) {
 | |
| 	m_bVisible = bVisible;
 | |
| }
 | |
| AFX_INLINE int CXTPCalendarCaptionBarThemePart::GetCheck() const {
 | |
| 	return !!(m_nState & xtpBtnStateChecked);
 | |
| }
 | |
| AFX_INLINE void CXTPCalendarCaptionBarThemePart::SetCheck(int nCheck) {
 | |
| 	if (nCheck)
 | |
| 		m_nState = m_nState | xtpBtnStateChecked;
 | |
| 	else
 | |
| 		m_nState = m_nState & (~xtpBtnStateChecked);
 | |
| }
 | |
| AFX_INLINE int CXTPCalendarCaptionBarThemePart::GetState() const {
 | |
| 	return m_nState;
 | |
| }
 | |
| AFX_INLINE void CXTPCalendarCaptionBarThemePart::SetState(int nState)
 | |
| {
 | |
| 	m_nState = nState;
 | |
| }
 | |
| 
 | |
| #endif // !defined(__XTPCalendarCaptionBarControl_H__)
 |