mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-18 07:39:22 +02:00
TAChart: Add OnCalculateNewExtent event to all zoom/drag tools.
This commit is contained in:
parent
6e0c2e0095
commit
6d84ad507a
@ -205,7 +205,7 @@ type
|
|||||||
|
|
||||||
procedure OnTimer(ASender: TObject);
|
procedure OnTimer(ASender: TObject);
|
||||||
protected
|
protected
|
||||||
procedure DoCalculateNewExtent(var ANewExtent: TDoubleRect);
|
procedure DoCalculateNewExtent(var ANewExtent: TDoubleRect); virtual;
|
||||||
procedure DoZoom(ANewExtent: TDoubleRect; AFull: Boolean);
|
procedure DoZoom(ANewExtent: TDoubleRect; AFull: Boolean);
|
||||||
function IsAnimating: Boolean; inline;
|
function IsAnimating: Boolean; inline;
|
||||||
function IsProportional: Boolean; virtual;
|
function IsProportional: Boolean; virtual;
|
||||||
@ -301,12 +301,16 @@ type
|
|||||||
TZoomClickTool = class(TBasicZoomStepTool)
|
TZoomClickTool = class(TBasicZoomStepTool)
|
||||||
public
|
public
|
||||||
procedure MouseDown(APoint: TPoint); override;
|
procedure MouseDown(APoint: TPoint); override;
|
||||||
|
published
|
||||||
|
property OnCalculateNewExtent;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
TZoomMouseWheelTool = class(TBasicZoomStepTool)
|
TZoomMouseWheelTool = class(TBasicZoomStepTool)
|
||||||
public
|
public
|
||||||
procedure MouseWheelDown(APoint: TPoint); override;
|
procedure MouseWheelDown(APoint: TPoint); override;
|
||||||
procedure MouseWheelUp(APoint: TPoint); override;
|
procedure MouseWheelUp(APoint: TPoint); override;
|
||||||
|
published
|
||||||
|
property OnCalculateNewExtent;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
TPanDirection = (pdLeft, pdUp, pdRight, pdDown);
|
TPanDirection = (pdLeft, pdUp, pdRight, pdDown);
|
||||||
@ -322,8 +326,12 @@ type
|
|||||||
TBasicPanTool = class(TChartTool)
|
TBasicPanTool = class(TChartTool)
|
||||||
strict private
|
strict private
|
||||||
FLimitToExtent: TPanDirectionSet;
|
FLimitToExtent: TPanDirectionSet;
|
||||||
|
FOnCalculateNewExtent: TCalculateNewExtentEvent;
|
||||||
strict protected
|
strict protected
|
||||||
|
procedure DoCalculateNewExtent(var ANewExtent: TDoubleRect); virtual;
|
||||||
procedure PanBy(AOffset: TPoint);
|
procedure PanBy(AOffset: TPoint);
|
||||||
|
property OnCalculateNewExtent: TCalculateNewExtentEvent
|
||||||
|
read FOnCalculateNewExtent write FOnCalculateNewExtent;
|
||||||
public
|
public
|
||||||
constructor Create(AOwner: TComponent); override;
|
constructor Create(AOwner: TComponent); override;
|
||||||
published
|
published
|
||||||
@ -355,6 +363,7 @@ type
|
|||||||
property EscapeCancels;
|
property EscapeCancels;
|
||||||
property MinDragRadius: Cardinal
|
property MinDragRadius: Cardinal
|
||||||
read FMinDragRadius write FMinDragRadius default 0;
|
read FMinDragRadius write FMinDragRadius default 0;
|
||||||
|
property OnCalculateNewExtent;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TPanClickTool }
|
{ TPanClickTool }
|
||||||
@ -380,6 +389,7 @@ type
|
|||||||
property ActiveCursor default crSizeAll;
|
property ActiveCursor default crSizeAll;
|
||||||
property Interval: Cardinal read FInterval write FInterval default 0;
|
property Interval: Cardinal read FInterval write FInterval default 0;
|
||||||
property Margins: TChartMargins read FMargins write FMargins;
|
property Margins: TChartMargins read FMargins write FMargins;
|
||||||
|
property OnCalculateNewExtent;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TPanMouseWheelTool }
|
{ TPanMouseWheelTool }
|
||||||
@ -398,6 +408,7 @@ type
|
|||||||
property Step: Cardinal read FStep write FStep default 10;
|
property Step: Cardinal read FStep write FStep default 10;
|
||||||
property WheelUpDirection: TPanDirection
|
property WheelUpDirection: TPanDirection
|
||||||
read FWheelUpDirection write FWheelUpDirection default pdUp;
|
read FWheelUpDirection write FWheelUpDirection default pdUp;
|
||||||
|
property OnCalculateNewExtent;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
TChartDistanceMode = (cdmXY, cdmOnlyX, cdmOnlyY);
|
TChartDistanceMode = (cdmXY, cdmOnlyX, cdmOnlyY);
|
||||||
@ -1652,6 +1663,12 @@ begin
|
|||||||
ActiveCursor := crSizeAll;
|
ActiveCursor := crSizeAll;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TBasicPanTool.DoCalculateNewExtent(var ANewExtent: TDoubleRect);
|
||||||
|
begin
|
||||||
|
if Assigned(FOnCalculateNewExtent) then
|
||||||
|
FOnCalculateNewExtent(Self, ANewExtent);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TBasicPanTool.PanBy(AOffset: TPoint);
|
procedure TBasicPanTool.PanBy(AOffset: TPoint);
|
||||||
var
|
var
|
||||||
dd: TDoublePoint;
|
dd: TDoublePoint;
|
||||||
@ -1672,6 +1689,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
ext.a += dd;
|
ext.a += dd;
|
||||||
ext.b += dd;
|
ext.b += dd;
|
||||||
|
DoCalculateNewExtent(ext);
|
||||||
FChart.LogicalExtent := ext;
|
FChart.LogicalExtent := ext;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user