// XTPCalendarControlPaintManager.h: interface for the CXTPCalendarControlPaintManager 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(_XTPCALENDARPAINTMANAGER_H__) #define _XTPCALENDARPAINTMANAGER_H__ //}}AFX_CODEJOCK_PRIVATE #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 class CXTPCalendarTimeLineViewTimeScale; class CXTPCalendarTimeLineViewGroup; class CXTPCalendarTimeLineViewEvent; class CXTPCalendarTimeLineView; class CXTPResourceImage; class CXTPCalendarControl; class CXTPCalendarDayView; class CXTPCalendarDayViewDay; class CXTPCalendarDayViewGroup; class CXTPCalendarMonthView; class CXTPCalendarWeekView; class CXTPCalendarDayViewEvent; class CXTPCalendarMonthViewEvent; class CXTPCalendarWeekViewEvent; class CXTPCalendarViewEvent; class CXTPCalendarDayViewTimeScale; class CXTPCalendarFlagsSet_imp; class CXTPCalendarViewPartBrushValue; struct XTP_CALENDAR_DAYVIEWCELL_PARAMS; //=========================================================================== // Summary: // This helper macro is used to declare paint manager drawing parts. // theClass - Part name. // parentClass - Parent part name. // There are two paint manager methods available to access declared // part object: // CPartName* GetPartName(); // void SetPartName(CPartName* pPart); // Where PartName is the name of the declared part. // // Example: // // declaration in the paint manager class // BEGIN_VIEW_PART(PartClass1, ParentPartClass1) // ... // END_VIEW_PART(PartClass1) // // // in the implementation // CPaintManagerClassName::CPartClass1* pPart1 = pPainManObj->GetPartClass1(); // // See Also: END_VIEW_PART, CXTPCalendarPaintManager //=========================================================================== #define BEGIN_VIEW_PART(theClass, parentClass) //{{AFX_CODEJOCK_PRIVATE #undef BEGIN_VIEW_PART #define BEGIN_VIEW_PART(theClass, parentClass)\ class C##theClass : public C##parentClass\ {\ public:\ typedef C##parentClass TBase; \ C##theClass(CXTPCalendarViewPart* pParentPart = NULL)\ : C##parentClass(pParentPart)\ {\ _Init(); \ } //}}AFX_CODEJOCK_PRIVATE //=========================================================================== // Summary: // This helper macro is used to declare paint manager drawing parts. // theClass - Part name. // // See Also: BEGIN_VIEW_PART, CXTPCalendarPaintManager //=========================================================================== #define END_VIEW_PART(theClass) //{{AFX_CODEJOCK_PRIVATE #undef END_VIEW_PART #define END_VIEW_PART(theClass)\ };\ friend class C##theClass;\ protected:\ C##theClass* m_p##theClass;\ public:\ C##theClass* Get##theClass() const {\ return m_p##theClass;\ }\ void Set##theClass(C##theClass* p##theClass)\ {\ POSITION pos = m_lstViewParts.Find(m_p##theClass);\ ASSERT(pos);\ m_lstViewParts.RemoveAt(pos);\ delete m_p##theClass;\ m_p##theClass = p##theClass;\ m_lstViewParts.AddTail(p##theClass);\ p##theClass->m_pPaintManager = this;\ } //}}AFX_CODEJOCK_PRIVATE ///////////////////////////////////////////////////////////////////////////// // CXTPCalendarPaintManager command target //=========================================================================== // Summary: // Utility class, handles most of the drawing activities. // Remarks: // It stores all settings, needed by control to perform drawing operations : // fonts, colors, styles for all others classes of control. It also implements // all functions for drawing typical graphical primitives, functions that // directly work with device context. // Can be overridden to provide another look and feel for the control. // Thus, you have an easy way to change the "skin" of your control. Just provide // your own implementation of CXTPCalendarControlPaintManager and don't // touch the functionality of any of the other control classes. // // Create a CXTPCalendarControlPaintManager by calling its constructor. // Furthermore, you can call get and set functions to change // settings as needed. //=========================================================================== class _XTP_EXT_CLASS CXTPCalendarPaintManager : public CXTPCmdTarget { friend class CXTPCalendarViewPart; public: //{{AFX_CODEJOCK_PRIVATE //----------------------------------------------------------------------- // Summary: // Paint manager's ControlPart is used as parent for the // other parts of the control. //----------------------------------------------------------------------- BEGIN_VIEW_PART(ControlPart, XTPCalendarViewPart) //------------------------------------------------------------------- // Summary: // Performs refreshing of graphical related parameters from // system settings. //------------------------------------------------------------------- virtual void RefreshMetrics() { m_clrTextColor.SetStandardValue(m_pPaintManager->m_clrButtonFaceText); m_clrBackground.SetStandardValue(m_pPaintManager->m_clrButtonFace); LOGFONT lfIcon; VERIFY(m_pPaintManager->GetIconLogFont(&lfIcon)); m_fntText.SetStandardValue(&lfIcon); } END_VIEW_PART(ControlPart) //----------------------------------------------------------------------- //## Day View related drawing. //----------------------------------------------------------------------- //----------------------------------------------------------------------- // Summary: // This paint manager part is used to draw the time scale header, // 'Now' line, and the expand signs for the Day View. //----------------------------------------------------------------------- BEGIN_VIEW_PART(DayViewTimeScaleHeaderPart, XTPCalendarViewPart) //------------------------------------------------------------------- // Summary: // This member function is used to draw the time scale header. // Parameters: // pDC - Pointer to a valid device context. // pView - A CXTPCalendarDayView pointer that contains the Day // View object. // rc - The time scale header's bounding rectangle. // strText - A CString object that contains the header text. //------------------------------------------------------------------- virtual void OnDraw(CDC* pDC, CXTPCalendarDayView* pView, CRect rc, CString strText); //------------------------------------------------------------------- // Summary: // This member function is used to draw the 'Now' line. // Parameters: // pDC - Pointer to a valid device context. // pView - A CXTPCalendarDayView pointer to the Day View object. // rc - A CRect that contains the Time scale bounding rectangle. // y - An int that contains the 'Now' line position. // bDrawBk - If FALSE, then draw only the line. If TRUE, // then draw the line and the gradient fill. //------------------------------------------------------------------- virtual void DrawNowLine(CDC* pDC, CXTPCalendarDayView* pView, CRect rc, int y, BOOL bDrawBk = FALSE); //------------------------------------------------------------------- // Summary: // This member function is used to draw expand signs. // Parameters: // pDC - Pointer to a valid device context. // pView - A CXTPCalendarDayView pointer to the Day View object. // rcTSHours - A CRect that contains the Time scale hours rectangle. //------------------------------------------------------------------- virtual void DrawExpandSigns(CDC* pDC, CXTPCalendarDayView* pView, const CRect& rcTSHours); END_VIEW_PART(DayViewTimeScaleHeaderPart) //----------------------------------------------------------------------- // Summary: // This paint manager part is used to draw time scale time cells // for the Day View. //----------------------------------------------------------------------- BEGIN_VIEW_PART(DayViewTimeScaleCellPart, DayViewTimeScaleHeaderPart) CXTPCalendarViewPartFontValue m_fntTimeText; // Time text font. int m_nHourWidth; // Width of hour part of the text in pixels. int m_nMinWidth; // Width of minutes (am/pm) part of the text in pixels. //------------------------------------------------------------------- // Summary: // This member function is used to refresh the graphical // related parameters using system settings. //------------------------------------------------------------------- virtual void RefreshMetrics(); //------------------------------------------------------------------- // Summary: // This member function is used to adjust the time text font size. // Parameters: // pDC - Pointer to a valid device context. // rcCell - A CRect object that contains the time scale hour cell // bounding rectangle. //------------------------------------------------------------------- void AdjustTimeFont(CDC* pDC, CRect rcCell); //------------------------------------------------------------------- // Summary: // This member function is used to adjust the time text font size. // Parameters: // pDC - Pointer to a valid device context. // strHour - A CString object that contains the Hour text. // strMin - A CString object that contains the Minutes text. // nHourHeight - A hour big text height. // nWidth - An int that returns the width of time scale with // provided hour and minutes texts. //------------------------------------------------------------------- void CalcWidth(CDC* pDC, const CString& strHour, const CString& strMin, int nHourHeight, int& nWidth); //------------------------------------------------------------------- // Summary: // This member function is used to draw the hour cell. // Parameters: // pDC - Pointer to a valid device context. // rc - A CRect object that contains the time scale // hour cell bounding rectangle. // strText - A CString object that contains the time text. // bFillBackground - A BOOL. If TRUE, then fill the background before drawing. // If FALSE, then do not fill the background before drawing. //------------------------------------------------------------------- virtual void DrawHourCell(CDC* pDC, CRect rc, CString strText, BOOL bFillBackground = TRUE); //------------------------------------------------------------------- // Summary: // This member function is used to draw the big hour cell. // Parameters: // pDC - Pointer to a valid device context. // rc - A CRect object that contains the time scale // hour cell bounding rectangle. // strHour - A CString object that contains the Hour text. // strMin - A CString object that contains the Minutes text. // nRowPerHour - An int that contains the Rows per hour. // bFillBackground - A BOOL. If TRUE, then fill the background before drawing. // If FALSE, then do not fill the background before drawing. //------------------------------------------------------------------- virtual void DrawBigHourCell(CDC* pDC, CRect rc, CString strHour, CString strMin, int nRowPerHour, BOOL bFillBackground = TRUE); END_VIEW_PART(DayViewTimeScaleCellPart) //----------------------------------------------------------------------- // Summary: // This paint manager part is used as the base class for the parts // which draw different kinds of no all-day-cells (work/non-work) // for the Day View. //----------------------------------------------------------------------- BEGIN_VIEW_PART(DayViewCellPart, XTPCalendarViewPart) CXTPPaintManagerColor m_clrBackgroundSlave; //Background secondary color. CXTPPaintManagerColor m_clrShadow; // Cell background color. CXTPPaintManagerColor m_clrHour; // Cell border color. //------------------------------------------------------------------- // Summary: // This member function is used to fill out cell parameters with // default values. // Parameters: // pViewGroup - [in] A CXTPCalendarDayViewGroup pointer to the Day View Group object. // rCellParams - [in, out] A XTP_CALENDAR_DAYVIEWCELL_PARAMS object that contains // the cell's parameters. //------------------------------------------------------------------- virtual void GetParams(CXTPCalendarDayViewGroup* pViewGroup, XTP_CALENDAR_DAYVIEWCELL_PARAMS* rCellParams); //------------------------------------------------------------------- // Summary: // This member function is used to draw the day view with no // all-day-cells. // Parameters: // pDC - Pointer to a valid device context. // pViewGroup - A CXTPCalendarDayViewGroup pointer to the Day View Group object. // rc - A CRect object that contains the cell's bounding rectangle. // cellParams - A XTP_CALENDAR_DAYVIEWCELL_PARAMS object that contains // the cell's parameters. //------------------------------------------------------------------- virtual void OnDraw(CDC* pDC, CXTPCalendarDayViewGroup* pViewGroup, CRect rc, const XTP_CALENDAR_DAYVIEWCELL_PARAMS& cellParams); END_VIEW_PART(DayViewCellPart) //----------------------------------------------------------------------- // Summary: // This paint manager part is used to draw a day view that contains // no all day work time cells. //----------------------------------------------------------------------- BEGIN_VIEW_PART(DayViewWorkCellPart, DayViewCellPart) //------------------------------------------------------------------- // Summary: // This member function is used to perform the refreshing of // graphical related parameters from system settings. //------------------------------------------------------------------- virtual void RefreshMetrics(); END_VIEW_PART(DayViewWorkCellPart) //----------------------------------------------------------------------- // Summary: // This paint manager part is used to draw "no all day non-work" // time cells for the Day View. //----------------------------------------------------------------------- BEGIN_VIEW_PART(DayViewNonworkCellPart, DayViewCellPart) //------------------------------------------------------------------- // Summary: // This member function is used to perform refreshing of // graphical related parameters from system settings. //------------------------------------------------------------------- virtual void RefreshMetrics(); END_VIEW_PART(DayViewNonworkCellPart) //----------------------------------------------------------------------- // Summary: // This paint manager part is used to draw days headers for // the Day View. //----------------------------------------------------------------------- BEGIN_VIEW_PART(DayMonthViewHeaderPart, XTPCalendarViewPart) CXTPPaintManagerColor m_clrTopLeftBorder; // Top and Left borders color. //------------------------------------------------------------------- // Summary: // This member function is used to perform refreshing of // graphical related parameters from system settings. //------------------------------------------------------------------- virtual void RefreshMetrics() { m_clrTopLeftBorder.SetStandardValue(RGB(255, 255, 255)); } END_VIEW_PART(DayMonthViewHeaderPart) //----------------------------------------------------------------------- // Summary: // This paint manager part is used to draw days headers for // the Day View. //----------------------------------------------------------------------- BEGIN_VIEW_PART(DayViewHeaderPart, DayMonthViewHeaderPart) //------------------------------------------------------------------- // Summary: // This member function is used to draw the day header. // Parameters: // pDC - Pointer to a valid device context. // pViewDay - A CXTPCalendarDayViewDay pointer to the Day View // object. // rc - A CRect object that contains the coordinates of // the Header's bounding rectangle. // strText - A CString object that contains the Header text. //------------------------------------------------------------------- virtual void OnDraw(CDC* pDC, CXTPCalendarDayViewDay* pViewDay, CRect rc, CString strText); END_VIEW_PART(DayViewHeaderPart) //----------------------------------------------------------------------- // Summary: // This paint manager part is used to draw Groups headers for // the Day View. //----------------------------------------------------------------------- BEGIN_VIEW_PART(DayViewGroupHeaderPart, DayMonthViewHeaderPart) //------------------------------------------------------------------- // Summary: // This member function is used to draw the day header. // Parameters: // pDC - Pointer to a valid device context. // pViewGroup - A CXTPCalendarDayViewGroup pointer to the Group // object. // rc - A CRect object that contains the coordinates of // the Header's bounding rectangle. // strText - A CString object that contains the Header text. //------------------------------------------------------------------- virtual void OnDraw(CDC* pDC, CXTPCalendarDayViewGroup* pViewGroup, CRect rc, CString strText); END_VIEW_PART(DayViewGroupHeaderPart) //----------------------------------------------------------------------- // Summary: // This paint manager part is used to draw all day events area for // the Day View. //----------------------------------------------------------------------- BEGIN_VIEW_PART(DayViewAllDayEventsPart, XTPCalendarViewPart) //------------------------------------------------------------------- // Summary: // This member functions is used to perform refreshing of graphical // related parameters from system settings. //------------------------------------------------------------------- virtual void RefreshMetrics() { m_clrBackground.SetStandardValue(m_pPaintManager->m_clr3DShadow); } //------------------------------------------------------------------- // Summary: // This member function is used to draw the all-day events area. // Parameters: // pDC - Pointer to a valid device context. // pViewGroup - A CXTPCalendarDayViewGroup pointer to the Group object. // rc - A CRect object that contains the all-day events // area bounding rectangle coordinates. // bSelected - A BOOL. TRUE if the draw area is selected. FALSE otherwise. //------------------------------------------------------------------- virtual void OnDraw(CDC* pDC, CXTPCalendarDayViewGroup* pViewGroup, CRect rc, BOOL bSelected); END_VIEW_PART(DayViewAllDayEventsPart) //----------------------------------------------------------------------- // Summary: // This paint manager part is used to draw all day events scroll buttons if there are too many // all day events. //----------------------------------------------------------------------- BEGIN_VIEW_PART(DayViewAllDayEventScrollIconsPart, XTPCalendarViewPart) //------------------------------------------------------------------- // Summary: // This member function is used to draw scroll icons in all day events area. // Parameters: // pDC - Pointer to a valid device context. // pViewGroup - A CXTPCalendarDayViewGroup pointer to the Group object. // bDrawUp - selects show\hide up scroll icon // bDrawDown - selects show\hide down scroll icon // rcIconUp - scroll up icon area // rcIconDown - scroll down icon area // bHighlightUp - selects if draw the icon in highlighted color // bHighlightDown - selects if draw the icon in highlighted color //------------------------------------------------------------------- virtual void OnDraw(CDC* pDC, CXTPCalendarDayViewGroup* pViewGroup, BOOL bDrawUp, BOOL bDrawDown, const CRect& rcIconUp, const CRect& rcIconDown, BOOL bHighlightUp, BOOL bHighlightDown); END_VIEW_PART(DayViewAllDayEventScrollIconsPart) //----------------------------------------------------------------------- // Summary: // This paint manager part is used to draw events for // the Day View. //----------------------------------------------------------------------- BEGIN_VIEW_PART(DayViewEventPart, XTPCalendarViewPart) //------------------------------------------------------------------- // Summary: // Performs refreshing of graphical related parameters from // system settings. //------------------------------------------------------------------- virtual void RefreshMetrics() { m_clrBackground.SetStandardValue(RGB(255, 255, 255)); } //------------------------------------------------------------------- // Summary: // This member function is used to draw an event. // Parameters: // pDC - Pointer to a valid device context. // pViewEvent - A CXTPCalendarDayViewEvent pointer to the Day // Event View object. //------------------------------------------------------------------- virtual void OnDraw(CDC* pDC, CXTPCalendarDayViewEvent* pViewEvent); END_VIEW_PART(DayViewEventPart) //----------------------------------------------------------------------- //## Month View related drawing //----------------------------------------------------------------------- //----------------------------------------------------------------------- // Summary: // This paint manager part is used to draw days grid and to fill // days cells background for the Month View. //----------------------------------------------------------------------- BEGIN_VIEW_PART(MonthViewGridPart, XTPCalendarViewPart) CXTPPaintManagerColor m_clrBackground2; // Second background color which is used to fill days background. //------------------------------------------------------------------- // Summary: // Performs refreshing of graphical related parameters from // system settings. //------------------------------------------------------------------- virtual void RefreshMetrics(); //------------------------------------------------------------------- // Summary: // This member function is used to draw the days grid and to fill // the days cells background. // Parameters: // pDC - Pointer to a valid device context. // pMonthView - A CXTPCalendarMonthView pointer to the Month View object. //------------------------------------------------------------------- virtual void OnDrawGrid(CDC* pDC, CXTPCalendarMonthView* pMonthView); END_VIEW_PART(MonthViewGridPart) //----------------------------------------------------------------------- // Summary: // This paint manager part is used to draw week days headers for // the Month View. //----------------------------------------------------------------------- BEGIN_VIEW_PART(MonthViewHeaderPart, DayMonthViewHeaderPart) //------------------------------------------------------------------- // Summary: // This member function is used to draw the week day header. // Parameters: // pDC - Pointer to a valid device context. // pMonthView - A CXTPCalendarMonthView pointer to the Month // View object. // rc - A CRect object that contains the Week Day header's // bounding rectangle coordinates. // nCollIndex - An int that contains the Week Day column index in the grid. // strText - A CString object that contains the formatted Week Day name. //------------------------------------------------------------------- virtual void OnDraw(CDC* pDC, CXTPCalendarMonthView* pMonthView, CRect rc, int nCollIndex, CString strText); END_VIEW_PART(MonthViewHeaderPart) //----------------------------------------------------------------------- // Summary: // This paint manager part is used to draw events and day dates // for the Month View. //----------------------------------------------------------------------- BEGIN_VIEW_PART(MonthViewEventPart, XTPCalendarViewPart) COLORREF m_clrTextHighLightColor; // Text color for the selected event. COLORREF m_clrMultiDayEventFrameColor; // Multi-day event frame color. COLORREF m_clrClassicUnderline; // Underline color for today day. CXTPPaintManagerColorGradient m_grclrClassicSelDay;// Gradient color for today day. //------------------------------------------------------------------- // Summary: // Performs refreshing of graphical related parameters from // system settings. //------------------------------------------------------------------- virtual void RefreshMetrics() { m_clrTextHighLightColor = RGB(255, 255, 255); m_clrMultiDayEventFrameColor = RGB(0, 0, 0); m_clrBackground.SetStandardValue(RGB(255, 255, 213)); m_grclrClassicSelDay.SetStandardValue(m_clrBackground, RGB(217, 214, 202)); m_clrClassicUnderline = RGB(10, 36, 106); } //------------------------------------------------------------------- // Summary: // This member function is used to draw an event. // Parameters: // pDC - Pointer to a valid device context. // pViewEvent - A CXTPCalendarMonthViewEvent pointer to the Month Event View object. //------------------------------------------------------------------- virtual void OnDrawEvent(CDC* pDC, CXTPCalendarMonthViewEvent* pViewEvent); //------------------------------------------------------------------- // Summary: // This member function is used to draw the week day header. // Parameters: // pDC - Pointer to a valid device context. // rc - A CRect object that contains the Day header's bounding // rectangle coordinates. // bToday - TRUE for today day, otherwise FALSE. // bSelected - Is day selected. // strText - Formatted day date string. //------------------------------------------------------------------- virtual void OnDrawDayDate(CDC* pDC, CRect rc, BOOL bToday, BOOL bSelected, CString strText); END_VIEW_PART(MonthViewEventPart) //----------------------------------------------------------------------- //## Week view related drawing //----------------------------------------------------------------------- //----------------------------------------------------------------------- // Summary: // This paint manager part is used to draw week days grid and // headers for the Week View. //----------------------------------------------------------------------- BEGIN_VIEW_PART(WeekViewPart, XTPCalendarViewPart) COLORREF m_clrTextHighLightColor; // Text color for the selected day header. COLORREF m_clrTextNormalColor; // Text color for the day header and some other elements. COLORREF m_clrHeaderBottomLine; // Text color for the day header bottom line. //------------------------------------------------------------------- // Summary: // Performs refreshing of graphical related parameters from // system settings. //------------------------------------------------------------------- virtual void RefreshMetrics(); //------------------------------------------------------------------- // Summary: // This member function is used to draw an event. // Parameters: // pDC - Pointer to a valid device context. // pWeekView - A CXTPCalendarWeekView pointer to the Week Event View object. //------------------------------------------------------------------- virtual void OnDraw(CDC* pDC, CXTPCalendarWeekView* pWeekView); //------------------------------------------------------------------- // Summary: // This member function is used to draw the day header. // Parameters: // pDC - Pointer to a valid device context. // rcDay - A CRect object that contains the day's bounding // rectangle coordinates. // nHeaderHeight - An int that contains the header height value. // strHeader - A CString object that contains the header text. // bIsCurrent - A BOOL. TRUE if this is the current day for today. FALSE otherwise. // bIsSelected - A BOOL. TRUE if the day is selected. FALSE otherwise. //------------------------------------------------------------------- virtual void DrawDayHeader(CDC* pDC, CRect rcDay, int nHeaderHeight, CString strHeader, BOOL bIsCurrent = FALSE, BOOL bIsSelected = FALSE); END_VIEW_PART(WeekViewPart) //----------------------------------------------------------------------- // Summary: // This paint manager part is used to draw events for the // Week View. //----------------------------------------------------------------------- BEGIN_VIEW_PART(WeekViewEventPart, XTPCalendarViewPart) COLORREF m_clrTextHighLightColor; // Text color for the selected event. COLORREF m_clrTextNormalColor; // Text color for the event. //------------------------------------------------------------------- // Summary: // This member function is used to perform refreshing of // graphical related parameters from system settings. //------------------------------------------------------------------- virtual void RefreshMetrics() { m_clrBackground.SetStandardValue(m_pPaintManager->GetWeekViewPart()->GetBackgroundColor()); // RGB(255, 255, 213)); m_clrTextColor.SetStandardValue(m_pPaintManager->m_clrButtonFaceText); m_clrTextHighLightColor = RGB(255, 255, 255); m_clrTextNormalColor = m_pPaintManager->m_clrButtonFaceText; LOGFONT lfIcon; VERIFY(m_pPaintManager->GetIconLogFont(&lfIcon)); m_fntText.SetStandardValue(&lfIcon); } //------------------------------------------------------------------- // Summary: // This member function is used to draw the specified event. // Parameters: // pDC - Pointer to a valid device context. // pWeekViewEvent - A CXTPCalendarWeekViewEvent pointer to the Week Event View object. //------------------------------------------------------------------- virtual void OnDraw(CDC* pDC, CXTPCalendarWeekViewEvent* pWeekViewEvent); //------------------------------------------------------------------- // Summary: // This member functions is used to draw the event border. // Parameters: // pDC - Pointer to a valid device context. // rcView - A CRect that contains the day view's bounding rectangle coordinates. // pWeekViewEvent - A CXTPCalendarWeekViewEvent pointer to the Week Event View object. //------------------------------------------------------------------- virtual void DrawBorder(CDC* pDC, CRect rcView, CXTPCalendarWeekViewEvent* pWeekViewEvent); //------------------------------------------------------------------- // Summary: // This member function is used to draw the event's times texts or icons. // Parameters: // pDC - Pointer to a valid device context. // pWeekViewEvent - A CXTPCalendarWeekViewEvent pointer to the Week Event View object. //------------------------------------------------------------------- virtual int DrawTimes(CDC* pDC, CXTPCalendarWeekViewEvent* pWeekViewEvent); //------------------------------------------------------------------- // Summary: // This member function is used to draw the event subject. // Parameters: // pDC - Pointer to a valid device context. // pWeekViewEvent - A CXTPCalendarWeekViewEvent pointer to the Week Event View object. //------------------------------------------------------------------- virtual void DrawSubj(CDC* pDC, CXTPCalendarWeekViewEvent* pWeekViewEvent); END_VIEW_PART(WeekViewEventPart) //----------------------------------------------------------------------- // Summary: This paint manager part is used to draw time scale for the // Time Line view //----------------------------------------------------------------------- BEGIN_VIEW_PART(TimeLineViewTimeScalePart_Day, XTPCalendarTimeLineViewTimeScalePart) virtual void Draw(CDC* pDC, const CRect& rcRect, CXTPCalendarTimeLineView* pView); END_VIEW_PART(TimeLineViewTimeScalePart_Day) BEGIN_VIEW_PART(TimeLineViewTimeScalePart_Week, XTPCalendarTimeLineViewTimeScalePart) virtual void Draw(CDC* pDC, const CRect& rcRect, CXTPCalendarTimeLineView* pView); END_VIEW_PART(TimeLineViewTimeScalePart_Week) BEGIN_VIEW_PART(TimeLineViewTimeScalePart_Month, XTPCalendarTimeLineViewTimeScalePart) virtual void Draw(CDC* pDC, const CRect& rcRect, CXTPCalendarTimeLineView* pView); END_VIEW_PART(TimeLineViewTimeScalePart_Month) BEGIN_VIEW_PART(TimeLineViewTimeScalePart_WorkWeek, XTPCalendarTimeLineViewTimeScalePart) virtual void Draw(CDC* pDC, const CRect& rcRect, CXTPCalendarTimeLineView* pView); END_VIEW_PART(TimeLineViewTimeScalePart_WorkWeek) BEGIN_VIEW_PART(TimeLineViewPart, XTPCalendarTimeLineViewPart) CXTPPaintManagerColor m_clrEventBar; //Event bar color. CXTPPaintManagerColor m_clrEventBarLine; //Event bar line color. CXTPPaintManagerColor m_clrTimeScaleBackground; //Time scale background color. CXTPPaintManagerColor m_clrTimeScaleHightlite; //Time scale highlight color. CXTPPaintManagerColor m_clrTimeScaleText; //The time scale text color. CXTPPaintManagerColor m_clrSelectedBackground; //The selected background color. CXTPPaintManagerColor m_clrSelectedText; //The selected text color. CXTPPaintManagerColor m_clrBackground; //The background color. CXTPPaintManagerColor m_clrText; //The text color. //----------------------------------------------------------------------- // Summary: // Call this function to draw the time line view group. // Parameters: // pDC - The device context. // rcRect - Rectangular drawing area. // pGroup - The calendar time line view group. //----------------------------------------------------------------------- virtual void DrawGroup(CDC* pDC, const CRect& rcRect, CXTPCalendarTimeLineViewGroup* pGroup); //----------------------------------------------------------------------- // Summary: // Call this function to calculate the time line view event size. // Parameters: // pDC - The device context. // pEventView - The event view. // Returns: // A CSize object denoting the size of the time line view event. //----------------------------------------------------------------------- virtual CSize CalcEventSize(CDC* c, CXTPCalendarTimeLineViewEvent* pEventView); //----------------------------------------------------------------------- // Summary: // Call this function to draw the event. // Parameters: // pDC - The device context. // rcEvents - The rectangular bounds. // pEventView - The event view. //----------------------------------------------------------------------- virtual void DrawEvent(CDC* pDC, const CRect& rcEvents, CXTPCalendarTimeLineViewEvent* pEventView); //----------------------------------------------------------------------- // Summary: // Call this function to refresh the metrics //----------------------------------------------------------------------- virtual void RefreshMetrics(); //CBitmap m_bmpEvent; CXTPResourceImage* m_pimgEvent; //The event image. //----------------------------------------------------------------------- // Summary: // Call this function to do the initializations //----------------------------------------------------------------------- virtual void _Init(); //----------------------------------------------------------------------- // Summary: // Destroys the CTimeLineViewPart object, does the cleanup. //----------------------------------------------------------------------- virtual ~CTimeLineViewPart(); END_VIEW_PART(TimeLineViewPart) //}}AFX_CODEJOCK_PRIVATE public: //----------------------------------------------------------------------- // Summary: // Default paint manager constructor. // Remarks: // Handles initial initialization. // See Also: RefreshMetrics() //----------------------------------------------------------------------- CXTPCalendarPaintManager(); //----------------------------------------------------------------------- // Summary: // Default paint manager destructor. // Remarks: // Handles member items deallocation. //----------------------------------------------------------------------- virtual ~CXTPCalendarPaintManager(); public: //----------------------------------------------------------------------- // 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: // ePaintTheme - A paint theme ID from enum XTPCalendarTheme. //----------------------------------------------------------------------- virtual void SetPaintTheme(XTPCalendarTheme ePaintTheme); //----------------------------------------------------------------------- // Summary: // This member function is used to initialize all drawing defaults. // Remarks: // Initializes all drawings defaults (fonts, colors, etc.). // most of defaults are system defaults. //----------------------------------------------------------------------- virtual void RefreshMetrics(); //----------------------------------------------------------------------- // Summary: // This member function is used to draw an arbitrary line. // Parameters: // pDC - Pointer to a valid device context. // xPos - An int that contains the Horizontal coordinate of the beginning of line. // yPos - An int that contains the Vertical coordinate of the beginning of line. // cx - An int that contains the Horizontal coordinate of the end of line. // cy - An int that contains the Vertical coordinate of the end of line. // Remarks: // This member function is used anywhere a simple arbitrary line is needed. //----------------------------------------------------------------------- virtual void DrawLine(CDC* pDC, int xPos, int yPos, int cx, int cy); //----------------------------------------------------------------------- // Summary: // This member function is used to draw a Horizontal line. // Parameters: // pDC - Pointer to a valid device context. // xPos - An int that contains the Horizontal coordinate of the beginning of the line. // yPos - An int that contains the Vertical coordinate of the beginning of the line. // cx - An int that contains the Length of the line. // Remarks: // This member function is used anywhere a simple horizontal line is needed. //----------------------------------------------------------------------- virtual void DrawHorizontalLine(CDC* pDC, int xPos, int yPos, int cx); //----------------------------------------------------------------------- // Summary: // This member function is used to draw a Vertical line. // Parameters: // pDC - Pointer to a valid device context. // xPos - An int that contains the Horizontal coordinates of the beginning of the line. // yPos - An int that contains the Vertical coordinates of the beginning of the line. // cy - An int that contains the Length of the line. // pPen - A CPen pointer to the pen object used to draw the line. // Remarks: // This member function is used anywhere a simple vertical line is needed. //----------------------------------------------------------------------- virtual void DrawVerticalLine(CDC* pDC, int xPos, int yPos, int cy); //----------------------------------------------------------------------- // Summary: // This member function is used to draw the time as clock. // Parameters: // pDC - Pointer to a valid device context. // dtClockTime - A COleDateTime object that contains the time to draw. // rcView - A CRect object that contains the bounding rectangle // coordinates of where the clock is drawn. // clrBackground - A COLORREF object that contains the background color of the clock. // cafAlign - A XTPCalendarClockAlignFlags alignment flag, appropriate values are determined by // enum XTPCalendarClockAlignFlags. // Remarks: // This member function is used anywhere a time clock is needed. // Returns: // Returns the size (width) of the square where clock icon was drawn inside. // Zero when clock icon wasn't successfully drawn. // See Also: enum XTPCalendarClockAlignFlags determines alignment flags. //----------------------------------------------------------------------- virtual int DrawClock(CDC* pDC, COleDateTime dtClockTime, CRect rcView, COLORREF clrBackground, XTPCalendarClockAlignFlags cafAlign); //----------------------------------------------------------------------- // Summary: // This member function is used to draw a bitmap from the provided ImageList. // Parameters: // pImageList - A CImageList pointer to the ImageList. // pDC - Pointer to a valid device context. // rcView - A CRect object that contains the bounding rectangle // coordinates to draw the bitmap. // iIcon - An int that contains the image index. // uFlags - Additional drawing options. Should be 0 or DT_VCENTER. // Remarks: // Use this function to draw a bitmap in the view's bounding rectangle. // If the provided bounding rectangle is too small, then the bitmap is not drawn. // Returns: // An int that contains the width of the drawn bitmap. //----------------------------------------------------------------------- virtual int DrawBitmap(CImageList* pImageList, CDC* pDC, CRect rcView, int iIcon, UINT uFlags = 0); //----------------------------------------------------------------------- // Summary: // This member function is used to draw the bitmap using its resource id. // Parameters: // nIDResource - A UINT that contains the integer resource id of the bitmap. // pDC - Pointer to a valid device context. // rcBitmap - A CRect that contains the bounding rectangle coordinates // used to draw the bitmap. // Remarks: // Use this function to draw a bitmap in the view's bounding rectangle. // If the provided bounding rectangle is too small, then the bitmap is not drawn. // Returns: // An int that contains the width of the drawn bitmap. //----------------------------------------------------------------------- virtual int DrawBitmap(UINT nIDResource, CDC* pDC, CRect rcBitmap); //----------------------------------------------------------------------- // Summary: // This member function is used to draw the Glyph symbol using special // font. // Parameters: // pDC - Pointer to a valid device context. // rc - A CRect that contains the bounding rectangle coordinates // used to draw the symbol. // ch - A char symbol (from the font) to draw. // Remarks: // Use this function to draw the Glyph symbol in the center // of the provided bounding rectangle. // Returns: // An int that contains the width of the drawn symbol. //----------------------------------------------------------------------- virtual int DrawIconChar(CDC* pDC, CRect rc, TCHAR ch); // ---------------------------------------------------------------------- // Summary: // This member function is used to obtain the horizontal and vertical // size of the bitmap. // Parameters: // nIDResource : A UINT that contains the integer resource id of the // bitmap. // Returns: // A CSize object that contains the size of the bitmap. // ---------------------------------------------------------------------- virtual CSize GetBitmapSize(UINT nIDResource); //----------------------------------------------------------------------- // Summary: // This member function is used to obtain the horizontal and vertical // size of the Expand Sign bitmap. // Returns: // A CSize object that contains the bitmap size. //----------------------------------------------------------------------- virtual const CSize GetExpandSignSize(); //----------------------------------------------------------------------- // Summary: // This member function is used to obtain the horizontal and vertical // size of the Clock. // Returns: // A CSize object that contains the bitmap size. //----------------------------------------------------------------------- virtual CSize GetClockSize(); //----------------------------------------------------------------------- // Summary: // This member function is used to set the CXTPCalendarControl object // for the CXTPCalendarPaintManager. // Parameters: // pControl - A CXTPCalendarControl pointer to the CXTPCalendarControl object //----------------------------------------------------------------------- virtual void SetControl(CXTPCalendarControl* pControl); //----------------------------------------------------------------------- // Summary: // Call this member function to draw the shadow regions around the // rectangle. // Parameters: // pDC - Pointer to a valid device context. // rcRect - A CRect that contains the rectangle coordinates of where // to draw the shadow regions. //----------------------------------------------------------------------- virtual void DrawShadow(CDC* pDC, const CRect& rcRect); //----------------------------------------------------------------------- // Summary: // Call this member function to draw icons corresponding to the event // state. // Parameters: // pDC - Pointer to a valid device context. // pViewEvent - A CXTPCalendarViewEvent pointer to the event view object. //----------------------------------------------------------------------- virtual int DrawIcons(CDC* pDC, CXTPCalendarViewEvent* pViewEvent); //----------------------------------------------------------------------- // Summary: // This member function is used to draw the Header. // Parameters: // pDC - Pointer to a valid device context. // rcHeader - A CRect that contains the bounding rectangle coordinates // used to draw the header. // bIsSelected - A BOOL. TRUE if the header is selected. FALSE otherwise. // bIsCurrent - A BOOL. TRUE if the header represents the current time. // FALSE otherwise. // grclr - A CXTPPaintManagerColorGradient object that specifies the Gradient color. // clrUnderLineHdr - A COLORREF object that specifies the color of header's underline. //----------------------------------------------------------------------- virtual void DrawHeader(CDC* pDC, CRect& rcHeader, BOOL bIsSelected, BOOL bIsCurrent); virtual void DrawHeader(CDC* pDC, CRect& rcHeader, BOOL bIsSelected, BOOL bIsCurrent, const CXTPPaintManagerColorGradient& grclr, COLORREF clrUnderLineHdr); // //----------------------------------------------------------------------- // Summary: // This member function is used to fill the area using the corresponding // busy color or pattern. // Parameters: // pDC - Pointer to a valid device context. // rcRect - A CRect object that contains the rectangle coordinates // used to fill the corresponding busy color or pattern. // eBusyStatus - An int that contains the Event Busy Status value from // enum XTPCalendarEventBusyStatus. // rgnBusy - A CRgn that contains the region area used to fill with the // corresponding busy color or pattern and draw the region // border using m_clrWindowText color. // See Also: enum XTPCalendarEventBusyStatus determines Event Busy Status, // CRgn. //----------------------------------------------------------------------- virtual void DrawBusyStatus(CDC* pDC, CRect& rcRect, int eBusyStatus); virtual void DrawBusyStatus(CDC* pDC, CRgn& rgnBusy, int eBusyStatus); // //----------------------------------------------------------------------- // Summary: // This member function is used to enable a new theme. // Parameters: // bEnableTheme - A BOOL. TRUE if the theme enabled. FALSE otherwise. //----------------------------------------------------------------------- void EnableTheme(BOOL bEnableTheme); //----------------------------------------------------------------------- // Summary: // This member function is used to obtain the status of the theme. // Returns: // A BOOL. TRUE if theme is enabled. FALSE otherwise. //----------------------------------------------------------------------- BOOL IsThemeEnabled(); //----------------------------------------------------------------------- // Summary: // Call this member function to determine the current Windows XP // theme that is in use. // Returns: // A XTPCurrentSystemTheme enumeration that represents the // current Windows theme in use, can be one of the following // values: // xtpSystemThemeUnknown - No known theme in use, or Windows Classic theme. // xtpSystemThemeBlue - Blue theme in use. // xtpSystemThemeOlive - Olive theme in use. // xtpSystemThemeSilver - Silver theme in use. //----------------------------------------------------------------------- XTPCurrentSystemTheme GetCurrentSystemTheme(); public: //=========================================================================== // Summary: // This is a helper class which handles shadows drawing (for events, etc) //=========================================================================== class CXTPShadowDrawer { public: //=========================================================================== // Summary: // Constructs the object and initializes. // Parameters: // pDC - A pointer to the device context. // dMaxAlpha - The maximum value for the alpha channel. //=========================================================================== CXTPShadowDrawer(CDC* pDC, double dMaxAlpha); //=========================================================================== // Summary: // Destroy the CXTPShadowDrawer and does the cleanups. //=========================================================================== virtual ~CXTPShadowDrawer(); //=========================================================================== // Summary: // Call this function to get the alpha pixel. // Parameter: // crPixel - The color of the pixel. // i - The alpha value. // Returns: // The alpha pixel value. //=========================================================================== static COLORREF AlphaPixel(const COLORREF crPixel, const UINT i); //=========================================================================== // Summary: // Call this function to check whether the input is within the limit of // 0 and 255. // Parameter: // iValue - The input. // Returns: // The returns 0 if the input is less than 0 and 255 if it is greater than // 255, else returns the value. //=========================================================================== static int CheckValue(int iValue); enum XTPShadowPart { // Regular theme - Office 2003 xtpShadowLR = 0, xtpShadowTB = 1, xtpShadowTR = 2, xtpShadowBR = 3, xtpShadowBL = 4, // Office 2007 Theme xtpShadow2007Right = 5, xtpShadow2007Bottom = 6, xtpShadow2007TopRight = 7, xtpShadow2007BottomRight= 8, xtpShadow2007BottomLeft = 9 }; //----------------------------------------------------------------------- // Summary: // Generic drawing of the shadow rectangle part // Parameters: // rcShadow - rectangle to draw // part - XTPShadowPart //----------------------------------------------------------------------- void DrawShadowRectPart(const CRect& rcShadow, const XTPShadowPart part); // Methods for Office 2003 theme //----------------------------------------------------------------------- // Summary: // applied shadow to bitmap // Parameters: // pBitmap - UINT* // ulBitmapWidth - ULONG // ulBitmapHeight - ULONG //----------------------------------------------------------------------- void ApplyShadowLR(UINT* pBitmap, const ULONG ulBitmapWidth, const ULONG ulBitmapHeight); //----------------------------------------------------------------------- // Summary: // applied shadow to bitmap // Parameters: // pBitmap - UINT* // ulBitmapWidth - ULONG // ulBitmapHeight - ULONG //----------------------------------------------------------------------- void ApplyShadowTB(UINT* pBitmap, const ULONG ulBitmapWidth, const ULONG ulBitmapHeight); //----------------------------------------------------------------------- // Summary: // applied shadow to bitmap // Parameters: // pBitmap - UINT* // ulBitmapWidth - ULONG // ulBitmapHeight - ULONG //----------------------------------------------------------------------- void ApplyShadowTR(UINT* pBitmap, const ULONG ulBitmapWidth, const ULONG ulBitmapHeight); //----------------------------------------------------------------------- // Summary: // applied shadow to bitmap // Parameters: // pBitmap - UINT* // ulBitmapWidth - ULONG // ulBitmapHeight - ULONG //----------------------------------------------------------------------- void ApplyShadowBR(UINT* pBitmap, const ULONG ulBitmapWidth, const ULONG ulBitmapHeight); //----------------------------------------------------------------------- // Summary: // applied shadow to bitmap // Parameters: // pBitmap - UINT* // ulBitmapWidth - ULONG // ulBitmapHeight - ULONG //----------------------------------------------------------------------- void ApplyShadowBL(UINT* pBitmap, const ULONG ulBitmapWidth, const ULONG ulBitmapHeight); // methods for Office 2007 theme //----------------------------------------------------------------------- // Summary: // applied shadow to bitmap // Parameters: // pBitmap - UINT* // ulBitmapWidth - ULONG // ulBitmapHeight - ULONG //----------------------------------------------------------------------- void ApplyShadow2007Right(UINT* pBitmap, const ULONG ulBitmapWidth, const ULONG ulBitmapHeight); //----------------------------------------------------------------------- // Summary: // applied shadow to bitmap // Parameters: // pBitmap - UINT* // ulBitmapWidth - ULONG // ulBitmapHeight - ULONG //----------------------------------------------------------------------- void ApplyShadow2007Bottom(UINT* pBitmap, const ULONG ulBitmapWidth, const ULONG ulBitmapHeight); //----------------------------------------------------------------------- // Summary: // applied shadow to bitmap // Parameters: // pBitmap - UINT* // ulBitmapWidth - ULONG // ulBitmapHeight - ULONG //----------------------------------------------------------------------- void ApplyShadow2007TR(UINT* pBitmap, const ULONG ulBitmapWidth, const ULONG ulBitmapHeight); //----------------------------------------------------------------------- // Summary: // applied shadow to bitmap // Parameters: // pBitmap - UINT* // ulBitmapWidth - ULONG // ulBitmapHeight - ULONG //----------------------------------------------------------------------- void ApplyShadow2007BL(UINT* pBitmap, const ULONG ulBitmapWidth, const ULONG ulBitmapHeight); //----------------------------------------------------------------------- // Summary: // applied shadow to bitmap // Parameters: // pBitmap - UINT* // ulBitmapWidth - ULONG // ulBitmapHeight - ULONG //----------------------------------------------------------------------- void ApplyShadow2007BR(UINT* pBitmap, const ULONG ulBitmapWidth, const ULONG ulBitmapHeight); protected: CDC* m_pDC; // drawing device context double m_dMaxAlpha; // maximal shadow alpha grade private: }; private: CSize m_szExpandSign; // Cached size of the expand sign protected: //----------------------------------------------------------------------- // Summary: // Call this member function to add the specified ViewPart object // to the parts list. // Parameters: // pPart - Pointer to a 'View Part' object. // Returns: // Pointer to a 'View Part' object. //----------------------------------------------------------------------- CXTPCalendarViewPart* AddViewPart(CXTPCalendarViewPart* pPart); public: CXTPPaintManagerColor m_clrButtonFace; // Stores standard Button Face color. CXTPPaintManagerColor m_clrButtonFaceText; // Stores standard color to display text. CXTPPaintManagerColor m_clrWindow; // Stores standard windows color. CXTPPaintManagerColor m_clrWindowText; // Stores standard color to display window text. CXTPPaintManagerColor m_clr3DShadow; // Stores standard color to display shadow items. CXTPPaintManagerColor m_clrHighlight; // Stores standard color to display highlighted items. CXTPPaintManagerColorGradient m_grclrToday; // Gradient color of today's header. //----------------------------------------------------------------------- // Summary: // Call this member function to set custom brush to draw event busy status. // Parameters: // nBusyStatus - Busy status value. // pBrush - Pointer to a brush object. // bAutodeleteBrush - This parameter indicates should be a brush object // deleted when destroy or other brush is set. // If TRUE - brush object will be deleted automatically. // Example: // // // m_wndCalendar.GetPaintManager()->SetBusyStatusBrush( // xtpCalendarBusyStatusFree, new CBrush(RGB(240, 255, 250)), TRUE); // // m_wndCalendar.GetPaintManager()->SetBusyStatusBrush( // xtpCalendarBusyStatusTentative, new CBrush(RGB(240, 120, 250)), TRUE); // // m_wndCalendar.GetPaintManager()->SetBusyStatusBrush( // 100, new CBrush(RGB(240, 120, 250)), TRUE); // // //----------------------------------------------------------------------- void SetBusyStatusBrush(int nBusyStatus, CBrush* pBrush, BOOL bAutodeleteBrush); //----------------------------------------------------------------------- // Summary: // Call this member function to get a brush to draw event busy status. // Parameters: // nBusyStatus - Busy status value. // Returns: // Pointer to a brush object. //----------------------------------------------------------------------- CBrush* GetBusyStatusBrush(int nBusyStatus); //----------------------------------------------------------------------- // Summary: // This member function returns set of flags which define calendar items // to send XTP_NC_CALENDAR_GETITEMTEXT notification. // Returns: // Set of flags from enums XTPCalendarGetItemText, XTPCalendarGetItemTextEx. // See Also: // XTPCalendarGetItemText, XTPCalendarGetItemTextEx, // SetAskItemTextFlags, CXTPCalendarControl::GetAskItemTextFlags, // CXTPCalendarTheme::GetAskItemTextFlags, // CXTPCalendarTheme::SetAskItemTextFlags, XTP_NC_CALENDAR_GETITEMTEXT //----------------------------------------------------------------------- DWORD GetAskItemTextFlags() const; //----------------------------------------------------------------------- // Summary: // This member function is used to set flags which define calendar items // to send XTP_NC_CALENDAR_GETITEMTEXT notification. // Parameters: // dwFlags - Set of flags from enums XTPCalendarGetItemText, // XTPCalendarGetItemTextEx. // See Also: // XTPCalendarGetItemText, XTPCalendarGetItemTextEx, // GetAskItemTextFlags, CXTPCalendarControl::GetAskItemTextFlags, // CXTPCalendarTheme::GetAskItemTextFlags, // CXTPCalendarTheme::SetAskItemTextFlags, XTP_NC_CALENDAR_GETITEMTEXT //----------------------------------------------------------------------- void SetAskItemTextFlags(DWORD dwFlags); BOOL GetIconLogFont(LOGFONT* plf); CUIntArray m_arStartCol; //hold start column in each virtual page CUIntArray m_arStartRow; //hold start row in each virtual page int m_PrintPageWidth; //Print page width. protected: CList m_lstViewParts; // Collection to store ViewParts objects. //----------------------------------------------------------------------- // Summary: Enumerates types of expand signs drawn on a day view. //----------------------------------------------------------------------- enum XTPEnumExpandSigns { idxExpandSignUp = 0, // Expand sign: arrow up idxExpandSignDown = 1 // Expand sign: arrow down }; CImageList m_ilExpandSigns; // Stores standard Expand Signs icons. CImageList m_ilGlyphs; // Stores standard glyphs for displaying events. Used when glyphs font is not installed. CFont* m_pGlyphsFont; // Stores standard glyphs font for displaying events. CBitmap m_bmpTentativePattern; // Stores standard bitmap pattern to draw Tentative event busy status. CBrush m_brushTentative; // Stores standard brush to draw Tentative event busy status. CXTPCalendarTypedPtrAutoDeleteArray m_arBusyStatusBrushes; // Stores customizable brush values to draw Event Busy Status in the Day View. //----------------------------------------------------------------------- // Summary: Returns drawing brush value for a specific busy status. // Parameters: // eBusyStatus - Busy status enumeration. // bGrow - Append a new brush value if needed or not. // Returns: // Pointer to CXTPCalendarViewPartBrushValue array member. // See Also: // XTPCalendarEventBusyStatus //----------------------------------------------------------------------- CXTPCalendarViewPartBrushValue* _GetAtGrow_BusyStatusBrushValue(int eBusyStatus, BOOL bGrow); //----------------------------------------------------------------------- // Summary: // Set default colors/patterns to fill Busy Status area. //----------------------------------------------------------------------- virtual void InitBusyStatusDefaultColors(); CSize m_szClockRect; // Stores dimensions for a rectangle used to display the time as a clock glyph. CXTPCalendarControl* m_pControl; // Stores a pointer to a CXTPCalendarControl object. BOOL m_bEnableTheme; // True to enable Luna theme. COLORREF m_clrUnderLineHdr; // Color of header's underline. XTPCurrentSystemTheme m_CurrSystemTheme; // Current theme flag. XTPCalendarTheme m_nPaintTheme; // Store the Paint Theme; DWORD m_dwAskItemTextFlags; // Store flag set to send XTP_NC_CALENDAR_GETITEMTEXT notification. protected: }; ///////////////////////////////////////////////////////////////////////////// AFX_INLINE XTPCalendarTheme CXTPCalendarPaintManager::GetPaintTheme() const { return m_nPaintTheme; } AFX_INLINE void CXTPCalendarPaintManager::SetPaintTheme(XTPCalendarTheme ePaintTheme) { m_nPaintTheme = min(xtpCalendarThemeOffice2003, ePaintTheme); RefreshMetrics(); } AFX_INLINE XTPCurrentSystemTheme CXTPCalendarPaintManager::GetCurrentSystemTheme(){ return m_CurrSystemTheme; } AFX_INLINE CSize CXTPCalendarPaintManager::GetClockSize(){ return m_szClockRect; } AFX_INLINE BOOL CXTPCalendarPaintManager::IsThemeEnabled(){ return m_bEnableTheme; } AFX_INLINE void CXTPCalendarPaintManager::EnableTheme(BOOL bEnableTheme){ m_bEnableTheme = bEnableTheme; RefreshMetrics(); } AFX_INLINE DWORD CXTPCalendarPaintManager::GetAskItemTextFlags() const { return m_dwAskItemTextFlags; } AFX_INLINE void CXTPCalendarPaintManager::SetAskItemTextFlags(DWORD dwFlags) { m_dwAskItemTextFlags = dwFlags; } ///////////////////////////////////////////////////////////////////////////// #endif // !defined(_XTPCALENDARPAINTMANAGER_H__)