LazMapViewer: Add plugin handler for OnResize

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@9587 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz 2025-01-15 09:36:40 +00:00
parent 1ca7133883
commit 3d1e300fcd
3 changed files with 34 additions and 1 deletions

View File

@ -190,6 +190,7 @@ type
FMouseMoveEvent : TMvPluginMouseMoveEvent;
FMouseUpEvent : TMvPluginMouseEvent;
FMouseWheelEvent : TMvPluginMouseWheelEvent;
FResizeEvent: TMvPluginNotifyEvent;
FZoomChangeEvent : TMvPluginNotifyEvent;
FZoomChangingEvent : TMvPluginZoomChangingEvent;
protected
@ -215,6 +216,7 @@ type
X, Y: Integer; var Handled: Boolean); override;
procedure MouseWheel(AMapView: TMapView; AShift: TShiftState;
AWheelDelta: Integer; AMousePos: TPoint; var Handled: Boolean); override;
procedure Resize(AMapView: TMapView; var Handled: Boolean); override;
procedure ZoomChange(AMapView: TMapView; var Handled: Boolean); override;
procedure ZoomChanging(AMapView: TMapView; NewZoom: Integer; var Allow, Handled: Boolean); override;
public
@ -947,6 +949,12 @@ begin
FMouseWheelEvent(Self, AMapView, AShift, AWheelDelta, AMousePos, Handled);
end;
procedure TUserDefinedPlugin.Resize(AMapView: TMapView; var Handled: Boolean);
begin
if Assigned(FResizeEvent) then
FResizeEvent(Self, AMapView, Handled);
end;
procedure TUserDefinedPlugin.ZoomChange(AMapView: TMapView; var Handled: Boolean);
begin
if Assigned(FZoomChangeEvent) then

View File

@ -481,6 +481,7 @@ type
X, Y: Integer): Boolean; virtual;
function MouseWheel(AMapView: TMapView; AShift: TShiftState; AWheelDelta: Integer;
AMousePos: TPoint): Boolean; virtual;
function Resize(AMapView: TMapView): Boolean; virtual;
function ZoomChange(AMapView: TMapView): Boolean; virtual;
function ZoomChanging(AMapView: TMapView; NewZoom: Integer; var Allow: Boolean): Boolean; virtual;
public
@ -748,6 +749,7 @@ type
property OnMouseMove;
property OnMouseUp;
property OnMouseWheel;
property OnResize;
end;
@ -2853,7 +2855,6 @@ end;
procedure TMapView.DoOnResize;
begin
inherited DoOnResize;
//cancel all rendering threads
Engine.CancelCurrentDrawing;
DrawingEngine.CreateBuffer(ClientWidth, ClientHeight);
@ -2862,6 +2863,9 @@ begin
Engine.SetSize(ClientWidth, ClientHeight);
Invalidate;
end;
GetPluginManager.Resize(Self);
inherited DoOnResize;
end;
procedure TMapView.Paint;

View File

@ -74,6 +74,7 @@ type
X,Y: Integer; var Handled: Boolean); virtual;
procedure MouseWheel(AMapView: TMapView; AShift: TShiftState;
AWheelDelta: Integer; AMousePos: TPoint; var Handled: Boolean); virtual;
procedure Resize(AMapView: TMapView; var Handled: Boolean); virtual;
procedure ZoomChange(AMapView: TMapView; var Handled: Boolean); virtual;
procedure ZoomChanging(AMapView: TMapView; NewZoom: Integer; var Allow, Handled: Boolean); virtual;
protected
@ -273,6 +274,7 @@ type
X, Y: Integer): Boolean; override;
function MouseWheel(AMapView: TMapView; AShift: TShiftState; AWheelDelta: Integer;
AMousePos: TPoint): Boolean; override;
function Resize(AMapView: TMapView): Boolean; override;
function ZoomChange(AMapView: TMapView): Boolean; override;
function ZoomChanging(AMapView: TMapView; NewZoom: Integer; var Allow: Boolean): Boolean; override;
@ -476,6 +478,11 @@ begin
SetPluginManager(TMvPluginManager(Reader.Parent));
end;
procedure TMvCustomPlugin.Resize(AMapView: TMapView; var Handled: Boolean);
begin
Unused(AMapView, Handled);
end;
procedure TMvCustomPlugin.SetEnabled(AValue: Boolean);
begin
if AValue <> FEnabled then
@ -1251,6 +1258,20 @@ begin
end;
end;
function TMvPluginManager.Resize(AMapView: TMapView): Boolean;
var
i: Integer;
plugin: TMvCustomPlugin;
begin
Result := False;
for i := FPluginList.Count-1 downto 0 do
begin
plugin := Items[i];
if HandlePlugin(plugin, AMapView) then
plugin.Resize(AMapView, Result);
end;
end;
procedure TMvPluginManager.Notification(AComponent: TComponent; Operation: TOperation);
begin
inherited;