/** * @file XTPCalendarOffice2013Theme.h * * @copyright * (c) 1998-2025 Codejock Software, All Rights Reserved. * * This source file is the property of Codejock Software and must not be * redistributed by any means without the explicit written permission of * Codejock Software. * * The use of this source code is governed by the terms and conditions specified * in the Toolkit Pro license agreement. Codejock Software grants you, as a * single software developer, the limited right to use this software on one * computer only. * * Contact Information: * support@codejock.com * http://www.codejock.com * */ #if !defined(__XTPCALENDAROFFICE2013THEME_H__) # define __XTPCALENDAROFFICE2013THEME_H__ # if _MSC_VER > 1000 # pragma once # endif // _MSC_VER > 1000 # include "Common/Base/Diagnostic/XTPDisableNoisyWarnings.h" /** * @brief * CXTPCalendarOffice2013Theme is a CXTPCalendarOffice2000Theme derived * class that represents the Office 2013 calendar theme. */ class _XTP_EXT_CLASS CXTPCalendarOffice2013Theme : public CXTPCalendarOffice2000Theme { public: /** * @brief * Default paint manager constructor. * * @details Handles initial initialization. * * @see RefreshMetrics() */ CXTPCalendarOffice2013Theme(); /** * @brief * Default paint manager destructor. * * @details Handles member items deallocation. */ virtual ~CXTPCalendarOffice2013Theme(); /** * @brief * This member function is used to initialize all drawing defaults. * * @details Initializes all drawings defaults (fonts, colors, etc.). * most of defaults are system defaults. */ virtual void RefreshMetrics(); /** * @brief * This member function is used to draw the Header. * * @param pDC Pointer to a valid device context. * @param rcHeader A CRect that contains the bounding rectangle coordinates * used to draw the header. * @param bIsSelected A BOOL. TRUE if the header is selected. FALSE otherwise. * @param bIsCurrent A BOOL. TRUE if the header represents the current time. * FALSE otherwise. * @param grclr A CXTPPaintManagerColorGradient object that specifies the Gradient * color. * @param clrUnderLineHdr A COLORREF object that specifies the color of header's * underline. */ virtual void DrawHeader(CDC* pDC, CRect& rcHeader, BOOL bIsSelected, BOOL bIsCurrent, const CXTPPaintManagerColorGradient& grclr, COLORREF clrUnderLineHdr); using CXTPCalendarOffice2000Theme::DrawHeader; /** * @brief * This member function is called to update event label default colors. */ virtual void UpdateEventLabelsDefaultColors(); /** * @brief * This member function is called to update event category default colors. */ virtual void UpdateEventCategoriesDefaultColors(); /** * @brief * Initializes Calendar images. * * @details Called by the paint manager to initialize images used by the * Calendar control. */ virtual void UpdateGlyphs(); /** * @brief * Call this member function to get the background color for * the specified event. * * @param pEvent Points to the Calendar event. * * @return An RGB value representing the event background color. */ virtual COLORREF GetEventBackColor(CXTPCalendarEvent* pEvent); using CXTPCalendarOffice2000Theme::GetEventBackColor; /** * @brief * Call this member function to get the edge color for * the specified event. * * @param pEvent : Points to the Calendar event. * * @return An RGB value representing the event edge color. */ virtual COLORREF GetEventEdgeColor(CXTPCalendarEvent* pEvent); virtual void DrawCategories(CDC* pDC, CRect& rcEvent, CXTPCalendarEvent* pEvent); virtual CXTPCalendarViewEventSubjectEditor* StartEditSubject(CXTPCalendarViewEvent* pViewEvent, CRect& rcEditor); virtual void SetEditFont(CXTPCalendarViewEvent* pViewEvent, CXTPCalendarViewEventSubjectEditor* pEditor); virtual void GetDateFormat(CString& strShort, CString& strLong); virtual void CreateBoldFont(CFont* pFont, CFont* pFontBold); virtual void CreateHeaderFont(CDC* pDC, CFont* pFont, CFont* pFontNew, BOOL bBoldFont); virtual CSize GetTextSize(CDC* pDC, CString strText, CFont* pFont); virtual void FormatLabel(CString& strLabel); virtual void DrawMultiDayArrowL(CDC* pDC, int nL, CRect& rcText, COleDateTime& dtDate, CFont& font); virtual void DrawMultiDayArrowR(CDC* pDC, int nR, CRect& rcText, COleDateTime& dtDate, CFont& font); virtual void DrawMultiDayEvent(CDayViewEventPart* pViewPart, CDC* pDC, CXTPCalendarDayViewEvent* pViewEvent, CRect& rcText); virtual void DrawSingleDayEvent(CDayViewEventPart* pViewPart, CDC* pDC, CXTPCalendarDayViewEvent* pViewEvent, CRect& rcText); virtual void DrawExpandSign(CDC* pDC, BOOL bExpandUp, const CRect& rcTSHours); virtual void PartRefresh(CControlPart* pViewPart); virtual void PartRefresh(CDayViewEventPart* pViewPart); virtual void PartRefresh(CDayViewTimeScaleCellPart* pViewPart); virtual void PartRefresh(CDayViewTimeScaleHeaderPart* pViewPart); virtual void PartRefresh(CDayViewAllDayEventsPart* pViewPart); virtual void PartRefresh(CDayViewHeaderPart* pViewPart); virtual void PartRefresh(CWeekViewPart* pViewPart); virtual void PartRefresh(CMonthViewHeaderPart* pViewPart); virtual void PartRefresh(CMonthViewEventPart* pViewPart); virtual void PartRefresh(CDayViewWorkCellPart* pViewPart); virtual void PartRefresh(CDayViewNonworkCellPart* pViewPart); virtual void PartRefresh(CMonthViewGridPart* pViewPart); virtual void PartRefresh(CTimeLineViewPart* pViewPart); using CXTPCalendarOffice2000Theme::PartRefresh; virtual BOOL ShowMultiDayTime(CXTPCalendarViewEvent* pViewEvent, CXTPCalendarViewPart* pViewPart); virtual void PartDrawEventSelectedBorder(CDC* pDC, CRect rcBorder, int l, int t, int r, int b); virtual void PartDrawEventBusy(CXTPCalendarViewEvent* pViewEvent, CXTPCalendarViewPart* pViewPart, CDC* pDC, CRect& rcEvent); virtual void PartDrawEventBack(CXTPCalendarViewEvent* pViewEvent, CXTPCalendarViewPart* pViewPart, CDC* pDC, CRect& rcEvent); virtual void PartDrawEventTime(CXTPCalendarViewEvent* pViewEvent, CXTPCalendarViewPart* pViewPart, CDC* pDC, CRect& rcEvent, CRect& rcText, BOOL bTimeAsClock); virtual void PartDrawEventText(CXTPCalendarViewEvent* pViewEvent, CXTPCalendarViewPart* pViewPart, CDC* pDC, CRect& rcEvent, CRect& rcText, int nViewDayIndex); virtual void PartDraw(CDayViewEventPart* pViewPart, CDC* pDC, CXTPCalendarDayViewEvent* pViewEvent); virtual void PartDrawHourCell(CDayViewTimeScaleCellPart* pViewPart, CDC* pDC, CRect rc, CString strText, BOOL bFillBackground, BOOL bCurrentTime); virtual void PartDrawBigHourCell(CDayViewTimeScaleCellPart* pViewPart, CDC* pDC, CRect rc, CString strHour, CString strMin, int nRowPerHour, BOOL bFillBackground, BOOL bCurrentTime); virtual void PartDraw(CDayViewTimeScaleHeaderPart* pViewPart, CDC* pDC, CXTPCalendarDayView* /*pView*/, CRect rc, CString strText); virtual void PartDrawNowLine(CDayViewTimeScaleHeaderPart* pViewPart, CDC* pDC, CXTPCalendarDayView* pView, CRect rc, int y, BOOL bDrawBk); virtual void PartDrawNowLine(CDayViewTimeScaleHeaderPart* pViewPart, CDC* pDC, CXTPCalendarDayView* pView, CXTPCalendarDayViewTimeScale* pScale, CRect rc, int y, BOOL bDrawBk); virtual void PartDraw(CDayViewCellPart* pViewPart, CDC* pDC, CXTPCalendarDayViewGroup* pViewGroup, CRect rc, const XTP_CALENDAR_DAYVIEWCELL_PARAMS& cellParams); virtual void PartDraw(CDayViewAllDayEventsPart* pViewPart, CDC* pDC, CXTPCalendarDayViewGroup* pViewGroup, CRect rc, BOOL bSelected); virtual void PartDraw(CDayViewHeaderPart* pViewPart, CDC* pDC, CXTPCalendarDayViewDay* pViewDay, CRect rc, CString strText); virtual void PartDraw(CWeekViewPart* pViewPart, CDC* pDC, CXTPCalendarWeekView* pWeekView); virtual void PartDrawDayHeader(CWeekViewPart* pViewPart, CDC* pDC, CRect rcDay, int nHeaderHeight, CString strHeader, BOOL bIsCurrent, BOOL bIsSelected); virtual void PartDraw(CWeekViewEventPart* pViewPart, CDC* pDC, CXTPCalendarWeekViewEvent* pWeekViewEvent); virtual void PartDrawGrid(CMonthViewGridPart* pViewPart, CDC* pDC, CXTPCalendarMonthView* pMonthView); virtual void PartDraw(CMonthViewHeaderPart* pViewPart, CDC* pDC, CXTPCalendarMonthView* pMonthView, CRect rc, int nCollIndex, CString strText); virtual void PartDrawEvent(CMonthViewEventPart* pViewPart, CDC* pDC, CXTPCalendarMonthViewEvent* pViewEvent); virtual void PartDrawDayDate(CMonthViewEventPart* pViewPart, CDC* pDC, CRect rc, BOOL bToday, BOOL bSelected, BOOL bFirstMonthDay, CString strText); virtual void PartAdjustTimeFont(CDayViewTimeScaleCellPart* pViewPart, CDC* pDC, CRect rcCell); using CXTPCalendarOffice2000Theme::PartDraw; using CXTPCalendarOffice2000Theme::PartDrawEvent; protected: int m_nBusyWidth; int m_nPadding; CString m_strThemeName; CXTPFont m_xtpFontBold; CXTPFont m_xtpFontSel; XTP_SUBSTITUTE_GDI_MEMBER_WITH_CACHED(CFont, m_fontBold, m_xtpFontBold, GetBoldFontHandle); XTP_SUBSTITUTE_GDI_MEMBER_WITH_CACHED(CFont, m_fontSel, m_xtpFontSel, GetSelFontHandle); CXTPPaintManagerColor m_clrHeaderText; CXTPPaintManagerColor m_clrHeaderBack; CXTPPaintManagerColor m_clrViewBack; CXTPPaintManagerColor m_clrHeaderTextSelected; CXTPPaintManagerColor m_clrHeaderBackSelected; CXTPPaintManagerColor m_clrEventSelBorder; CXTPPaintManagerColor m_clrEventLabelNone; CXTPPaintManagerColor m_clrEventLabelImportant; CXTPPaintManagerColor m_clrEventLabelBusiness; CXTPPaintManagerColor m_clrEventLabelPersonal; CXTPPaintManagerColor m_clrEventLabelVacation; CXTPPaintManagerColor m_clrEventLabelMustattend; CXTPPaintManagerColor m_clrEventLabelTravelrequired; CXTPPaintManagerColor m_clrEventLabelNeedspreparation; CXTPPaintManagerColor m_clrEventLabelBirthday; CXTPPaintManagerColor m_clrEventLabelAnniversary; CXTPPaintManagerColor m_clrEventLabelPhonecall; CXTPPaintManagerColor m_clrBusyStatusOutOfOfficeBack; CXTPPaintManagerColor m_clrMultiDayArrow; CXTPPaintManagerColor m_clrHourBack; CXTPPaintManagerColor m_clrHourText; CXTPPaintManagerColor m_clrHourNowText; CXTPPaintManagerColor m_clrHourNowBack; CXTPPaintManagerColor m_clrNowLine; CXTPPaintManagerColor m_clrNowLineShadow; CXTPPaintManagerColor m_clrCellBack; CXTPPaintManagerColor m_clrCellText; CXTPPaintManagerColor m_clrNonWorkCellBack; CXTPPaintManagerColor m_clrGridLine; CXTPPaintManagerColor m_clrMonthGridLine; CXTPPaintManagerColor m_clrMultiDayEventFrameColor; }; # include "Common/Base/Diagnostic/XTPEnableNoisyWarnings.h" #endif // !defined(__XTPCALENDAROFFICE2013THEME_H__)