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.
617 lines
23 KiB
C
617 lines
23 KiB
C
2 years ago
|
// XTPCalendarControlView.h: interface for the CXTPCalendarControlView class.
|
||
|
//
|
||
|
// This file is a part of the XTREME CALENDAR MFC class library.
|
||
|
// (c)1998-2012 Codejock Software, All Rights Reserved.
|
||
|
//
|
||
|
// THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
|
||
|
// RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
|
||
|
// CONSENT OF CODEJOCK SOFTWARE.
|
||
|
//
|
||
|
// THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
|
||
|
// IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
|
||
|
// YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
|
||
|
// SINGLE COMPUTER.
|
||
|
//
|
||
|
// CONTACT INFORMATION:
|
||
|
// support@codejock.com
|
||
|
// http://www.codejock.com
|
||
|
//
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
//{{AFX_CODEJOCK_PRIVATE
|
||
|
#if !defined(__XTPCALENDARCONTROLVIEW_H__)
|
||
|
#define __XTPCALENDARCONTROLVIEW_H__
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
|
||
|
#if _MSC_VER > 1000
|
||
|
#pragma once
|
||
|
#endif // _MSC_VER > 1000
|
||
|
|
||
|
#include <afxdtctl.h>
|
||
|
|
||
|
|
||
|
class CXTPCalendarControlViewPrintOptions;
|
||
|
class CXTPCalendarPageSetupDialog;
|
||
|
class CXTPNotifySink;
|
||
|
|
||
|
//===========================================================================
|
||
|
// Summary:
|
||
|
// Identifier of Calendar control child window of CXTPCalendarControlView.
|
||
|
//===========================================================================
|
||
|
const UINT XTP_ID_CALENDAR_CONTROL = 100;
|
||
|
const UINT XTP_ID_CALENDARCAPTIONBAR_CONTROL = 101;
|
||
|
|
||
|
//===========================================================================
|
||
|
// Summary:
|
||
|
// Describes printing options for the Calendar Control.
|
||
|
// Remarks:
|
||
|
// Use this class when you want to programmatically customize printing
|
||
|
// options for the Calendar control.
|
||
|
//
|
||
|
// See each property description to examine which customization options
|
||
|
// are available.
|
||
|
// See Also:
|
||
|
// CXTPPrintOptions, CXTPCalendarPageSetupDialog overview
|
||
|
//===========================================================================
|
||
|
class _XTP_EXT_CLASS CXTPCalendarControlViewPrintOptions : public CXTPPrintOptions
|
||
|
{
|
||
|
//{{AFX_CODEJOCK_PRIVATE
|
||
|
DECLARE_DYNAMIC(CXTPCalendarControlViewPrintOptions)
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
|
||
|
public:
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Default constructor.
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPCalendarControlViewPrintOptions();
|
||
|
|
||
|
COleDateTime m_dtPrintFrom; // Top bound of the printing area for a day view.
|
||
|
COleDateTime m_dtPrintTo; // Bottom bound of the printing area for a day view.
|
||
|
BOOL m_bPrintFromToExactly; // Defines whether to cut printing
|
||
|
// area by showing only area between
|
||
|
// m_dtPrintFrom and m_dtPrintTo
|
||
|
|
||
|
COleDateTime m_dtMonthViewPrintBeginDate; // Begin date to print for multi month print option
|
||
|
COleDateTime m_dtMonthViewPrintEndDate; // End date to print for multi month print option
|
||
|
|
||
|
BOOL m_bPrintDateHeader; // Defines whether to print a date header or not.
|
||
|
LOGFONT m_lfDateHeaderFont; // Font for day header caption (Day 1 - Day 2)
|
||
|
LOGFONT m_lfDateHeaderWeekDayFont; // Font for day header week day(Monday, ...)
|
||
|
LOGFONT m_lfDateHeaderCalendarFont; // Font for day header small calendar.
|
||
|
|
||
|
BOOL m_b3SmallCal; // Print 3 small calendars in header instead of 1.
|
||
|
//BOOL m_bNoBackGround;
|
||
|
//BOOL m_bGrayBackGround;
|
||
|
//BOOL m_bGrayEventBackGround;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Copies all print options from a specified PrintOptions object.
|
||
|
// Parameters:
|
||
|
// pSrc - A pointer to the object to copy options from.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void Set(const CXTPCalendarControlViewPrintOptions* pSrc);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Override this member function in derived class to specify active
|
||
|
// locale ID.
|
||
|
// Returns:
|
||
|
// Locale ID. Base implementation returns LOCALE_USER_DEFAULT;
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual LCID GetActiveLCID();
|
||
|
|
||
|
protected:
|
||
|
|
||
|
};
|
||
|
|
||
|
//===========================================================================
|
||
|
// Summary:
|
||
|
// Customized Calendar control page setup dialog.
|
||
|
// Remarks:
|
||
|
// Use this class when you want to allow user to customize printing
|
||
|
// options for the Calendar control.
|
||
|
//
|
||
|
// This class enhances standard MFC page setup dialog, which encapsulates
|
||
|
// the services provided by the Windows common OLE Page Setup dialog box
|
||
|
// with additional support for setting and modifying print margins.
|
||
|
// This class is designed to take the place of the Print Setup dialog box.
|
||
|
//
|
||
|
// See Also:
|
||
|
// CXTPCalendarControlViewPrintOptions overview,
|
||
|
// CPageSetupDialog overview
|
||
|
//===========================================================================
|
||
|
class _XTP_EXT_CLASS CXTPCalendarPageSetupDialog : public CPageSetupDialog
|
||
|
{
|
||
|
public:
|
||
|
//{{AFX_CODEJOCK_PRIVATE
|
||
|
enum {IDD = XTP_IDD_CALENDAR_PRINT_PAGE_SETUP};
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Class constructor.
|
||
|
// Parameters:
|
||
|
// pOptions - A pointer to an associated CXTPCalendarControlViewPrintOptions
|
||
|
// object for storing user's interaction results.
|
||
|
// dwFlags - One or more flags you can use to customize the settings
|
||
|
// of the dialog box. The values can be combined using the
|
||
|
// bitwise-OR operator. For more details see CPageSetupDialog::CPageSetupDialog
|
||
|
// pParentWnd - Pointer to the dialog box's parent or owner.
|
||
|
// Remarks:
|
||
|
// Use the DoModal function to display the dialog box.
|
||
|
// See also:
|
||
|
// CPageSetupDialog::CPageSetupDialog()
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPCalendarPageSetupDialog(CXTPCalendarControlViewPrintOptions* pOptions,
|
||
|
DWORD dwFlags = PSD_MARGINS | PSD_INWININIINTLMEASURE,
|
||
|
CWnd* pParentWnd = NULL);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Default class constructor, handles members cleanup.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual ~CXTPCalendarPageSetupDialog();
|
||
|
|
||
|
protected:
|
||
|
CXTPCalendarControlViewPrintOptions* m_pOptions; // Pointer to associated print options object.
|
||
|
|
||
|
CComboBox m_ctrlPrintFromCmb;
|
||
|
// A combo for choosing CXTPCalendarControlViewPrintOptions::m_dtPrintFrom value
|
||
|
CComboBox m_ctrlPrintToCmb;
|
||
|
// A combo for choosing CXTPCalendarControlViewPrintOptions::m_dtPrintTo value
|
||
|
CButton m_ctrlPrintFromTo;
|
||
|
// A check box for editing CXTPCalendarControlViewPrintOptions::m_bPrintFromToExactly value
|
||
|
CButton m_ctrlPrintDateHeader;
|
||
|
// A check box for editing CXTPCalendarControlViewPrintOptions::m_bPrintDateHeader value
|
||
|
CStatic m_ctrlDateHeaderFontLabel;
|
||
|
// A label for displaying CXTPCalendarControlViewPrintOptions::m_lfDateHeaderFont caption
|
||
|
CEdit m_ctrlDateHeaderFont;
|
||
|
// A label for displaying CXTPCalendarControlViewPrintOptions::m_lfDateHeaderFont value
|
||
|
CButton m_ctrlDateHeaderFontButton;
|
||
|
// A button for choosing CXTPCalendarControlViewPrintOptions::m_lfDateHeaderFont value
|
||
|
CButton m_ctrlBlackWhitePrinting;
|
||
|
// A check box for editing CXTPCalendarControlViewPrintOptions::m_bBlackWhitePrinting value
|
||
|
CButton m_ctrl3SmallCal;
|
||
|
// A check box for setting CXTPCalendarControlViewPrintOptions::m_b3SmallCal value
|
||
|
LOGFONT m_lfDateHeader;
|
||
|
// a date time picker for begin date in month view printing
|
||
|
CDateTimeCtrl m_ctrlMonthViewPrintFrom;
|
||
|
// a date time picker for end date in month view printing
|
||
|
CDateTimeCtrl m_ctrlMonthViewPrintTo;
|
||
|
// a check box which swithes between use or not multimonth printing option
|
||
|
CButton m_ctrlMonthViewPrintRange;
|
||
|
// Date header font temporary storage
|
||
|
CEdit m_ctrlHeaderFormat; // An edit for header format string
|
||
|
CEdit m_ctrlFooterFormat; // An edit for footer format string
|
||
|
CButton m_ctrlHeaderFormatBtn; // A button to show header specifiers menu
|
||
|
CButton m_ctrlFooterFormatBtn; // A button to show footer specifiers menu
|
||
|
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Converts font name to a human readable string.
|
||
|
// Parameters:
|
||
|
// lfFont - A reference to a font.
|
||
|
// Returns:
|
||
|
// A string describing a provided font.
|
||
|
//-----------------------------------------------------------------------
|
||
|
CString FormatFontName(const LOGFONT& lfFont);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Dialog-box initialization.
|
||
|
// Returns:
|
||
|
// FALSE because it has explicitly set the input focus to one of the
|
||
|
// controls in the dialog box.
|
||
|
// See also:
|
||
|
// CPageSetupDialog::OnInitDialog().
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual BOOL OnInitDialog();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Called when the user clicks the OK button (the button with an ID of IDOK).
|
||
|
// Remarks:
|
||
|
// Saves all values into m_pOptions structure.
|
||
|
// See also:
|
||
|
// CPageSetupDialog::OnOK().
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void OnOK();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Called when the user clicks the Print Date Header check box.
|
||
|
// Remarks:
|
||
|
// Enables/disables all controls related to configuring a Date Header.
|
||
|
//-----------------------------------------------------------------------
|
||
|
afx_msg void OnBnClickedPrintDateHeader();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Called when the user clicks the Date Header font button.
|
||
|
// Remarks:
|
||
|
// Shows standard Font dialog in order to customize a Date Header font.
|
||
|
//-----------------------------------------------------------------------
|
||
|
afx_msg void OnBnClickedDateHeaderFont();
|
||
|
|
||
|
//{{AFX_CODEJOCK_PRIVATE
|
||
|
afx_msg void OnBnClickedHeaderFormat();
|
||
|
afx_msg void OnBnClickedFooterFormat();
|
||
|
afx_msg void OnBnClickedMonthViewPrintRange();
|
||
|
DECLARE_MESSAGE_MAP()
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
|
||
|
void UpdateMonthViewDateControls();
|
||
|
};
|
||
|
|
||
|
//===========================================================================
|
||
|
// Summary:
|
||
|
// The CXTPCalendarControlView class provides an implementation of
|
||
|
// the Calendar control as view class. Use GetCalendarCtrl() method
|
||
|
// to access methods of CXTPCalendarControl
|
||
|
// See Also: CXTPCalendarControl
|
||
|
//===========================================================================
|
||
|
class _XTP_EXT_CLASS CXTPCalendarControlView : public CView
|
||
|
{
|
||
|
//{{AFX_CODEJOCK_PRIVATE
|
||
|
DECLARE_DYNCREATE(CXTPCalendarControlView)
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
protected:
|
||
|
|
||
|
//-------------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Protected constructor used by dynamic creation
|
||
|
//-------------------------------------------------------------------------
|
||
|
CXTPCalendarControlView();
|
||
|
|
||
|
public:
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this method to access Calendar control object.
|
||
|
// Returns:
|
||
|
// Reference to child CXTPCalendarControl window
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CXTPCalendarControl& GetCalendarCtrl();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this method to access CaptionBar control object.
|
||
|
// Returns:
|
||
|
// Reference to child GetCalendarCaptionBarCtrl window
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CXTPCalendarCaptionBarControl& GetCalendarCaptionBarCtrl();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this method to set custom Calendar control object.
|
||
|
// Parameters:
|
||
|
// pCalendar - Pointer to custom report object.
|
||
|
// bReleaseWhenDestroy - Set this parameter as TRUE to call InternalRelease
|
||
|
// for pCalendar object on destroy of
|
||
|
// CXTPCalendarControlView.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void SetCalendarCtrl(CXTPCalendarControl* pCalendar, BOOL bReleaseWhenDestroy = TRUE);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this method to access print options for this view.
|
||
|
// Returns:
|
||
|
// Pointer to an object describing print options of this view.
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPCalendarControlViewPrintOptions* GetPrintOptions() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Use this member function to set external scroll bar control.
|
||
|
// Parameters:
|
||
|
// pScrollBar - Pointer to a scrollbar object.
|
||
|
// See Also: CScrollBar
|
||
|
//-----------------------------------------------------------------------
|
||
|
void SetScrollBarCtrl(CScrollBar* pScrollBar);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this method to retrieve is Caption Bar control visible.
|
||
|
// Returns:
|
||
|
// TRUE if Caption Bar is visible, FALSE otherwise.
|
||
|
// See Also:
|
||
|
// ShowCaptionBar, CXTPCalendarCaptionBarControl
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual BOOL IsShowCaptionBar() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this method to show or hide Caption Bar control.
|
||
|
// Parameters:
|
||
|
// bShow - Set this parameter as TRUE to show Caption Bar and as FALSE to hide it.
|
||
|
// See Also:
|
||
|
// IsShowCaptionBar, CXTPCalendarCaptionBarControl
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void ShowCaptionBar(BOOL bShow);
|
||
|
//move to public area
|
||
|
virtual void _ResizeControls();
|
||
|
|
||
|
protected:
|
||
|
|
||
|
//-------------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Destroys a CXTPCalendarControlView object, handles cleanup and deallocation.
|
||
|
//-------------------------------------------------------------------------
|
||
|
virtual ~CXTPCalendarControlView();
|
||
|
|
||
|
protected:
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draws main (central) date header area.
|
||
|
// Parameters:
|
||
|
// bCalculate - If TRUE, then only calculate rectangles and do not
|
||
|
// performs drawing itself.
|
||
|
// pDC - Pointer to a valid device context.
|
||
|
// rrcHeader - [out] Drawn rectangle area.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawDateHeader(BOOL bCalculate, CDC* pDC, CRect& rrcHeader);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draws month calendar in the right part of the central date header
|
||
|
// area.
|
||
|
// Parameters:
|
||
|
// bCalculate - If TRUE, then only calculate rectangles and do not
|
||
|
// performs drawing itself.
|
||
|
// pDC - Pointer to a valid device context.
|
||
|
// pOptions - Pointer to calendar Print Options object.
|
||
|
// dtYearMonth- Which month's calendar to draw.
|
||
|
// rrcHeaderCalendar - [out] Drawn rectangle area.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void _DrawDateHeaderCalendar(BOOL bCalculate, CDC* pDC,
|
||
|
COleDateTime dtYearMonth,
|
||
|
CRect& rrcHeaderCalendar);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Calculates a number of shown months and captions for them to be
|
||
|
// drawn on the date header.
|
||
|
// Parameters:
|
||
|
// dtYearMonth1 - Bottom boundary of the date period.
|
||
|
// dtYearMonth2 - Top boundary of the date period.
|
||
|
// strHeader1 - [out] Bottom boundary caption.
|
||
|
// strHeader2 - [out] Top boundary caption.
|
||
|
// strHeaderWeekDay - [out] Week day name (for a single day view only).
|
||
|
// Returns:
|
||
|
// A number of months between bottom and top boundaries, including them.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual int _GetDateHeaderMonths(COleDateTime& dtYearMonth1, COleDateTime& dtYearMonth2,
|
||
|
CString& strHeader1, CString& strHeader2,
|
||
|
CString& strHeaderWeekDay);
|
||
|
|
||
|
|
||
|
// ---------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Adjusts calendar printing rectangle by adding space for a header,
|
||
|
// footer and similar areas.
|
||
|
// Parameters:
|
||
|
// pDC : Pointer to a valid device context.
|
||
|
// rcCalendar : Calendar printing rectangle.
|
||
|
// pInfo : Pointer to calendar Print Options object.
|
||
|
// Returns:
|
||
|
// Adjusted calendar printing rectangle.
|
||
|
// ---------------------------------------------------------------------
|
||
|
virtual CRect AdjustCalendarForPrint(CDC* pDC, CRect rcCalendar, CPrintInfo* pInfo);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Converts a rectangle of HIMETRIC units into logical units.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context.
|
||
|
// rcHimetric - A rectangle to convert in HIMETRIC units.
|
||
|
// Remarks:
|
||
|
// Use this function when you get HIMETRIC sizes from OLE and wish to
|
||
|
// convert them to your application's natural mapping mode.
|
||
|
// The conversion is accomplished by first converting the HIMETRIC
|
||
|
// units into pixels and then converting these units into logical
|
||
|
// units using the device context's current mapping units. Note that
|
||
|
// the extents of the device's window and viewport will affect the result.
|
||
|
// Returns:
|
||
|
// Converted rectangle in logical units.
|
||
|
// See also:
|
||
|
// CDC::HIMETRICtoLP()
|
||
|
//-----------------------------------------------------------------------
|
||
|
static CRect _HimetricToLP(CDC* pDC, const CRect rcHimetric);
|
||
|
|
||
|
protected:
|
||
|
COleDateTime m_dtPrintFrom; // Top bound of the printing area for a day view.
|
||
|
COleDateTime m_dtPrintTo; // Bottom bound of the printing area for a day view.
|
||
|
|
||
|
//{{AFX_CODEJOCK_PRIVATE
|
||
|
#ifdef _DEBUG
|
||
|
virtual void AssertValid() const;
|
||
|
virtual void Dump(CDumpContext& dc) const;
|
||
|
#endif
|
||
|
|
||
|
DECLARE_MESSAGE_MAP()
|
||
|
|
||
|
//{{AFX_VIRTUAL(CXTPCalendarControlView)
|
||
|
virtual void OnDraw(CDC* pDC);
|
||
|
CScrollBar* GetScrollBarCtrl(int nBar) const;
|
||
|
|
||
|
virtual void OnPrepareDC(CDC* pDC, CPrintInfo* pInfo);
|
||
|
virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
|
||
|
|
||
|
virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
|
||
|
virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
|
||
|
|
||
|
virtual void OnPrint(CDC* pDC, CPrintInfo* pInfo);
|
||
|
virtual void _OnPrint2(CDC* pDC, CPrintInfo* pInfo, CRect rcPrint);
|
||
|
//}}AFX_VIRTUAL
|
||
|
|
||
|
void DoPrintPage(CDC* pDC, CPrintInfo* pInfo);
|
||
|
|
||
|
void SetupCurrentPrintPage(CDC* pDC, CPrintInfo* pInfo);
|
||
|
void SetupCurrentDayViewPrintPage(CDC* pDC, CPrintInfo* pInfo);
|
||
|
void SetupCurrentMonthViewPrintPage(CPrintInfo* pInfo);
|
||
|
|
||
|
void SelectNextPrintPage(CPrintInfo* pInfo);
|
||
|
void SelectNextDayViewPrintPage(CPrintInfo* pInfo);
|
||
|
|
||
|
CRect ExcludeMarginsFromDrawRect(CDC* pDC, CPrintInfo* pInfo);
|
||
|
UINT CalculateMonthViewPrintPagesCount();
|
||
|
|
||
|
|
||
|
//{{AFX_MSG(CXTPCalendarControlView)
|
||
|
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
|
||
|
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
|
||
|
afx_msg void OnSize(UINT nType, int cx, int cy);
|
||
|
afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
|
||
|
afx_msg void OnSetFocus(CWnd* pOldWnd);
|
||
|
afx_msg void OnPaint();
|
||
|
afx_msg void OnUndo();
|
||
|
afx_msg void OnCut();
|
||
|
afx_msg void OnCopy();
|
||
|
afx_msg void OnPaste();
|
||
|
afx_msg void OnSelectAll();
|
||
|
afx_msg void OnUpdateCommand(CCmdUI* pCmdUI);
|
||
|
afx_msg void OnFilePageSetup();
|
||
|
//}}AFX_MSG
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
|
||
|
protected:
|
||
|
|
||
|
//{{AFX_CODEJOCK_PRIVATE
|
||
|
class CPritAdjustContext
|
||
|
{
|
||
|
public:
|
||
|
CPritAdjustContext()
|
||
|
{
|
||
|
Reset();
|
||
|
}
|
||
|
|
||
|
void Reset()
|
||
|
{
|
||
|
m_bAdjust = TRUE;
|
||
|
m_rcCalendar.SetRectEmpty();
|
||
|
m_rectDraw_prev.SetRectEmpty();
|
||
|
m_rcDateHeader.SetRectEmpty();
|
||
|
m_rcFooter.SetRectEmpty();
|
||
|
m_rcHeader.SetRectEmpty();
|
||
|
}
|
||
|
BOOL m_bAdjust;
|
||
|
CRect m_rcHeader;
|
||
|
CRect m_rcDateHeader;
|
||
|
CRect m_rcCalendar;
|
||
|
CRect m_rcFooter;
|
||
|
CRect m_rectDraw_prev;
|
||
|
};
|
||
|
|
||
|
class CBeforePrintState
|
||
|
{
|
||
|
public:
|
||
|
CBeforePrintState();
|
||
|
|
||
|
public:
|
||
|
void ClearData();
|
||
|
|
||
|
void Save(CXTPCalendarControlView* pView);
|
||
|
|
||
|
void Restore(CXTPCalendarControlView* pView);
|
||
|
|
||
|
public:
|
||
|
BOOL m_bDataValid;
|
||
|
COleDateTimeSpan m_spScale_orig;
|
||
|
int m_nTopRow;
|
||
|
};
|
||
|
|
||
|
|
||
|
CBeforePrintState m_beforePrintState;
|
||
|
CPritAdjustContext m_pritAdjustContext;
|
||
|
CXTPCalendarControl::CUpdateContext* m_pUpdateContect;
|
||
|
CBitmap m_bmpGrayDC;
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
|
||
|
//{{AFX_CODEJOCK_PRIVATE
|
||
|
friend class CCalendarControlCtrl;
|
||
|
friend class CBeforePrintState;
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
|
||
|
protected:
|
||
|
|
||
|
//{{AFX_CODEJOCK_PRIVATE
|
||
|
void CalendarDayView_ScrolV(int nTopRow);
|
||
|
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
|
||
|
//{{AFX_CODEJOCK_PRIVATE
|
||
|
CXTPNotifySink* m_pSink;
|
||
|
|
||
|
virtual void OnEvent_CalendarThemeChanged(XTP_NOTIFY_CODE Event, WPARAM wParam , LPARAM lParam);
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
|
||
|
protected:
|
||
|
CXTPCalendarControlViewPrintOptions* m_pPrintOptions;
|
||
|
// Printing options.
|
||
|
|
||
|
BOOL m_bShowCaptionBar;
|
||
|
// Store Office 2007 theme Calendar Caption Bar state.
|
||
|
|
||
|
private:
|
||
|
CXTPCalendarCaptionBarControl m_wndCalendarCaptionBar;
|
||
|
// Child Calendar Caption Bar window
|
||
|
|
||
|
CXTPCalendarControl* m_pCalendar;
|
||
|
// Child Calendar control pointer (used to set external calendar control).
|
||
|
|
||
|
BOOL m_bReleaseCalendarWhenDestroy;
|
||
|
CScrollBar* m_pScrollBar;
|
||
|
|
||
|
BOOL m_bDayViewMode;
|
||
|
//internal flag for DayView and related Views printing
|
||
|
|
||
|
public:
|
||
|
BOOL m_bPrintDirect;
|
||
|
// if TRUE - the Print Dialog is bypassed. FALSE by default.
|
||
|
|
||
|
BOOL m_bResizeControlWithView;
|
||
|
// if FALSE - attached Calendar control will not be resized with view. TRUE by default.
|
||
|
|
||
|
BOOL m_bPrintFullScale;
|
||
|
// extra flag for printing if no Range on Print Option selected, FALSE - use Working hour range, TRUE - Time Scale range
|
||
|
|
||
|
BOOL m_bPrintFineMode;
|
||
|
// if TRUE - default and all Print Option features, if FALSE - B/W print without Header and Footer
|
||
|
|
||
|
BOOL m_bPrintRepeatHeaderFooterMode;
|
||
|
//flag to repeat readers and footers on each page
|
||
|
|
||
|
BOOL m_bDF_mode;
|
||
|
// Last page print mode flag (FALSE - print last page same size as other,
|
||
|
// TRUE (default) - can be shorter then others)
|
||
|
|
||
|
COleDateTime m_dtTimeScaleOldMaxTime;
|
||
|
//stored original time scale settings during print / print preview
|
||
|
COleDateTime m_dtTimeScaleOldMinTime;
|
||
|
//stored original time scale settings during print / print preview
|
||
|
//ext print support
|
||
|
private:
|
||
|
int m_nStartCell, m_nEndCell, m_nCurCell, m_nCellSteps, m_nInitialTopCell; // internal cell's for printing loop
|
||
|
CUIntArray m_PageStart;
|
||
|
COleDateTimeSpan m_dtInitialScaleInterval;
|
||
|
|
||
|
COleDateTime m_dtMonthViewPrintBeginDate; // The range of days to print for month view
|
||
|
COleDateTime m_dtMonthViewPrintEndDate;
|
||
|
COleDateTime m_dtSavedMonthViewBeginDate; // stores first visible day of month view before printing to restore the view after rint operation
|
||
|
|
||
|
BOOL m_bMonthViewMode;
|
||
|
};
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
AFX_INLINE CXTPCalendarControlViewPrintOptions* CXTPCalendarControlView::GetPrintOptions() const {
|
||
|
return m_pPrintOptions;
|
||
|
}
|
||
|
AFX_INLINE CXTPCalendarCaptionBarControl& CXTPCalendarControlView::GetCalendarCaptionBarCtrl() {
|
||
|
return m_wndCalendarCaptionBar;
|
||
|
}
|
||
|
|
||
|
#endif // !defined(__XTPCALENDARCONTROLVIEW_H__)
|