macOS Gestures
From Lazarus wiki
Jump to navigationJump to searchThis article applies to macOS only.
See also: Multiplatform Programming Guide
Overview
The Gestures unit is provides convenient Free Pascal classes for handling macOS gestures.
Currently only the magnification gesture is implemented, but others can be implemented easily in a similar way.
Usage Example
Let's assume your scalable control has a Scale property and you want to allow an end user to scale it by using the typical trackpad gesture. Here is the code:
uses
Gestures;
type
TForm_Main = class(TForm)
private
Gesture: TMagnificationGesture;
InitialScale: Double;
end;
procedure TForm_Main.FormCreate(Sender: TObject);
begin
Gesture := TMagnificationGesture.Create(Self);
Gesture.Control := MyScalableControl;
Gesture.OnGesture := @MagnificationGestureGesture;
end;
procedure TForm_Main.MagnificationGestureGesture(Sender: TMagnificationGesture;
State: TGestureState; Magnification: Double);
begin
case State of
gsBegan:
InitialScale := MyScalableControl.Scale;
gsChanged:
MyScalableControl.Scale := InitialScale * (1 + Magnification);
end;
end;
Author
Yuri Plashenkov
License
This package is licensed under the MIT license.
Download
The Gestures unit may be downloaded from GitHub.