You've already forked lazarus-ccr
tvplanit: Add holiday support to WeekView.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5200 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -299,6 +299,7 @@ object MainForm: TMainForm
|
|||||||
Align = alClient
|
Align = alClient
|
||||||
TabStop = True
|
TabStop = True
|
||||||
TabOrder = 2
|
TabOrder = 2
|
||||||
|
OnHoliday = VpHoliday
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object Tasks: TPage
|
object Tasks: TPage
|
||||||
|
@ -37,7 +37,8 @@ type
|
|||||||
procedure DrawBorders;
|
procedure DrawBorders;
|
||||||
procedure DrawFocusRect(ADayIndex: Integer; DayRect: TRect);
|
procedure DrawFocusRect(ADayIndex: Integer; DayRect: TRect);
|
||||||
procedure DrawDay(ADayIndex: Integer; var DayRect: TRect; var EAIndex: Integer);
|
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 DrawDays;
|
||||||
procedure DrawEvent(AEvent: TVpEvent; TextRect: TRect; ADayIndex: Integer);
|
procedure DrawEvent(AEvent: TVpEvent; TextRect: TRect; ADayIndex: Integer);
|
||||||
procedure DrawHeader;
|
procedure DrawHeader;
|
||||||
@ -276,16 +277,18 @@ var
|
|||||||
TextRect: TRect;
|
TextRect: TRect;
|
||||||
J: Integer;
|
J: Integer;
|
||||||
EventList: TList;
|
EventList: TList;
|
||||||
// dayHeadHeight: Integer;
|
|
||||||
rowHeight: Integer;
|
rowHeight: Integer;
|
||||||
headerHeight: Integer;
|
headerHeight: Integer;
|
||||||
tmpRect: TRect;
|
tmpRect: TRect;
|
||||||
|
holiday: String;
|
||||||
begin
|
begin
|
||||||
// Abbreviations
|
// Abbreviations
|
||||||
// dayHeadHeight := TVpWeekviewOpener(FWeekView).wvDayHeadHeight;
|
|
||||||
rowHeight := TVpWeekViewOpener(FWeekView).wvRowHeight;
|
rowHeight := TVpWeekViewOpener(FWeekView).wvRowHeight;
|
||||||
headerHeight := TVpWeekViewOpener(FWeekView).wvHeaderHeight;
|
headerHeight := TVpWeekViewOpener(FWeekView).wvHeaderHeight;
|
||||||
|
|
||||||
|
// Check for holiday
|
||||||
|
FWeekView.IsHoliday(StartDate + ADayIndex, holiday);
|
||||||
|
|
||||||
// Get header rectangle
|
// Get header rectangle
|
||||||
TextRect := DayRect;
|
TextRect := DayRect;
|
||||||
TextRect.Bottom := DayRect.Top + FDayHeadHeight;
|
TextRect.Bottom := DayRect.Top + FDayHeadHeight;
|
||||||
@ -301,7 +304,7 @@ begin
|
|||||||
TPSRectangle(RenderCanvas, Angle, RenderIn, tmpRect);
|
TPSRectangle(RenderCanvas, Angle, RenderIn, tmpRect);
|
||||||
|
|
||||||
// Fix header string
|
// Fix header string
|
||||||
DrawDayHeader(ADayIndex, TextRect);
|
DrawDayHeader(ADayIndex, holiday, TextRect);
|
||||||
|
|
||||||
if (FWeekView.DataStore <> nil) and (FWeekView.DataStore.Resource <> nil) and
|
if (FWeekView.DataStore <> nil) and (FWeekView.DataStore.Resource <> nil) and
|
||||||
(FWeekView.DataStore.Resource.Schedule.EventCountByDay(StartDate + ADayIndex) > 0) and
|
(FWeekView.DataStore.Resource.Schedule.EventCountByDay(StartDate + ADayIndex) > 0) and
|
||||||
@ -402,7 +405,8 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TVpWeekViewPainter.DrawDayHeader(ADayIndex: Integer; var TextRect: TRect);
|
procedure TVpWeekViewPainter.DrawDayHeader(ADayIndex: Integer; AHolidayName: String;
|
||||||
|
var TextRect: TRect);
|
||||||
var
|
var
|
||||||
dayStr: String;
|
dayStr: String;
|
||||||
strWid: Integer;
|
strWid: Integer;
|
||||||
@ -412,6 +416,8 @@ begin
|
|||||||
{$IFDEF LCL}
|
{$IFDEF LCL}
|
||||||
{$IF FPC_FULLVERSION < 30000}DayStr := SysToUTF8(DayStr); {$ENDIF}
|
{$IF FPC_FULLVERSION < 30000}DayStr := SysToUTF8(DayStr); {$ENDIF}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
if AHolidayName <> '' then
|
||||||
|
dayStr := dayStr + ' - ' + AHolidayName;
|
||||||
|
|
||||||
strWid := RenderCanvas.TextWidth(dayStr);
|
strWid := RenderCanvas.TextWidth(dayStr);
|
||||||
if strWid > WidthOf(TextRect) then
|
if strWid > WidthOf(TextRect) then
|
||||||
|
Reference in New Issue
Block a user