You've already forked lazarus-ccr
tvplanit: Move drawing code of TVpContactGrid to separate unit (VpContactGridPainter). Split off some shared code to TVpBasePainter.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@4811 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -25,9 +25,9 @@ object MainForm: TMainForm
|
|||||||
Height = 532
|
Height = 532
|
||||||
Top = 48
|
Top = 48
|
||||||
Width = 780
|
Width = 780
|
||||||
ActivePage = TabEvents
|
ActivePage = TabContacts
|
||||||
Align = alClient
|
Align = alClient
|
||||||
TabIndex = 0
|
TabIndex = 2
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
object TabEvents: TTabSheet
|
object TabEvents: TTabSheet
|
||||||
Caption = 'Events'
|
Caption = 'Events'
|
||||||
|
@ -32,7 +32,7 @@ Portions created by TurboPower Software Inc. are Copyright (C) 2002 TurboPower S
|
|||||||
|
|
||||||
Contributor(s): "/>
|
Contributor(s): "/>
|
||||||
<Version Major="1" Release="4"/>
|
<Version Major="1" Release="4"/>
|
||||||
<Files Count="68">
|
<Files Count="69">
|
||||||
<Item1>
|
<Item1>
|
||||||
<Filename Value="../source/vpalarmdlg.lfm"/>
|
<Filename Value="../source/vpalarmdlg.lfm"/>
|
||||||
<Type Value="LFM"/>
|
<Type Value="LFM"/>
|
||||||
@ -306,6 +306,10 @@ Contributor(s): "/>
|
|||||||
<Filename Value="../source/vpbasepainter.pas"/>
|
<Filename Value="../source/vpbasepainter.pas"/>
|
||||||
<UnitName Value="VpBasePainter"/>
|
<UnitName Value="VpBasePainter"/>
|
||||||
</Item68>
|
</Item68>
|
||||||
|
<Item69>
|
||||||
|
<Filename Value="../source/vpcontactgridpainter.pas"/>
|
||||||
|
<UnitName Value="VpContactGridPainter"/>
|
||||||
|
</Item69>
|
||||||
</Files>
|
</Files>
|
||||||
<i18n>
|
<i18n>
|
||||||
<EnableI18N Value="True"/>
|
<EnableI18N Value="True"/>
|
||||||
|
@ -22,6 +22,20 @@ type
|
|||||||
StopLine: Integer;
|
StopLine: Integer;
|
||||||
UseGran: TVpGranularity;
|
UseGran: TVpGranularity;
|
||||||
DisplayOnly: Boolean;
|
DisplayOnly: Boolean;
|
||||||
|
protected
|
||||||
|
RealWidth: Integer;
|
||||||
|
RealHeight: Integer;
|
||||||
|
RealLeft: Integer;
|
||||||
|
RealRight: Integer;
|
||||||
|
RealTop: Integer;
|
||||||
|
RealBottom: Integer;
|
||||||
|
SaveBrushColor: TColor;
|
||||||
|
SavePenStyle: TPenStyle;
|
||||||
|
SavePenColor: TColor;
|
||||||
|
procedure InitPenBrush; virtual;
|
||||||
|
procedure SavePenBrush; virtual;
|
||||||
|
procedure RestorePenBrush; virtual;
|
||||||
|
procedure SetMeasurements; virtual;
|
||||||
public
|
public
|
||||||
constructor Create(ARenderCanvas: TCanvas);
|
constructor Create(ARenderCanvas: TCanvas);
|
||||||
procedure RenderToCanvas(ARenderIn: TRect; AAngle: TVpRotationAngle;
|
procedure RenderToCanvas(ARenderIn: TRect; AAngle: TVpRotationAngle;
|
||||||
@ -31,6 +45,9 @@ type
|
|||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
|
uses
|
||||||
|
VpCanvasUtils;
|
||||||
|
|
||||||
{ TBasePainter }
|
{ TBasePainter }
|
||||||
|
|
||||||
constructor TVpBasePainter.Create(ARenderCanvas: TCanvas);
|
constructor TVpBasePainter.Create(ARenderCanvas: TCanvas);
|
||||||
@ -38,6 +55,14 @@ begin
|
|||||||
RenderCanvas := ARenderCanvas;
|
RenderCanvas := ARenderCanvas;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TVpBasePainter.InitPenBrush;
|
||||||
|
begin
|
||||||
|
RenderCanvas.Pen.Style := psSolid;
|
||||||
|
RenderCanvas.Pen.Width := 1;
|
||||||
|
RenderCanvas.Pen.Mode := pmCopy;
|
||||||
|
RenderCanvas.Brush.Style := bsSolid;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TVpBasePainter.RenderToCanvas(ARenderIn: TRect;
|
procedure TVpBasePainter.RenderToCanvas(ARenderIn: TRect;
|
||||||
AAngle: TVpRotationAngle; AScale: Extended; ARenderDate: TDateTime;
|
AAngle: TVpRotationAngle; AScale: Extended; ARenderDate: TDateTime;
|
||||||
AStartLine, AStopLine: Integer; AGranularity: TVpGranularity;
|
AStartLine, AStopLine: Integer; AGranularity: TVpGranularity;
|
||||||
@ -56,4 +81,28 @@ begin
|
|||||||
// call the old RenderToCanvas method here...
|
// call the old RenderToCanvas method here...
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TVpBasePainter.RestorePenBrush;
|
||||||
|
begin
|
||||||
|
RenderCanvas.Pen.Style := SavePenStyle;
|
||||||
|
RenderCanvas.Brush.Color := SaveBrushColor;
|
||||||
|
RenderCanvas.Pen.Color := SavePenColor;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TVpBasePainter.SavePenBrush;
|
||||||
|
begin
|
||||||
|
SavePenStyle := RenderCanvas.Pen.Style;
|
||||||
|
SaveBrushColor := RenderCanvas.Brush.Color;
|
||||||
|
SavePenColor := RenderCanvas.Pen.Color;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TVpBasePainter.SetMeasurements;
|
||||||
|
begin
|
||||||
|
RealWidth := TPSViewportWidth(Angle, RenderIn);
|
||||||
|
RealHeight := TPSViewportHeight(Angle, RenderIn);
|
||||||
|
RealLeft := TPSViewportLeft(Angle, RenderIn);
|
||||||
|
RealRight := TPSViewportRight(Angle, RenderIn);
|
||||||
|
RealTop := TPSViewportTop(Angle, RenderIn);
|
||||||
|
RealBottom := TPSViewportBottom(Angle, RenderIn);
|
||||||
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
@ -267,7 +267,7 @@ type
|
|||||||
implementation
|
implementation
|
||||||
|
|
||||||
uses
|
uses
|
||||||
SysUtils, Math, Forms, Dialogs, VpContactEditDlg;
|
SysUtils, Math, Forms, Dialogs, VpContactEditDlg, VpContactGridPainter;
|
||||||
|
|
||||||
|
|
||||||
(*****************************************************************************)
|
(*****************************************************************************)
|
||||||
@ -599,6 +599,20 @@ procedure TVpContactGrid.RenderToCanvas (RenderCanvas : TCanvas;
|
|||||||
StopLine : Integer;
|
StopLine : Integer;
|
||||||
UseGran : TVpGranularity;
|
UseGran : TVpGranularity;
|
||||||
DisplayOnly : Boolean);
|
DisplayOnly : Boolean);
|
||||||
|
var
|
||||||
|
painter: TVpContactGridPainter;
|
||||||
|
begin
|
||||||
|
cgPainting := true;
|
||||||
|
painter := TVpContactGridPainter.Create(Self, RenderCanvas);
|
||||||
|
try
|
||||||
|
painter.RenderToCanvas(RenderIn, Angle, Scale, RenderDate, StartLine,
|
||||||
|
StopLine, UseGran, DisplayOnly);
|
||||||
|
finally
|
||||||
|
painter.Free;
|
||||||
|
cgPainting := false;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
(*
|
||||||
var
|
var
|
||||||
SaveBrushColor : TColor;
|
SaveBrushColor : TColor;
|
||||||
SavePenStyle : TPenStyle;
|
SavePenStyle : TPenStyle;
|
||||||
@ -1811,6 +1825,7 @@ begin
|
|||||||
cgPainting := false;
|
cgPainting := false;
|
||||||
end;
|
end;
|
||||||
{=====}
|
{=====}
|
||||||
|
*)
|
||||||
|
|
||||||
{ Introduced to support the buttonbar component !!.02}
|
{ Introduced to support the buttonbar component !!.02}
|
||||||
function TVpContactGrid.SelectContactByName(const Name: String): Boolean;
|
function TVpContactGrid.SelectContactByName(const Name: String): Boolean;
|
||||||
|
2210
components/tvplanit/source/vpcontactgridpainter.pas
Normal file
2210
components/tvplanit/source/vpcontactgridpainter.pas
Normal file
File diff suppressed because it is too large
Load Diff
@ -36,12 +36,6 @@ type
|
|||||||
Drawn: Boolean;
|
Drawn: Boolean;
|
||||||
ScrollBarOffset: Integer;
|
ScrollBarOffset: Integer;
|
||||||
EventCount: Integer;
|
EventCount: Integer;
|
||||||
RealWidth: Integer;
|
|
||||||
RealHeight: Integer;
|
|
||||||
RealLeft: Integer;
|
|
||||||
RealRight: Integer;
|
|
||||||
RealTop: Integer;
|
|
||||||
RealBottom: Integer;
|
|
||||||
DayWidth: Integer;
|
DayWidth: Integer;
|
||||||
RealNumDays: Integer;
|
RealNumDays: Integer;
|
||||||
Rgn: HRGN;
|
Rgn: HRGN;
|
||||||
@ -91,9 +85,11 @@ type
|
|||||||
procedure DrawRowHeader(R: TRect);
|
procedure DrawRowHeader(R: TRect);
|
||||||
procedure FreeBitmaps;
|
procedure FreeBitmaps;
|
||||||
procedure GetIcons(Event: TVpEvent);
|
procedure GetIcons(Event: TVpEvent);
|
||||||
|
procedure InitColors;
|
||||||
procedure InitializeEventRectangles;
|
procedure InitializeEventRectangles;
|
||||||
procedure ScaleIcons(EventRect: TRect);
|
procedure ScaleIcons(EventRect: TRect);
|
||||||
procedure SetMeasurements;
|
|
||||||
|
procedure SetMeasurements; override;
|
||||||
|
|
||||||
public
|
public
|
||||||
constructor Create(ADayView: TVpDayview; ARenderCanvas: TCanvas);
|
constructor Create(ADayView: TVpDayview; ARenderCanvas: TCanvas);
|
||||||
@ -1515,28 +1511,8 @@ begin
|
|||||||
CustomH := dvBmpCustom.Height;
|
CustomH := dvBmpCustom.Height;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TVpDayViewPainter.InitializeEventRectangles;
|
procedure TVpDayViewPainter.InitColors;
|
||||||
var
|
|
||||||
I : Integer;
|
|
||||||
begin
|
begin
|
||||||
EventCount := 0;
|
|
||||||
with TVpDayViewOpener(FDayView) do
|
|
||||||
for I := 0 to pred(Length(dvEventArray)) do begin
|
|
||||||
dvEventArray[I].Rec.Left := -1;
|
|
||||||
dvEventArray[I].Rec.Top := -1;
|
|
||||||
dvEventArray[I].Rec.Right := -1;
|
|
||||||
dvEventArray[I].Rec.Bottom := -1;
|
|
||||||
dvEventArray[I].Event := nil;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TVpDayViewPainter.RenderToCanvas(ARenderIn: TRect;
|
|
||||||
AAngle: TVpRotationAngle; AScale: Extended; ARenderDate: TDateTime;
|
|
||||||
AStartLine, AStopLine: Integer; AUseGran: TVpGranularity; ADisplayOnly: Boolean);
|
|
||||||
begin
|
|
||||||
inherited;
|
|
||||||
|
|
||||||
// Here begins the original routine...
|
|
||||||
if DisplayOnly then begin
|
if DisplayOnly then begin
|
||||||
BevelShadow := clBlack;
|
BevelShadow := clBlack;
|
||||||
BevelHighlight := clBlack;
|
BevelHighlight := clBlack;
|
||||||
@ -1568,6 +1544,33 @@ begin
|
|||||||
ADEventAttrBkgColor := FDayView.AllDayEventAttributes.EventBackgroundColor;
|
ADEventAttrBkgColor := FDayView.AllDayEventAttributes.EventBackgroundColor;
|
||||||
ADEventBorderColor := FDayView.AllDayEventAttributes.EventBorderColor;
|
ADEventBorderColor := FDayView.AllDayEventAttributes.EventBorderColor;
|
||||||
end;
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TVpDayViewPainter.InitializeEventRectangles;
|
||||||
|
var
|
||||||
|
I : Integer;
|
||||||
|
begin
|
||||||
|
EventCount := 0;
|
||||||
|
with TVpDayViewOpener(FDayView) do
|
||||||
|
for I := 0 to pred(Length(dvEventArray)) do begin
|
||||||
|
dvEventArray[I].Rec.Left := -1;
|
||||||
|
dvEventArray[I].Rec.Top := -1;
|
||||||
|
dvEventArray[I].Rec.Right := -1;
|
||||||
|
dvEventArray[I].Rec.Bottom := -1;
|
||||||
|
dvEventArray[I].Event := nil;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TVpDayViewPainter.RenderToCanvas(ARenderIn: TRect;
|
||||||
|
AAngle: TVpRotationAngle; AScale: Extended; ARenderDate: TDateTime;
|
||||||
|
AStartLine, AStopLine: Integer; AUseGran: TVpGranularity; ADisplayOnly: Boolean);
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
|
||||||
|
// Here begins the original routine...
|
||||||
|
InitColors;
|
||||||
|
SavePenBrush;
|
||||||
|
InitPenBrush;
|
||||||
|
|
||||||
SetMeasurements;
|
SetMeasurements;
|
||||||
|
|
||||||
@ -1579,11 +1582,6 @@ begin
|
|||||||
else
|
else
|
||||||
ScrollBarOffset := 14;
|
ScrollBarOffset := 14;
|
||||||
|
|
||||||
// dvPainting := true; -- moved to TVpDayView
|
|
||||||
SavePenStyle := RenderCanvas.Pen.Style;
|
|
||||||
SaveBrushColor := RenderCanvas.Brush.Color;
|
|
||||||
SavePenColor := RenderCanvas.Pen.Color;
|
|
||||||
|
|
||||||
Rgn := CreateRectRgn(RenderIn.Left, RenderIn.Top, RenderIn.Right, RenderIn.Bottom);
|
Rgn := CreateRectRgn(RenderIn.Left, RenderIn.Top, RenderIn.Right, RenderIn.Bottom);
|
||||||
try
|
try
|
||||||
SelectClipRgn(RenderCanvas.Handle, Rgn);
|
SelectClipRgn(RenderCanvas.Handle, Rgn);
|
||||||
@ -1730,15 +1728,12 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
{ Reinstate RenderCanvas settings }
|
{ Reinstate RenderCanvas settings }
|
||||||
RenderCanvas.Pen.Style := SavePenStyle;
|
RestorePenBrush;
|
||||||
RenderCanvas.Brush.Color := SaveBrushColor;
|
|
||||||
RenderCanvas.Pen.Color := SavePenColor;
|
|
||||||
|
|
||||||
finally
|
finally
|
||||||
SelectClipRgn(RenderCanvas.Handle, 0);
|
SelectClipRgn(RenderCanvas.Handle, 0);
|
||||||
DeleteObject(Rgn);
|
DeleteObject(Rgn);
|
||||||
end;
|
end;
|
||||||
// dvPainting := false; -- moved to TVpDayView
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TVpDayViewPainter.ScaleIcons(EventRect: TRect);
|
procedure TVpDayViewPainter.ScaleIcons(EventRect: TRect);
|
||||||
@ -1774,12 +1769,7 @@ end;
|
|||||||
|
|
||||||
procedure TVpDayViewPainter.SetMeasurements;
|
procedure TVpDayViewPainter.SetMeasurements;
|
||||||
begin
|
begin
|
||||||
RealWidth := TPSViewportWidth(Angle, RenderIn);
|
inherited;
|
||||||
RealHeight := TPSViewportHeight(Angle, RenderIn);
|
|
||||||
RealLeft := TPSViewportLeft(Angle, RenderIn);
|
|
||||||
RealRight := TPSViewportRight(Angle, RenderIn);
|
|
||||||
RealTop := TPSViewportTop(Angle, RenderIn);
|
|
||||||
RealBottom := TPSViewportBottom(Angle, RenderIn);
|
|
||||||
TVpDayViewOpener(FDayView).dvCalcColHeadHeight(Scale);
|
TVpDayViewOpener(FDayView).dvCalcColHeadHeight(Scale);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -136,9 +136,9 @@ procedure StripString(var Str: string);
|
|||||||
begin
|
begin
|
||||||
if Length (Str) < 1 then
|
if Length (Str) < 1 then
|
||||||
Exit;
|
Exit;
|
||||||
while not (Str[1] in ['A'..'Z', 'a'..'z', '0'..'9']) do
|
while (Length(Str) > 0) and (not (Str[1] in ['A'..'Z', 'a'..'z', '0'..'9'])) do
|
||||||
delete(Str, 1, 1);
|
delete(Str, 1, 1);
|
||||||
while not (Str[Length(Str)] in ['A'..'Z', 'a'..'z', '0'..'9']) do
|
while (Length(Str) > 0) and (not (Str[Length(Str)] in ['A'..'Z', 'a'..'z', '0'..'9'])) do
|
||||||
delete(Str, Length(Str), 1);
|
delete(Str, Length(Str), 1);
|
||||||
end;
|
end;
|
||||||
{=====}
|
{=====}
|
||||||
|
@ -20,12 +20,6 @@ type
|
|||||||
DayRectHeight: Integer;
|
DayRectHeight: Integer;
|
||||||
StrLn: Integer;
|
StrLn: Integer;
|
||||||
StartDate: TDateTime;
|
StartDate: TDateTime;
|
||||||
RealWidth: Integer;
|
|
||||||
RealHeight: Integer;
|
|
||||||
RealLeft: Integer;
|
|
||||||
RealRight: Integer;
|
|
||||||
RealTop: Integer;
|
|
||||||
RealBottom: Integer;
|
|
||||||
ADEventsRect: TRect;
|
ADEventsRect: TRect;
|
||||||
Rgn: HRGN;
|
Rgn: HRGN;
|
||||||
DotDotDotColor: TColor;
|
DotDotDotColor: TColor;
|
||||||
@ -47,7 +41,8 @@ type
|
|||||||
procedure DrawBorders;
|
procedure DrawBorders;
|
||||||
procedure DrawDays;
|
procedure DrawDays;
|
||||||
procedure DrawHeader;
|
procedure DrawHeader;
|
||||||
procedure SetMeasurements;
|
procedure InitColors;
|
||||||
|
procedure SetMeasurements; override;
|
||||||
|
|
||||||
public
|
public
|
||||||
constructor Create(AWeekView: TVpWeekView; ARenderCanvas: TCanvas);
|
constructor Create(AWeekView: TVpWeekView; ARenderCanvas: TCanvas);
|
||||||
@ -575,13 +570,8 @@ begin
|
|||||||
);
|
);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TVpWeekViewPainter.RenderToCanvas(ARenderIn: TRect;
|
procedure TVpWeekViewPainter.InitColors;
|
||||||
AAngle: TVpRotationAngle; AScale: Extended; ARenderDate: TDateTime;
|
|
||||||
AStartLine, AStopLine: Integer; AUseGran: TVpGranularity; ADisplayOnly: Boolean);
|
|
||||||
begin
|
begin
|
||||||
inherited;
|
|
||||||
|
|
||||||
// Here begins the original routine...
|
|
||||||
if DisplayOnly then begin
|
if DisplayOnly then begin
|
||||||
BevelHighlightColor := clBlack;
|
BevelHighlightColor := clBlack;
|
||||||
BevelShadowColor := clBlack;
|
BevelShadowColor := clBlack;
|
||||||
@ -608,16 +598,17 @@ begin
|
|||||||
ADEventBorderColor := FWeekView.AllDayEventAttributes.EventBorderColor;
|
ADEventBorderColor := FWeekView.AllDayEventAttributes.EventBorderColor;
|
||||||
end;
|
end;
|
||||||
DotDotDotColor := clBlack;
|
DotDotDotColor := clBlack;
|
||||||
|
end;
|
||||||
|
|
||||||
// wvPainting := true; --- moved to TVpWeekView
|
procedure TVpWeekViewPainter.RenderToCanvas(ARenderIn: TRect;
|
||||||
SavePenStyle := RenderCanvas.Pen.Style;
|
AAngle: TVpRotationAngle; AScale: Extended; ARenderDate: TDateTime;
|
||||||
SaveBrushColor := RenderCanvas.Brush.Color;
|
AStartLine, AStopLine: Integer; AUseGran: TVpGranularity; ADisplayOnly: Boolean);
|
||||||
SavePenColor := RenderCanvas.Pen.Color;
|
begin
|
||||||
|
inherited;
|
||||||
|
|
||||||
RenderCanvas.Pen.Style := psSolid;
|
InitColors;
|
||||||
RenderCanvas.Pen.Width := 1;
|
SavePenBrush;
|
||||||
RenderCanvas.Pen.Mode := pmCopy;
|
InitPenBrush;
|
||||||
RenderCanvas.Brush.Style := bsSolid;
|
|
||||||
|
|
||||||
Rgn := CreateRectRgn(RenderIn.Left, RenderIn.Top, RenderIn.Right, RenderIn.Bottom);
|
Rgn := CreateRectRgn(RenderIn.Left, RenderIn.Top, RenderIn.Right, RenderIn.Bottom);
|
||||||
try
|
try
|
||||||
@ -644,20 +635,12 @@ begin
|
|||||||
DeleteObject(Rgn);
|
DeleteObject(Rgn);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
RenderCanvas.Pen.Style := SavePenStyle;
|
RestorePenBrush;
|
||||||
RenderCanvas.Brush.Color := SaveBrushColor;
|
|
||||||
RenderCanvas.Pen.Color := SavePenColor;
|
|
||||||
// wvPainting := false; --- moved to TVpWeekView
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TVpWeekViewPainter.SetMeasurements;
|
procedure TVpWeekViewPainter.SetMeasurements;
|
||||||
begin
|
begin
|
||||||
RealWidth := TPSViewportWidth(Angle, RenderIn);
|
inherited;
|
||||||
RealHeight := TPSViewportHeight(Angle, RenderIn);
|
|
||||||
RealLeft := TPSViewportLeft(Angle, RenderIn);
|
|
||||||
RealRight := TPSViewportRight(Angle, RenderIn);
|
|
||||||
RealTop := TPSViewportTop(Angle, RenderIn);
|
|
||||||
RealBottom := TPSViewportBottom(Angle, RenderIn);
|
|
||||||
|
|
||||||
with TVpWeekViewOpener(FWeekView) do
|
with TVpWeekViewOpener(FWeekView) do
|
||||||
if RenderDate = 0 then
|
if RenderDate = 0 then
|
||||||
|
Reference in New Issue
Block a user