macOS Gestures

From Lazarus wiki
Revision as of 03:26, 3 October 2020 by Trev (talk | contribs) (New Mac content)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
macOSlogo.png

This 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.