diff --git a/components/tvplanit/examples/fulldemo/demomain.lfm b/components/tvplanit/examples/fulldemo/demomain.lfm index 6b5193205..36bebdf06 100644 --- a/components/tvplanit/examples/fulldemo/demomain.lfm +++ b/components/tvplanit/examples/fulldemo/demomain.lfm @@ -299,6 +299,7 @@ object MainForm: TMainForm Align = alClient TabStop = True TabOrder = 2 + OnHoliday = VpHoliday end end object Tasks: TPage diff --git a/components/tvplanit/source/vpweekviewpainter.pas b/components/tvplanit/source/vpweekviewpainter.pas index d69d98b64..e9c2150e3 100644 --- a/components/tvplanit/source/vpweekviewpainter.pas +++ b/components/tvplanit/source/vpweekviewpainter.pas @@ -37,7 +37,8 @@ type procedure DrawBorders; procedure DrawFocusRect(ADayIndex: Integer; DayRect: TRect); procedure DrawDay(ADayIndex: Integer; var DayRect: TRect; var EAIndex: Integer); - procedure DrawDayHeader(ADayIndex: Integer; var TextRect: TRect); + procedure DrawDayHeader(ADayIndex: Integer; AHolidayName: String; + var TextRect: TRect); procedure DrawDays; procedure DrawEvent(AEvent: TVpEvent; TextRect: TRect; ADayIndex: Integer); procedure DrawHeader; @@ -276,16 +277,18 @@ var TextRect: TRect; J: Integer; EventList: TList; -// dayHeadHeight: Integer; rowHeight: Integer; headerHeight: Integer; tmpRect: TRect; + holiday: String; begin // Abbreviations -// dayHeadHeight := TVpWeekviewOpener(FWeekView).wvDayHeadHeight; rowHeight := TVpWeekViewOpener(FWeekView).wvRowHeight; headerHeight := TVpWeekViewOpener(FWeekView).wvHeaderHeight; + // Check for holiday + FWeekView.IsHoliday(StartDate + ADayIndex, holiday); + // Get header rectangle TextRect := DayRect; TextRect.Bottom := DayRect.Top + FDayHeadHeight; @@ -301,7 +304,7 @@ begin TPSRectangle(RenderCanvas, Angle, RenderIn, tmpRect); // Fix header string - DrawDayHeader(ADayIndex, TextRect); + DrawDayHeader(ADayIndex, holiday, TextRect); if (FWeekView.DataStore <> nil) and (FWeekView.DataStore.Resource <> nil) and (FWeekView.DataStore.Resource.Schedule.EventCountByDay(StartDate + ADayIndex) > 0) and @@ -402,7 +405,8 @@ begin end; end; -procedure TVpWeekViewPainter.DrawDayHeader(ADayIndex: Integer; var TextRect: TRect); +procedure TVpWeekViewPainter.DrawDayHeader(ADayIndex: Integer; AHolidayName: String; + var TextRect: TRect); var dayStr: String; strWid: Integer; @@ -412,6 +416,8 @@ begin {$IFDEF LCL} {$IF FPC_FULLVERSION < 30000}DayStr := SysToUTF8(DayStr); {$ENDIF} {$ENDIF} + if AHolidayName <> '' then + dayStr := dayStr + ' - ' + AHolidayName; strWid := RenderCanvas.TextWidth(dayStr); if strWid > WidthOf(TextRect) then