119 lines
3.6 KiB
Plaintext
119 lines
3.6 KiB
Plaintext
unit umain;
|
||
|
||
interface
|
||
|
||
uses
|
||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||
Dialogs, ieview, imageenview, StdCtrls, ExtCtrls, ComCtrls, hyieutils, iexBitmaps,
|
||
hyiedefs, iesettings, iexLayers, iexRulers;
|
||
|
||
type
|
||
TMainForm = class(TForm)
|
||
Panel2: TPanel;
|
||
CheckBoxPan: TCheckBox;
|
||
CheckBoxZoom: TCheckBox;
|
||
CheckBoxLayerRotate: TCheckBox;
|
||
CheckLayerMove: TCheckBox;
|
||
StatusBar1: TStatusBar;
|
||
btnOpen: TButton;
|
||
ImageEnView1: TImageEnView;
|
||
Splitter: TSplitter;
|
||
Label1: TLabel;
|
||
Label2: TLabel;
|
||
Label3: TLabel;
|
||
Label4: TLabel;
|
||
procedure btnOpenClick(Sender: TObject);
|
||
procedure FormCreate(Sender: TObject);
|
||
procedure CheckBoxLayerRotateClick(Sender: TObject);
|
||
procedure CheckBoxZoomClick(Sender: TObject);
|
||
procedure CheckBoxPanClick(Sender: TObject);
|
||
procedure CheckLayerMoveClick(Sender: TObject);
|
||
procedure ImageEnView1ImageEnGesture(Sender: TObject;
|
||
Flags: TIEGestureFlags; ID: TIEGestureID; Location: TSmallPoint;
|
||
Value, InertiaX, InertiaY, PressAndTapDistance: Integer; var Handled: Boolean);
|
||
private
|
||
{ Private declarations }
|
||
procedure UpdateControls();
|
||
public
|
||
{ Public declarations }
|
||
end;
|
||
|
||
var
|
||
MainForm: TMainForm;
|
||
|
||
implementation
|
||
|
||
{$R *.dfm}
|
||
{$R WindowsTheme.res}
|
||
|
||
procedure TMainForm.FormCreate(Sender: TObject);
|
||
begin
|
||
ImageEnView1.Gestures.Pan.Enabled := CheckBoxPan.Checked;
|
||
ImageEnView1.Gestures.Zoom.Enabled := CheckBoxZoom.Checked;
|
||
ImageEnView1.Gestures.LayerRotate.Enabled := CheckBoxLayerRotate.Checked;
|
||
ImageEnView1.Gestures.LayerMove.Enabled := CheckLayerMove.Checked;
|
||
end;
|
||
|
||
// ImageEnView1.Gestures -> Controls
|
||
procedure TMainForm.UpdateControls();
|
||
begin
|
||
CheckBoxPan.Checked := ImageEnView1.Gestures.Pan.Enabled;
|
||
CheckBoxZoom.Checked := ImageEnView1.Gestures.Zoom.Enabled;
|
||
CheckBoxLayerRotate.Checked := ImageEnView1.Gestures.LayerRotate.Enabled;
|
||
CheckLayerMove.Checked := ImageEnView1.Gestures.LayerMove.Enabled;
|
||
end;
|
||
|
||
// Open...
|
||
procedure TMainForm.btnOpenClick(Sender: TObject);
|
||
begin
|
||
with ImageEnView1.IO do
|
||
LoadFromFile( ExecuteOpenDialog() );
|
||
end;
|
||
|
||
|
||
procedure TMainForm.CheckBoxLayerRotateClick(Sender: TObject);
|
||
begin
|
||
ImageEnView1.Gestures.LayerRotate.Enabled := CheckBoxLayerRotate.Checked;
|
||
UpdateControls();
|
||
if ImageEnView1.Gestures.LayerRotate.Enabled then
|
||
ImageEnView1.CurrentLayer.Locked := false; // allows rotate on layer 0
|
||
end;
|
||
|
||
procedure TMainForm.CheckLayerMoveClick(Sender: TObject);
|
||
begin
|
||
ImageEnView1.Gestures.LayerMove.Enabled := CheckLayerMove.Checked;
|
||
UpdateControls();
|
||
if ImageEnView1.Gestures.LayerMove.Enabled then
|
||
ImageEnView1.CurrentLayer.Locked := false; // allows moving on layer 0
|
||
end;
|
||
|
||
procedure TMainForm.CheckBoxZoomClick(Sender: TObject);
|
||
begin
|
||
ImageEnView1.Gestures.Zoom.Enabled := CheckBoxZoom.Checked;
|
||
UpdateControls();
|
||
end;
|
||
|
||
procedure TMainForm.CheckBoxPanClick(Sender: TObject);
|
||
begin
|
||
ImageEnView1.Gestures.Pan.Enabled := CheckBoxPan.Checked;
|
||
UpdateControls();
|
||
end;
|
||
|
||
|
||
// just to show Zoom and Rotate angle
|
||
procedure TMainForm.ImageEnView1ImageEnGesture(Sender: TObject;
|
||
Flags: TIEGestureFlags; ID: TIEGestureID; Location: TSmallPoint; Value,
|
||
InertiaX, InertiaY, PressAndTapDistance: Integer; var Handled: Boolean);
|
||
begin
|
||
case ID of
|
||
iegiZoom:
|
||
StatusBar1.SimpleText := Format('Zoom %.1f%%', [ImageEnView1.Zoom]);
|
||
iegiRotate:
|
||
StatusBar1.SimpleText := Format('Rotate %.1f<EFBFBD>', [ImageEnView1.CurrentLayer.Rotate]);
|
||
iegiPan:
|
||
StatusBar1.SimpleText := Format('View %d, %d Layer Pos %d, %d', [ImageEnView1.ViewX, ImageEnView1.ViewY, ImageEnView1.CurrentLayer.PosX, ImageEnView1.CurrentLayer.PosY]);
|
||
end;
|
||
end;
|
||
|
||
end.
|