{------------------------------------------------------------------------------}
{
   Unit Name: scalezmf
   Purpose  : Unit for zooming TScale-component
   Author   : Vesa Lappalainen
   Date     : 19.3.1998
   Changed  :

   ToDo     :
}
{------------------------------------------------------------------------------}

unit scalezmf;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls,kscale, savepos, kinicomp, KParam;

type
  TFormScaleZoom = class(TForm)
    Panel1: TPanel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    ButtonSwap: TButton;
    SavePos1: TSavePos;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    ButtonOK: TButton;
    CheckBoxXY1: TkCheckBox;
    procedure Button4Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure ButtonSwapClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure CheckBoxXY1Click(Sender: TObject);
    procedure ButtonOKClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
    Scale:TScale;
    
  end;

var
  FormScaleZoom: TFormScaleZoom;

implementation

uses kdouble;

{$R *.DFM}

procedure TFormScaleZoom.ButtonSwapClick(Sender: TObject);
begin
  Scale.Fac.X := -Scale.Fac.X;
  Scale.Origo.X := Scale.Width-Scale.Origo.X;
end;

procedure TFormScaleZoom.FormShow(Sender: TObject);
begin
//  Scale := FSimu.ScaleSimu;
end;

procedure TFormScaleZoom.Button4Click(Sender: TObject);
begin
  Scale.Origo.x := Scale.Origo.x - 10;
end;

procedure TFormScaleZoom.Button3Click(Sender: TObject);
begin
  Scale.Origo.x := Scale.Origo.x + 10;
end;

procedure TFormScaleZoom.Button1Click(Sender: TObject);
begin
  Scale.Origo.y := Scale.Origo.y - 10;

end;

procedure TFormScaleZoom.Button2Click(Sender: TObject);
begin
  Scale.Origo.y := Scale.Origo.y + 10;
end;

procedure TFormScaleZoom.Button5Click(Sender: TObject);
begin
  if CheckBoxXY1.Checked then Scale.Factor := Scale.Factor*1.2 else
  Scale.Fac.y := Scale.Fac.y*1.2;
end;

procedure TFormScaleZoom.Button6Click(Sender: TObject);
begin
  if CheckBoxXY1.Checked then Scale.Factor := Scale.Factor/1.2 else
  Scale.Fac.y := Scale.Fac.y/1.2;
end;

procedure TFormScaleZoom.Button7Click(Sender: TObject);
begin
  if CheckBoxXY1.Checked then Scale.Factor := Scale.Factor/1.2 else
  Scale.Fac.x := Scale.Fac.x/1.2;
end;

procedure TFormScaleZoom.Button8Click(Sender: TObject);
begin
  if CheckBoxXY1.Checked then Scale.Factor := Scale.Factor*1.2 else
  Scale.Fac.x := Scale.Fac.x*1.2;
end;

procedure TFormScaleZoom.CheckBoxXY1Click(Sender: TObject);
begin
  if ( Scale = nil ) then exit;
  if CheckBoxXY1.Checked then begin
    Scale.Fac.x := Scale.Factor * sign(Scale.Fac.x);
    Scale.Fac.y := Scale.Factor * sign(Scale.Fac.y);
  end;  

end;

procedure TFormScaleZoom.ButtonOKClick(Sender: TObject);
begin
  Close;
end;

procedure TFormScaleZoom.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action := caFree;
  Scale.Form := nil;
end;

end.
