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__)
|