- Added UfrmToolWindow

- Changed the tool windows to inherit from TfrmToolWindow
- Added a "close timer" to TfrmToolWindow to handle different focus behaviours of window managers
- Moved position changes for the tool windows to the appropriate TfrmToolWindow.FormShow event
This commit is contained in:
2009-09-02 03:21:39 +02:00
parent d769c7ddc3
commit b9ef61c0db
21 changed files with 1687 additions and 1700 deletions

View File

@@ -1,114 +1,109 @@
object frmBoundaries: TfrmBoundaries
inherited frmBoundaries: TfrmBoundaries
Left = 290
Height = 154
Height = 164
Top = 171
Width = 212
ActiveControl = Panel1
BorderIcons = []
BorderStyle = bsToolWindow
Width = 205
Caption = 'Boundaries'
ClientHeight = 154
ClientWidth = 212
Font.Height = -11
OnClose = FormClose
OnDeactivate = FormDeactivate
LCLVersion = '0.9.27'
object tbMinZ: TTrackBar
ClientHeight = 164
ClientWidth = 205
object lblMaxZ: TLabel[0]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = seMaxZ
AnchorSideTop.Side = asrCenter
Left = 8
Height = 16
Top = 89
Width = 68
BorderSpacing.Left = 8
Caption = 'Maximum Z:'
Layout = tlCenter
ParentColor = False
end
object lblMinZ: TLabel[1]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = seMinZ
AnchorSideTop.Side = asrCenter
Left = 8
Height = 16
Top = 12
Width = 67
BorderSpacing.Left = 8
Caption = 'Minimum Z:'
Layout = tlCenter
ParentColor = False
end
object tbMinZ: TTrackBar[2]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = seMinZ
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 8
Height = 36
Top = 39
Width = 196
Top = 41
Width = 189
Frequency = 10
Max = 127
Min = -128
OnChange = tbMinZChange
PageSize = 1
Position = -128
Align = alTop
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 8
TabOrder = 0
end
object tbMaxZ: TTrackBar
object tbMaxZ: TTrackBar[3]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = seMaxZ
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 8
Height = 36
Top = 114
Width = 196
Top = 118
Width = 189
Frequency = 10
Max = 127
Min = -128
OnChange = tbMaxZChange
PageSize = 1
Position = 127
Align = alTop
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 8
TabOrder = 1
end
object Panel1: TPanel
Left = 8
Height = 23
Top = 8
Width = 196
Align = alTop
BorderSpacing.Around = 8
BevelOuter = bvNone
ClientHeight = 23
ClientWidth = 196
object seMaxZ: TSpinEdit[4]
AnchorSideTop.Control = tbMinZ
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 149
Height = 25
Top = 85
Width = 48
Anchors = [akTop, akRight]
BorderSpacing.Right = 8
MaxValue = 127
MinValue = -128
OnChange = seMaxZChange
TabOrder = 2
object lblMinZ: TLabel
Left = 0
Height = 23
Top = 0
Width = 148
Align = alClient
Caption = 'Minimum Z:'
Layout = tlCenter
ParentColor = False
end
object seMinZ: TSpinEdit
Left = 148
Height = 23
Top = 0
Width = 48
Align = alRight
MaxValue = 127
MinValue = -128
OnChange = seMinZChange
TabOrder = 0
Value = -128
end
Value = 127
end
object Panel2: TPanel
Left = 8
Height = 23
Top = 83
Width = 196
Align = alTop
BorderSpacing.Around = 8
BevelOuter = bvNone
ClientHeight = 23
ClientWidth = 196
object seMinZ: TSpinEdit[5]
AnchorSideTop.Control = Owner
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 149
Height = 25
Top = 8
Width = 48
Anchors = [akTop, akRight]
BorderSpacing.Top = 8
BorderSpacing.Right = 8
MaxValue = 127
MinValue = -128
OnChange = seMinZChange
TabOrder = 3
object lblMaxZ: TLabel
Left = 0
Height = 23
Top = 0
Width = 148
Align = alClient
Caption = 'Maximum Z:'
Layout = tlCenter
ParentColor = False
end
object seMaxZ: TSpinEdit
Left = 148
Height = 23
Top = 0
Width = 48
Align = alRight
MaxValue = 127
MinValue = -128
OnChange = seMaxZChange
TabOrder = 0
Value = 127
end
Value = -128
end
end

View File

@@ -30,30 +30,24 @@ unit UfrmBoundaries;
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, LMessages,
LCLIntf, StdCtrls, ComCtrls, Spin, ExtCtrls;
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls,
ComCtrls, Spin, ExtCtrls, UfrmToolWindow;
type
{ TfrmBoundaries }
TfrmBoundaries = class(TForm)
TfrmBoundaries = class(TfrmToolWindow)
lblMaxZ: TLabel;
lblMinZ: TLabel;
Panel1: TPanel;
Panel2: TPanel;
seMaxZ: TSpinEdit;
seMinZ: TSpinEdit;
tbMinZ: TTrackBar;
tbMaxZ: TTrackBar;
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormDeactivate(Sender: TObject);
procedure seMaxZChange(Sender: TObject);
procedure seMinZChange(Sender: TObject);
procedure tbMaxZChange(Sender: TObject);
procedure tbMinZChange(Sender: TObject);
protected
procedure MouseLeave(var msg: TLMessage); message CM_MouseLeave;
public
{ public declarations }
end;
@@ -68,25 +62,16 @@ uses
{ TfrmBoundaries }
procedure TfrmBoundaries.FormClose(Sender: TObject;
var CloseAction: TCloseAction);
begin
CloseAction := caHide;
end;
procedure TfrmBoundaries.FormDeactivate(Sender: TObject);
begin
Close;
end;
procedure TfrmBoundaries.seMaxZChange(Sender: TObject);
begin
tbMaxZ.Position := seMaxZ.Value;
frmMain.InvalidateFilter;
end;
procedure TfrmBoundaries.seMinZChange(Sender: TObject);
begin
tbMinZ.Position := seMinZ.Value;
frmMain.InvalidateFilter;
end;
procedure TfrmBoundaries.tbMaxZChange(Sender: TObject);
@@ -101,12 +86,6 @@ begin
frmMain.InvalidateFilter;
end;
procedure TfrmBoundaries.MouseLeave(var msg: TLMessage);
begin
if not PtInRect(ClientRect, ScreenToClient(Mouse.CursorPos)) then
Close;
end;
initialization
{$I UfrmBoundaries.lrs}

View File

@@ -1,134 +1,120 @@
object frmDrawSettings: TfrmDrawSettings
Left = 268
Height = 181
Top = 165
Width = 243
ActiveControl = rbTileList
BorderIcons = []
BorderStyle = bsToolWindow
Caption = 'Draw settings'
ClientHeight = 181
ClientWidth = 243
Font.Height = -11
FormStyle = fsStayOnTop
OnClose = FormClose
OnDeactivate = FormDeactivate
OnShow = FormShow
LCLVersion = '0.9.25'
object rbTileList: TRadioButton
Left = 8
Height = 21
Top = 8
Width = 227
Align = alTop
BorderSpacing.Left = 8
BorderSpacing.Top = 8
BorderSpacing.Right = 8
BorderSpacing.Bottom = 4
Caption = 'Use tile from the list'
Checked = True
ParentFont = True
State = cbChecked
TabOrder = 0
UseOnChange = True
end
object rbRandom: TRadioButton
Left = 8
Height = 21
Top = 33
Width = 227
Align = alTop
BorderSpacing.Left = 8
BorderSpacing.Top = 4
BorderSpacing.Right = 8
Caption = 'Use tiles from the random pool'
ParentFont = True
TabOrder = 1
UseOnChange = True
end
object gbHue: TGroupBox
Left = 8
Height = 49
Top = 124
Width = 227
Align = alTop
BorderSpacing.Around = 8
Caption = 'Hue (Statics only)'
ClientHeight = 32
ClientWidth = 223
ParentFont = True
TabOrder = 2
object pbHue: TPaintBox
Cursor = crHandPoint
Left = 4
Height = 28
Width = 215
Align = alClient
BorderSpacing.Left = 4
BorderSpacing.Right = 4
BorderSpacing.Bottom = 4
OnClick = pbHueClick
OnPaint = pbHuePaint
end
end
object Panel1: TPanel
Left = 8
Height = 23
Top = 62
Width = 227
Align = alTop
BorderSpacing.Around = 8
BevelOuter = bvNone
ClientHeight = 23
ClientWidth = 227
ParentFont = True
TabOrder = 3
object seForceAltitude: TSpinEdit
Left = 177
Height = 23
Width = 50
Align = alRight
MaxValue = 127
MinValue = -128
ParentFont = True
TabOrder = 0
end
object cbForceAltitude: TCheckBox
Height = 23
Width = 177
Align = alClient
Caption = 'Force altitude:'
ParentFont = True
TabOrder = 1
end
end
object Panel2: TPanel
Left = 8
Height = 23
Top = 93
Width = 227
Align = alTop
BorderSpacing.Around = 8
BevelOuter = bvNone
ClientHeight = 23
ClientWidth = 227
ParentFont = True
TabOrder = 4
object seRandomHeight: TSpinEdit
Left = 177
Height = 23
Width = 50
Align = alRight
ParentFont = True
TabOrder = 0
end
object cbRandomHeight: TCheckBox
Height = 23
Width = 177
Align = alClient
Caption = 'Add Random Altitude'
ParentFont = True
TabOrder = 1
end
end
end
inherited frmDrawSettings: TfrmDrawSettings
Left = 268
Height = 180
Top = 165
Width = 242
ActiveControl = rbTileList
Caption = 'Draw settings'
ClientHeight = 180
ClientWidth = 242
object rbTileList: TRadioButton[0]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Owner
Left = 8
Height = 19
Top = 8
Width = 125
BorderSpacing.Left = 8
BorderSpacing.Top = 8
BorderSpacing.Bottom = 4
Caption = 'Use tile from the list'
Checked = True
State = cbChecked
TabOrder = 0
end
object rbRandom: TRadioButton[1]
AnchorSideLeft.Control = rbTileList
AnchorSideTop.Control = rbTileList
AnchorSideTop.Side = asrBottom
Left = 8
Height = 19
Top = 31
Width = 184
BorderSpacing.Top = 4
Caption = 'Use tiles from the random pool'
TabOrder = 1
TabStop = False
end
object gbHue: TGroupBox[2]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = seRandomHeight
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 8
Height = 49
Top = 123
Width = 226
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 8
Caption = 'Hue (Statics only)'
ClientHeight = 31
ClientWidth = 222
TabOrder = 2
object pbHue: TPaintBox
Cursor = crHandPoint
Left = 4
Height = 27
Top = 0
Width = 214
Align = alClient
BorderSpacing.Left = 4
BorderSpacing.Right = 4
BorderSpacing.Bottom = 4
OnClick = pbHueClick
OnPaint = pbHuePaint
end
end
object cbRandomHeight: TCheckBox[3]
AnchorSideLeft.Control = cbForceAltitude
AnchorSideTop.Control = cbForceAltitude
AnchorSideTop.Side = asrBottom
Left = 8
Height = 19
Top = 93
Width = 135
BorderSpacing.Top = 12
Caption = 'Add Random Altitude'
TabOrder = 3
end
object seRandomHeight: TSpinEdit[4]
AnchorSideTop.Control = cbRandomHeight
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 184
Height = 25
Top = 90
Width = 50
Anchors = [akTop, akRight]
BorderSpacing.Right = 8
TabOrder = 4
end
object cbForceAltitude: TCheckBox[5]
AnchorSideLeft.Control = rbRandom
AnchorSideTop.Control = rbRandom
AnchorSideTop.Side = asrBottom
Left = 8
Height = 19
Top = 62
Width = 95
BorderSpacing.Top = 12
Caption = 'Force altitude:'
TabOrder = 5
end
object seForceAltitude: TSpinEdit[6]
AnchorSideTop.Control = cbForceAltitude
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 184
Height = 25
Top = 59
Width = 50
Anchors = [akTop, akRight]
BorderSpacing.Right = 8
MaxValue = 127
MinValue = -128
TabOrder = 6
end
end

View File

@@ -1,142 +1,109 @@
(*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at
* http://www.opensource.org/licenses/cddl1.php.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at
* http://www.opensource.org/licenses/cddl1.php. If applicable,
* add the following below this CDDL HEADER, with the fields enclosed
* by brackets "[]" replaced with your own identifying * information:
* Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*
*
* Portions Copyright 2007 Andreas Schneider
*)
unit UfrmDrawSettings;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls,
Spin, ExtCtrls, LMessages, LCLIntf;
type
{ TfrmDrawSettings }
TfrmDrawSettings = class(TForm)
(*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at
* http://www.opensource.org/licenses/cddl1.php.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at
* http://www.opensource.org/licenses/cddl1.php. If applicable,
* add the following below this CDDL HEADER, with the fields enclosed
* by brackets "[]" replaced with your own identifying * information:
* Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*
*
* Portions Copyright 2009 Andreas Schneider
*)
unit UfrmDrawSettings;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls,
Spin, ExtCtrls, LMessages, UfrmToolWindow;
type
{ TfrmDrawSettings }
TfrmDrawSettings = class(TfrmToolWindow)
cbForceAltitude: TCheckBox;
cbRandomHeight: TCheckBox;
cbRandomHeight: TCheckBox;
gbHue: TGroupBox;
Panel1: TPanel;
Panel2: TPanel;
pbHue: TPaintBox;
rbRandom: TRadioButton;
pbHue: TPaintBox;
rbRandom: TRadioButton;
rbTileList: TRadioButton;
seForceAltitude: TSpinEdit;
seRandomHeight: TSpinEdit;
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormDeactivate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure pbHueClick(Sender: TObject);
procedure pbHuePaint(Sender: TObject);
procedure seForceAltitudeChange(Sender: TObject);
procedure seRandomHeightChange(Sender: TObject);
protected
procedure MouseLeave(var msg: TLMessage); message CM_MouseLeave;
public
{ public declarations }
end;
var
frmDrawSettings: TfrmDrawSettings;
implementation
uses
UGameResources, UHue, UfrmHueSettings;
{ TfrmDrawSettings }
procedure TfrmDrawSettings.FormClose(Sender: TObject;
var CloseAction: TCloseAction);
begin
CloseAction := caHide;
end;
procedure TfrmDrawSettings.FormDeactivate(Sender: TObject);
begin
if not frmHueSettings.Visible then
Close;
end;
procedure TfrmDrawSettings.FormShow(Sender: TObject);
begin
Left := Mouse.CursorPos.x - 8;
Top := Mouse.CursorPos.y - 8;
end;
procedure TfrmDrawSettings.pbHueClick(Sender: TObject);
var
msg: TLMessage;
begin
frmHueSettings.Left := Mouse.CursorPos.x - 8;
frmHueSettings.Top := Mouse.CursorPos.y - 8;
frmHueSettings.ShowModal;
pbHue.Repaint;
MouseLeave(msg);
end;
procedure TfrmDrawSettings.pbHuePaint(Sender: TObject);
var
hue: THue;
begin
if frmHueSettings <> nil then
begin
if frmHueSettings.lbHue.ItemIndex > 0 then
hue := ResMan.Hue.Hues[frmHueSettings.lbHue.ItemIndex - 1]
else
hue := nil;
TfrmHueSettings.DrawHue(hue, pbHue.Canvas, pbHue.Canvas.ClipRect,
frmHueSettings.lbHue.Items.Strings[frmHueSettings.lbHue.ItemIndex]);
end;
end;
procedure TfrmDrawSettings.seForceAltitudeChange(Sender: TObject);
begin
cbForceAltitude.Checked := True;
end;
procedure TfrmDrawSettings.seRandomHeightChange(Sender: TObject);
begin
cbRandomHeight.Checked := True;
end;
procedure TfrmDrawSettings.MouseLeave(var msg: TLMessage);
begin
try
if (not frmHueSettings.Visible) and (not PtInRect(ClientRect, ScreenToClient(Mouse.CursorPos))) then
Close;
except
Close;
end;
end;
initialization
{$I UfrmDrawSettings.lrs}
end.
seRandomHeight: TSpinEdit;
procedure pbHueClick(Sender: TObject);
procedure pbHuePaint(Sender: TObject);
procedure seForceAltitudeChange(Sender: TObject);
procedure seRandomHeightChange(Sender: TObject);
public
{ public declarations }
end;
var
frmDrawSettings: TfrmDrawSettings;
implementation
uses
UGameResources, UHue, UfrmHueSettings;
{ TfrmDrawSettings }
procedure TfrmDrawSettings.pbHueClick(Sender: TObject);
var
msg: TLMessage;
begin
frmHueSettings.Left := Mouse.CursorPos.x - 8;
frmHueSettings.Top := Mouse.CursorPos.y - 8;
frmHueSettings.ShowModal;
pbHue.Repaint;
MouseLeave(msg);
end;
procedure TfrmDrawSettings.pbHuePaint(Sender: TObject);
var
hue: THue;
begin
if frmHueSettings <> nil then
begin
if frmHueSettings.lbHue.ItemIndex > 0 then
hue := ResMan.Hue.Hues[frmHueSettings.lbHue.ItemIndex - 1]
else
hue := nil;
TfrmHueSettings.DrawHue(hue, pbHue.Canvas, pbHue.Canvas.ClipRect,
frmHueSettings.lbHue.Items.Strings[frmHueSettings.lbHue.ItemIndex]);
end;
end;
procedure TfrmDrawSettings.seForceAltitudeChange(Sender: TObject);
begin
cbForceAltitude.Checked := True;
end;
procedure TfrmDrawSettings.seRandomHeightChange(Sender: TObject);
begin
cbRandomHeight.Checked := True;
end;
//TODO : canclose ---> hue settings
initialization
{$I UfrmDrawSettings.lrs}
end.

View File

@@ -1,120 +1,92 @@
object frmElevateSettings: TfrmElevateSettings
Left = 290
Height = 115
Top = 171
Width = 231
HorzScrollBar.Page = 230
HorzScrollBar.Range = 122
VertScrollBar.Page = 114
VertScrollBar.Range = 59
ActiveControl = rbRaise
AutoScroll = False
BorderIcons = []
BorderStyle = bsToolWindow
Caption = 'Elevate'
ClientHeight = 115
ClientWidth = 231
Font.Height = -11
OnClose = FormClose
OnDeactivate = FormDeactivate
LCLVersion = '0.9.25'
object Panel1: TPanel
Left = 8
Height = 67
Top = 8
Width = 215
Align = alTop
BorderSpacing.Around = 8
BevelOuter = bvNone
ClientHeight = 67
ClientWidth = 215
TabOrder = 0
object Panel2: TPanel
Height = 67
Width = 162
Align = alClient
BevelOuter = bvNone
ClientHeight = 67
ClientWidth = 162
ParentFont = True
TabOrder = 0
object rbRaise: TRadioButton
Height = 21
Width = 162
Align = alTop
Caption = 'Raise'
Checked = True
State = cbChecked
TabOrder = 2
end
object rbLower: TRadioButton
Height = 21
Top = 21
Width = 162
Align = alTop
Caption = 'Lower'
ParentFont = True
TabOrder = 0
end
object rbSet: TRadioButton
Height = 21
Top = 42
Width = 162
Align = alTop
Caption = 'Set'
ParentFont = True
TabOrder = 1
end
end
object Panel3: TPanel
Left = 162
Height = 67
Width = 53
Align = alRight
BevelOuter = bvNone
ClientHeight = 67
ClientWidth = 53
TabOrder = 1
object seZ: TSpinEdit
Left = 7
Height = 23
Top = 20
Width = 47
MaxValue = 127
MinValue = -128
ParentFont = True
TabOrder = 0
Value = 1
end
end
end
object Panel4: TPanel
Left = 8
Height = 23
Top = 83
Width = 215
Align = alTop
BorderSpacing.Around = 8
BevelOuter = bvNone
ClientHeight = 23
ClientWidth = 215
TabOrder = 1
object cbRandomHeight: TCheckBox
Height = 23
Width = 168
Align = alClient
Caption = 'Add Random Altitude'
ParentFont = True
TabOrder = 0
end
object seRandomHeight: TSpinEdit
Left = 168
Height = 23
Width = 47
Align = alRight
OnChange = seRandomHeightChange
ParentFont = True
TabOrder = 1
end
end
end
inherited frmElevateSettings: TfrmElevateSettings
Left = 290
Height = 114
Top = 171
Width = 250
Caption = 'Elevate'
ClientHeight = 114
ClientWidth = 250
object rbRaise: TRadioButton[0]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Owner
Left = 8
Height = 19
Top = 8
Width = 47
BorderSpacing.Left = 8
BorderSpacing.Top = 8
Caption = 'Raise'
Checked = True
State = cbChecked
TabOrder = 2
end
object rbLower: TRadioButton[1]
AnchorSideLeft.Control = rbRaise
AnchorSideTop.Control = rbRaise
AnchorSideTop.Side = asrBottom
Left = 8
Height = 19
Top = 27
Width = 52
Caption = 'Lower'
TabOrder = 0
TabStop = False
end
object rbSet: TRadioButton[2]
AnchorSideLeft.Control = rbLower
AnchorSideTop.Control = rbLower
AnchorSideTop.Side = asrBottom
Left = 8
Height = 19
Top = 46
Width = 36
Caption = 'Set'
TabOrder = 1
TabStop = False
end
object cbRandomHeight: TCheckBox[3]
AnchorSideLeft.Control = rbSet
AnchorSideTop.Control = rbSet
AnchorSideTop.Side = asrBottom
Left = 8
Height = 19
Top = 81
Width = 135
BorderSpacing.Top = 16
Caption = 'Add Random Altitude'
TabOrder = 3
end
object seRandomHeight: TSpinEdit[4]
AnchorSideLeft.Control = seZ
AnchorSideTop.Control = cbRandomHeight
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 197
Height = 25
Top = 78
Width = 45
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Right = 8
BorderSpacing.Bottom = 8
OnChange = seRandomHeightChange
TabOrder = 4
end
object seZ: TSpinEdit[5]
AnchorSideLeft.Control = rbSet
AnchorSideTop.Control = rbLower
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 197
Height = 25
Top = 24
Width = 45
Anchors = [akTop, akRight]
BorderSpacing.Right = 8
MaxValue = 127
MinValue = -128
TabOrder = 5
Value = 1
end
end

View File

@@ -21,7 +21,7 @@
* CDDL HEADER END
*
*
* Portions Copyright 2008 Andreas Schneider
* Portions Copyright 2009 Andreas Schneider
*)
unit UfrmElevateSettings;
@@ -30,29 +30,21 @@ unit UfrmElevateSettings;
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, LMessages,
LCLIntf, StdCtrls, Spin, ExtCtrls;
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls,
Spin, ExtCtrls, UfrmToolWindow;
type
{ TfrmElevateSettings }
TfrmElevateSettings = class(TForm)
TfrmElevateSettings = class(TfrmToolWindow)
cbRandomHeight: TCheckBox;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
rbRaise: TRadioButton;
rbLower: TRadioButton;
rbRaise: TRadioButton;
rbSet: TRadioButton;
seRandomHeight: TSpinEdit;
seZ: TSpinEdit;
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormDeactivate(Sender: TObject);
procedure seRandomHeightChange(Sender: TObject);
protected
procedure MouseLeave(var msg: TLMessage); message CM_MouseLeave;
public
{ public declarations }
end;
@@ -64,28 +56,11 @@ implementation
{ TfrmElevateSettings }
procedure TfrmElevateSettings.FormClose(Sender: TObject;
var CloseAction: TCloseAction);
begin
CloseAction := caHide;
end;
procedure TfrmElevateSettings.FormDeactivate(Sender: TObject);
begin
Close;
end;
procedure TfrmElevateSettings.seRandomHeightChange(Sender: TObject);
begin
cbRandomHeight.Checked := True;
end;
procedure TfrmElevateSettings.MouseLeave(var msg: TLMessage);
begin
if not PtInRect(ClientRect, ScreenToClient(Mouse.CursorPos)) then
Close;
end;
initialization
{$I UfrmElevateSettings.lrs}

View File

@@ -1,48 +1,59 @@
object frmHueSettings: TfrmHueSettings
Left = 290
Height = 208
Top = 171
Width = 217
BorderIcons = []
BorderStyle = bsToolWindow
Caption = 'Hue Settings'
ClientHeight = 208
ClientWidth = 217
Font.Height = -11
FormStyle = fsStayOnTop
OnClose = FormClose
OnCreate = FormCreate
OnDeactivate = FormDeactivate
LCLVersion = '0.9.25'
object lblHue: TLabel
Left = 8
Height = 13
Top = 16
Width = 27
Caption = 'Hue:'
ParentColor = False
ParentFont = True
end
object edHue: TEdit
Left = 48
Height = 23
Top = 10
Width = 80
OnEditingDone = edHueEditingDone
ParentFont = True
TabOrder = 0
end
object lbHue: TListBox
Left = 8
Height = 160
Top = 40
Width = 200
ItemHeight = 16
OnDrawItem = lbHueDrawItem
OnSelectionChange = lbHueSelectionChange
ParentFont = True
Style = lbOwnerDrawFixed
TabOrder = 1
TopIndex = -1
end
end
inherited frmHueSettings: TfrmHueSettings
Left = 290
Height = 209
Top = 171
Width = 217
Caption = 'Hue Settings'
ClientHeight = 209
ClientWidth = 217
OnCreate = FormCreate
object lblHue: TLabel[0]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = edHue
AnchorSideTop.Side = asrCenter
Left = 8
Height = 16
Top = 12
Width = 26
BorderSpacing.Left = 8
Caption = 'Hue:'
ParentColor = False
end
object edHue: TEdit[1]
AnchorSideLeft.Control = lblHue
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Owner
Left = 42
Height = 25
Top = 8
Width = 80
BorderSpacing.Left = 8
BorderSpacing.Top = 8
OnEditingDone = edHueEditingDone
TabOrder = 0
end
object lbHue: TListBox[2]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = edHue
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 8
Height = 160
Top = 41
Width = 201
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Around = 8
ItemHeight = 16
OnDrawItem = lbHueDrawItem
OnSelectionChange = lbHueSelectionChange
Style = lbOwnerDrawFixed
TabOrder = 1
end
inherited tmClose: TTimer[3]
left = 152
top = 112
end
end

View File

@@ -21,7 +21,7 @@
* CDDL HEADER END
*
*
* Portions Copyright 2007 Andreas Schneider
* Portions Copyright 2009 Andreas Schneider
*)
unit UfrmHueSettings;
@@ -31,25 +31,21 @@ interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls,
LMessages, LCLIntf, UHue;
UfrmToolWindow, UHue;
type
{ TfrmHueSettings }
TfrmHueSettings = class(TForm)
TfrmHueSettings = class(TfrmToolWindow)
edHue: TEdit;
lblHue: TLabel;
lbHue: TListBox;
procedure edHueEditingDone(Sender: TObject);
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure FormDeactivate(Sender: TObject);
procedure lbHueDrawItem(Control: TWinControl; Index: Integer; ARect: TRect;
State: TOwnerDrawState);
procedure lbHueSelectionChange(Sender: TObject; User: boolean);
protected
procedure MouseLeave(var msg: TLMessage); message CM_MouseLeave;
public
class procedure DrawHue(AHue: THue; ACanvas: TCanvas; ARect: TRect;
ACaption: string);
@@ -65,12 +61,6 @@ uses
{ TfrmHueSettings }
procedure TfrmHueSettings.FormClose(Sender: TObject;
var CloseAction: TCloseAction);
begin
CloseAction := caHide;
end;
procedure TfrmHueSettings.edHueEditingDone(Sender: TObject);
var
hueID: Integer;
@@ -98,11 +88,6 @@ begin
lbHue.ItemIndex := 0;
end;
procedure TfrmHueSettings.FormDeactivate(Sender: TObject);
begin
Close;
end;
procedure TfrmHueSettings.lbHueDrawItem(Control: TWinControl; Index: Integer;
ARect: TRect; State: TOwnerDrawState);
var
@@ -120,16 +105,6 @@ begin
edHue.Text := Format('$%x', [lbHue.ItemIndex]);
end;
procedure TfrmHueSettings.MouseLeave(var msg: TLMessage);
begin
try
if not PtInRect(ClientRect, ScreenToClient(Mouse.CursorPos)) then
Close;
except
Close;
end;
end;
class procedure TfrmHueSettings.DrawHue(AHue: THue; ACanvas: TCanvas; ARect: TRect;
ACaption: string);
var

View File

@@ -1,439 +1,481 @@
object frmMoveSettings: TfrmMoveSettings
Left = 290
Height = 113
Top = 171
Width = 236
ActiveControl = cbAsk
BorderIcons = []
BorderStyle = bsToolWindow
Caption = 'Move settings'
ClientHeight = 113
ClientWidth = 236
Font.Height = -11
FormStyle = fsStayOnTop
OnClose = FormClose
OnDeactivate = FormDeactivate
OnShow = FormShow
LCLVersion = '0.9.25'
object cbAsk: TCheckBox
Left = 128
Height = 21
Top = 16
Width = 102
Caption = 'Ask each time'
Checked = True
ParentFont = True
State = cbChecked
TabOrder = 0
end
object gbDirection: TGroupBox
Left = 8
Height = 96
Top = 8
Width = 105
ClientHeight = 92
ClientWidth = 101
ParentFont = True
TabOrder = 1
object btnTopLeft: TSpeedButton
Left = 6
Height = 22
Width = 23
Color = clBtnFace
Down = True
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000404040FF00000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000004040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000404040FF4040
40FF404040FF404040FF404040FF000000000000000000000000000000000000
00000000000000000000000000000000000000000000404040FF404040FF4040
40FF404040FF404040FF00000000000000000000000000000000000000000000
0000404040FF000000000000000000000000404040FF404040FF404040FF4040
40FF404040FF0000000000000000000000000000000000000000000000000000
0000404040FF404040FF00000000404040FF404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF404040FF404040FF0000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF404040FF000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF00000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF404040FF000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF404040FF404040FF0000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
}
GroupIndex = 1
NumGlyphs = 0
OnClick = btnTopLeftClick
ParentFont = True
end
object btnTop: TSpeedButton
Left = 38
Height = 22
Width = 23
Color = clBtnFace
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
000000000000404040FF404040FF404040FF404040FF404040FF404040FF4040
40FF404040FF404040FF404040FF000000000000000000000000000000000000
00000000000000000000404040FF404040FF404040FF404040FF404040FF4040
40FF404040FF404040FF00000000000000000000000000000000000000000000
0000000000000000000000000000404040FF404040FF404040FF404040FF4040
40FF404040FF0000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000404040FF404040FF0000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
}
GroupIndex = 1
NumGlyphs = 0
OnClick = btnTopLeftClick
ParentFont = True
end
object btnTopRight: TSpeedButton
Left = 70
Height = 22
Width = 23
Color = clBtnFace
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000404040FF000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000404040FF404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF00000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000404040FF404040FF404040FF404040FF404040FF000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000404040FF404040FF404040FF404040FF404040FF0000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000404040FF404040FF404040FF404040FF4040
40FF000000000000000000000000404040FF0000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF404040FF00000000404040FF404040FF0000000000000000000000000000
00000000000000000000000000000000000000000000404040FF404040FF4040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000404040FF4040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000004040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000404040FF4040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
00000000000000000000000000000000000000000000404040FF404040FF4040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
}
GroupIndex = 1
NumGlyphs = 0
OnClick = btnTopLeftClick
ParentFont = True
end
object btnRight: TSpeedButton
Left = 70
Height = 22
Top = 32
Width = 23
Color = clBtnFace
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF00000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF000000000000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF404040FF404040FF4040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF404040FF404040FF4040
40FF404040FF404040FF404040FF404040FF404040FF00000000000000000000
0000404040FF404040FF404040FF404040FF404040FF404040FF404040FF4040
40FF404040FF404040FF404040FF404040FF404040FF00000000000000000000
0000404040FF404040FF404040FF404040FF404040FF404040FF404040FF4040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF00000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
}
GroupIndex = 1
NumGlyphs = 0
OnClick = btnTopLeftClick
ParentFont = True
end
object btnBottomRight: TSpeedButton
Left = 70
Height = 22
Top = 64
Width = 23
Color = clBtnFace
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000404040FF404040FF4040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000404040FF4040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000004040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000404040FF4040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
00000000000000000000000000000000000000000000404040FF404040FF4040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF404040FF00000000404040FF404040FF0000000000000000000000000000
0000000000000000000000000000404040FF404040FF404040FF404040FF4040
40FF000000000000000000000000404040FF0000000000000000000000000000
00000000000000000000404040FF404040FF404040FF404040FF404040FF0000
0000000000000000000000000000000000000000000000000000000000000000
000000000000404040FF404040FF404040FF404040FF404040FF000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF00000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000404040FF404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000404040FF000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
}
GroupIndex = 1
NumGlyphs = 0
OnClick = btnTopLeftClick
ParentFont = True
end
object btnBottom: TSpeedButton
Left = 38
Height = 22
Top = 64
Width = 23
Color = clBtnFace
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000404040FF404040FF0000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000404040FF404040FF404040FF404040FF4040
40FF404040FF0000000000000000000000000000000000000000000000000000
00000000000000000000404040FF404040FF404040FF404040FF404040FF4040
40FF404040FF404040FF00000000000000000000000000000000000000000000
000000000000404040FF404040FF404040FF404040FF404040FF404040FF4040
40FF404040FF404040FF404040FF000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
}
GroupIndex = 1
NumGlyphs = 0
OnClick = btnTopLeftClick
ParentFont = True
end
object btnBottomLeft: TSpeedButton
Left = 6
Height = 22
Top = 64
Width = 23
Color = clBtnFace
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF404040FF404040FF0000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF404040FF000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF00000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF404040FF000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF404040FF404040FF0000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF00000000404040FF404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
0000404040FF000000000000000000000000404040FF404040FF404040FF4040
40FF404040FF0000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000404040FF404040FF4040
40FF404040FF404040FF00000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000404040FF4040
40FF404040FF404040FF404040FF000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000004040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000404040FF00000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
}
GroupIndex = 1
NumGlyphs = 0
OnClick = btnTopLeftClick
ParentFont = True
end
object btnLeft: TSpeedButton
Left = 6
Height = 22
Top = 32
Width = 23
Color = clBtnFace
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000404040FF404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF404040FF404040FF4040
40FF404040FF404040FF404040FF404040FF0000000000000000000000004040
40FF404040FF404040FF404040FF404040FF404040FF404040FF404040FF4040
40FF404040FF404040FF404040FF404040FF0000000000000000000000004040
40FF404040FF404040FF404040FF404040FF404040FF404040FF404040FF4040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF404040FF404040FF4040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
000000000000404040FF404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
}
GroupIndex = 1
NumGlyphs = 0
OnClick = btnTopLeftClick
ParentFont = True
end
object seOffset: TSpinEdit
Left = 33
Height = 23
Hint = 'Offset'
Top = 32
Width = 34
MaxValue = 8
MinValue = 1
ParentFont = True
ParentShowHint = False
ShowHint = True
TabOrder = 0
Value = 1
end
end
object btnCancel: TButton
Left = 128
Height = 25
Top = 80
Width = 103
BorderSpacing.InnerBorder = 4
Cancel = True
Caption = 'Cancel'
ModalResult = 2
ParentFont = True
TabOrder = 2
end
end
inherited frmMoveSettings: TfrmMoveSettings
Left = 290
Height = 120
Top = 171
Width = 232
ActiveControl = cbAsk
AutoSize = True
Caption = 'Move settings'
ClientHeight = 120
ClientWidth = 232
object cbAsk: TCheckBox[0]
AnchorSideLeft.Control = gbDirection
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = gbDirection
Left = 121
Height = 19
Top = 20
Width = 94
BorderSpacing.Left = 8
BorderSpacing.Top = 16
BorderSpacing.Right = 8
Caption = 'Ask each time'
Checked = True
State = cbChecked
TabOrder = 0
end
object gbDirection: TGroupBox[1]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Owner
Left = 8
Height = 108
Top = 4
Width = 105
AutoSize = True
BorderSpacing.Left = 4
BorderSpacing.Bottom = 4
BorderSpacing.Around = 4
ClientHeight = 90
ClientWidth = 101
TabOrder = 1
object btnTopLeft: TSpeedButton
AnchorSideLeft.Control = gbDirection
AnchorSideTop.Control = gbDirection
Left = 8
Height = 22
Top = 0
Width = 23
BorderSpacing.Left = 8
Color = clBtnFace
Down = True
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000404040FF00000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000004040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000404040FF4040
40FF404040FF404040FF404040FF000000000000000000000000000000000000
00000000000000000000000000000000000000000000404040FF404040FF4040
40FF404040FF404040FF00000000000000000000000000000000000000000000
0000404040FF000000000000000000000000404040FF404040FF404040FF4040
40FF404040FF0000000000000000000000000000000000000000000000000000
0000404040FF404040FF00000000404040FF404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF404040FF404040FF0000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF404040FF000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF00000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF404040FF000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF404040FF404040FF0000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
}
GroupIndex = 1
NumGlyphs = 0
OnClick = btnTopLeftClick
end
object btnTop: TSpeedButton
AnchorSideLeft.Control = btnTopLeft
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = gbDirection
Left = 39
Height = 22
Top = 0
Width = 23
BorderSpacing.Left = 8
Color = clBtnFace
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
000000000000404040FF404040FF404040FF404040FF404040FF404040FF4040
40FF404040FF404040FF404040FF000000000000000000000000000000000000
00000000000000000000404040FF404040FF404040FF404040FF404040FF4040
40FF404040FF404040FF00000000000000000000000000000000000000000000
0000000000000000000000000000404040FF404040FF404040FF404040FF4040
40FF404040FF0000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000404040FF404040FF0000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
}
GroupIndex = 1
NumGlyphs = 0
OnClick = btnTopLeftClick
end
object btnTopRight: TSpeedButton
AnchorSideLeft.Control = btnTop
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = gbDirection
Left = 70
Height = 22
Top = 0
Width = 23
BorderSpacing.Left = 8
Color = clBtnFace
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000404040FF000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000404040FF404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF00000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000404040FF404040FF404040FF404040FF404040FF000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000404040FF404040FF404040FF404040FF404040FF0000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000404040FF404040FF404040FF404040FF4040
40FF000000000000000000000000404040FF0000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF404040FF00000000404040FF404040FF0000000000000000000000000000
00000000000000000000000000000000000000000000404040FF404040FF4040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000404040FF4040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000004040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000404040FF4040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
00000000000000000000000000000000000000000000404040FF404040FF4040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
}
GroupIndex = 1
NumGlyphs = 0
OnClick = btnTopLeftClick
end
object btnRight: TSpeedButton
AnchorSideLeft.Control = btnTopRight
AnchorSideTop.Control = btnTopRight
AnchorSideTop.Side = asrBottom
Left = 70
Height = 22
Top = 30
Width = 23
BorderSpacing.Top = 8
BorderSpacing.Right = 8
Color = clBtnFace
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF00000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF000000000000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF404040FF404040FF4040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF404040FF404040FF4040
40FF404040FF404040FF404040FF404040FF404040FF00000000000000000000
0000404040FF404040FF404040FF404040FF404040FF404040FF404040FF4040
40FF404040FF404040FF404040FF404040FF404040FF00000000000000000000
0000404040FF404040FF404040FF404040FF404040FF404040FF404040FF4040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF00000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
}
GroupIndex = 1
NumGlyphs = 0
OnClick = btnTopLeftClick
end
object btnBottomRight: TSpeedButton
AnchorSideLeft.Control = btnRight
AnchorSideTop.Control = btnRight
AnchorSideTop.Side = asrBottom
Left = 70
Height = 22
Top = 60
Width = 23
BorderSpacing.Top = 8
Color = clBtnFace
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000404040FF404040FF4040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000404040FF4040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000004040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000404040FF4040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
00000000000000000000000000000000000000000000404040FF404040FF4040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF404040FF00000000404040FF404040FF0000000000000000000000000000
0000000000000000000000000000404040FF404040FF404040FF404040FF4040
40FF000000000000000000000000404040FF0000000000000000000000000000
00000000000000000000404040FF404040FF404040FF404040FF404040FF0000
0000000000000000000000000000000000000000000000000000000000000000
000000000000404040FF404040FF404040FF404040FF404040FF000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF00000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000404040FF404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000404040FF000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
}
GroupIndex = 1
NumGlyphs = 0
OnClick = btnTopLeftClick
end
object btnBottom: TSpeedButton
AnchorSideLeft.Control = btnBottomLeft
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = btnBottomLeft
Left = 39
Height = 22
Top = 60
Width = 23
BorderSpacing.Left = 8
BorderSpacing.Bottom = 8
Color = clBtnFace
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000404040FF404040FF0000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000404040FF404040FF404040FF404040FF4040
40FF404040FF0000000000000000000000000000000000000000000000000000
00000000000000000000404040FF404040FF404040FF404040FF404040FF4040
40FF404040FF404040FF00000000000000000000000000000000000000000000
000000000000404040FF404040FF404040FF404040FF404040FF404040FF4040
40FF404040FF404040FF404040FF000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
}
GroupIndex = 1
NumGlyphs = 0
OnClick = btnTopLeftClick
end
object btnBottomLeft: TSpeedButton
AnchorSideLeft.Control = btnLeft
AnchorSideTop.Control = btnLeft
AnchorSideTop.Side = asrBottom
Left = 8
Height = 22
Top = 60
Width = 23
BorderSpacing.Top = 8
Color = clBtnFace
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF404040FF404040FF0000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF404040FF000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF00000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF404040FF000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF404040FF404040FF0000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF00000000404040FF404040FF404040FF404040FF4040
40FF000000000000000000000000000000000000000000000000000000000000
0000404040FF000000000000000000000000404040FF404040FF404040FF4040
40FF404040FF0000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000404040FF404040FF4040
40FF404040FF404040FF00000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000404040FF4040
40FF404040FF404040FF404040FF000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000004040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000404040FF00000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
}
GroupIndex = 1
NumGlyphs = 0
OnClick = btnTopLeftClick
end
object btnLeft: TSpeedButton
AnchorSideLeft.Control = btnTopLeft
AnchorSideTop.Control = btnTop
AnchorSideTop.Side = asrBottom
Left = 8
Height = 22
Top = 30
Width = 23
BorderSpacing.Top = 8
Color = clBtnFace
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000404040FF404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF404040FF404040FF4040
40FF404040FF404040FF404040FF404040FF0000000000000000000000004040
40FF404040FF404040FF404040FF404040FF404040FF404040FF404040FF4040
40FF404040FF404040FF404040FF404040FF0000000000000000000000004040
40FF404040FF404040FF404040FF404040FF404040FF404040FF404040FF4040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
0000404040FF404040FF404040FF404040FF404040FF404040FF404040FF4040
40FF404040FF404040FF404040FF404040FF0000000000000000000000000000
000000000000404040FF404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000404040FF404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000404040FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
}
GroupIndex = 1
NumGlyphs = 0
OnClick = btnTopLeftClick
end
object seOffset: TSpinEdit
AnchorSideLeft.Control = btnTop
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = btnTop
AnchorSideTop.Side = asrBottom
Left = 33
Height = 25
Hint = 'Offset'
Top = 30
Width = 34
BorderSpacing.Top = 8
MaxValue = 8
MinValue = 1
ParentShowHint = False
ShowHint = True
TabOrder = 0
Value = 1
end
end
object btnCancel: TButton[2]
AnchorSideLeft.Control = gbDirection
AnchorSideLeft.Side = asrBottom
AnchorSideBottom.Control = gbDirection
AnchorSideBottom.Side = asrBottom
Left = 121
Height = 25
Top = 83
Width = 103
Anchors = [akLeft, akBottom]
BorderSpacing.Left = 8
BorderSpacing.Right = 8
BorderSpacing.Bottom = 4
BorderSpacing.InnerBorder = 4
Cancel = True
Caption = 'Cancel'
ModalResult = 2
TabOrder = 2
end
end

View File

@@ -1,152 +1,147 @@
(*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at
* http://www.opensource.org/licenses/cddl1.php.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at
* http://www.opensource.org/licenses/cddl1.php. If applicable,
* add the following below this CDDL HEADER, with the fields enclosed
* by brackets "[]" replaced with your own identifying * information:
* Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*
*
* Portions Copyright 2007 Andreas Schneider
*)
unit UfrmMoveSettings;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls,
Buttons, Spin, LMessages, LCLIntf, math;
type
{ TfrmMoveSettings }
TfrmMoveSettings = class(TForm)
btnCancel: TButton;
cbAsk: TCheckBox;
gbDirection: TGroupBox;
btnTopLeft: TSpeedButton;
btnTop: TSpeedButton;
btnTopRight: TSpeedButton;
btnRight: TSpeedButton;
btnBottomRight: TSpeedButton;
btnBottom: TSpeedButton;
btnBottomLeft: TSpeedButton;
btnLeft: TSpeedButton;
seOffset: TSpinEdit;
procedure btnTopLeftClick(Sender: TObject);
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormDeactivate(Sender: TObject);
procedure FormShow(Sender: TObject);
protected
procedure MouseLeave(var msg: TLMessage); message CM_MouseLeave;
public
function GetOffsetX: Integer;
function GetOffsetY: Integer;
end;
var
frmMoveSettings: TfrmMoveSettings;
implementation
uses
UdmNetwork, UfrmMain, UEnums;
{ TfrmMoveSettings }
procedure TfrmMoveSettings.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
CloseAction := caHide;
end;
procedure TfrmMoveSettings.FormDeactivate(Sender: TObject);
begin
if not (fsModal in FormState) then
Close;
end;
procedure TfrmMoveSettings.FormShow(Sender: TObject);
begin
btnCancel.Visible := (fsModal in FormState);
if dmNetwork.AccessLevel = alAdministrator then
seOffset.MaxValue := Max(frmMain.Landscape.CellWidth, frmMain.Landscape.CellHeight);
end;
procedure TfrmMoveSettings.MouseLeave(var msg: TLMessage);
begin
if Visible and (not (fsModal in FormState)) and
(not PtInRect(ClientRect, ScreenToClient(Mouse.CursorPos))) then
Close;
end;
function TfrmMoveSettings.GetOffsetX: Integer;
begin
if btnTopLeft.Down then
Result := -seOffset.Value
else if btnTop.Down then
Result := -seOffset.Value
else if btnTopRight.Down then
Result := 0
else if btnRight.Down then
Result := seOffset.Value
else if btnBottomRight.Down then
Result := seOffset.Value
else if btnBottom.Down then
Result := seOffset.Value
else if btnBottomLeft.Down then
Result := 0
else if btnLeft.Down then
Result := -seOffset.Value
else
Result := 0;
end;
function TfrmMoveSettings.GetOffsetY: Integer;
begin
if btnTopLeft.Down then
Result := 0
else if btnTop.Down then
Result := -seOffset.Value
else if btnTopRight.Down then
Result := -seOffset.Value
else if btnRight.Down then
Result := -seOffset.Value
else if btnBottomRight.Down then
Result := 0
else if btnBottom.Down then
Result := seOffset.Value
else if btnBottomLeft.Down then
Result := seOffset.Value
else if btnLeft.Down then
Result := seOffset.Value
else
Result := 0;
end;
procedure TfrmMoveSettings.btnTopLeftClick(Sender: TObject);
begin
ModalResult := mrYes;
end;
initialization
{$I UfrmMoveSettings.lrs}
end.
(*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at
* http://www.opensource.org/licenses/cddl1.php.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at
* http://www.opensource.org/licenses/cddl1.php. If applicable,
* add the following below this CDDL HEADER, with the fields enclosed
* by brackets "[]" replaced with your own identifying * information:
* Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*
*
* Portions Copyright 2009 Andreas Schneider
*)
unit UfrmMoveSettings;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls,
Buttons, Spin, ExtCtrls, Math, UfrmToolWindow;
type
{ TfrmMoveSettings }
TfrmMoveSettings = class(TfrmToolWindow)
btnCancel: TButton;
cbAsk: TCheckBox;
gbDirection: TGroupBox;
btnTopLeft: TSpeedButton;
btnTop: TSpeedButton;
btnTopRight: TSpeedButton;
btnRight: TSpeedButton;
btnBottomRight: TSpeedButton;
btnBottom: TSpeedButton;
btnBottomLeft: TSpeedButton;
btnLeft: TSpeedButton;
seOffset: TSpinEdit;
procedure btnTopLeftClick(Sender: TObject);
procedure FormDeactivate(Sender: TObject); override;
procedure FormShow(Sender: TObject); override;
protected
function CanClose: Boolean; override;
public
function GetOffsetX: Integer;
function GetOffsetY: Integer;
end;
var
frmMoveSettings: TfrmMoveSettings;
implementation
uses
UdmNetwork, UfrmMain, UEnums;
{ TfrmMoveSettings }
procedure TfrmMoveSettings.FormDeactivate(Sender: TObject);
begin
if not (fsModal in FormState) then
inherited FormDeactivate(Sender);
end;
procedure TfrmMoveSettings.FormShow(Sender: TObject);
begin
btnCancel.Visible := (fsModal in FormState);
if dmNetwork.AccessLevel = alAdministrator then
seOffset.MaxValue := Max(frmMain.Landscape.CellWidth, frmMain.Landscape.CellHeight);
inherited FormShow(Sender);
end;
function TfrmMoveSettings.CanClose: Boolean;
begin
Result := Visible and (not (fsModal in FormState)) and
inherited CanClose;
end;
function TfrmMoveSettings.GetOffsetX: Integer;
begin
if btnTopLeft.Down then
Result := -seOffset.Value
else if btnTop.Down then
Result := -seOffset.Value
else if btnTopRight.Down then
Result := 0
else if btnRight.Down then
Result := seOffset.Value
else if btnBottomRight.Down then
Result := seOffset.Value
else if btnBottom.Down then
Result := seOffset.Value
else if btnBottomLeft.Down then
Result := 0
else if btnLeft.Down then
Result := -seOffset.Value
else
Result := 0;
end;
function TfrmMoveSettings.GetOffsetY: Integer;
begin
if btnTopLeft.Down then
Result := 0
else if btnTop.Down then
Result := -seOffset.Value
else if btnTopRight.Down then
Result := -seOffset.Value
else if btnRight.Down then
Result := -seOffset.Value
else if btnBottomRight.Down then
Result := 0
else if btnBottom.Down then
Result := seOffset.Value
else if btnBottomLeft.Down then
Result := seOffset.Value
else if btnLeft.Down then
Result := seOffset.Value
else
Result := 0;
end;
procedure TfrmMoveSettings.btnTopLeftClick(Sender: TObject);
begin
ModalResult := mrYes;
end;
initialization
{$I UfrmMoveSettings.lrs}
end.

View File

@@ -0,0 +1,21 @@
object frmToolWindow: TfrmToolWindow
Left = 282
Height = 300
Top = 157
Width = 400
BorderIcons = []
BorderStyle = bsToolWindow
Caption = 'ToolWindow'
FormStyle = fsStayOnTop
OnClose = FormClose
OnDeactivate = FormDeactivate
OnShow = FormShow
ShowInTaskBar = stNever
LCLVersion = '0.9.29'
object tmClose: TTimer
Enabled = False
OnTimer = tmCloseTimer
left = 8
top = 8
end
end

View File

@@ -0,0 +1,103 @@
(*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at
* http://www.opensource.org/licenses/cddl1.php.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at
* http://www.opensource.org/licenses/cddl1.php. If applicable,
* add the following below this CDDL HEADER, with the fields enclosed
* by brackets "[]" replaced with your own identifying * information:
* Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*
*
* Portions Copyright 2009 Andreas Schneider
*)
unit UfrmToolWindow;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
LCLIntf, LMessages, ExtCtrls;
type
{ TfrmToolWindow }
TfrmToolWindow = class(TForm)
tmClose: TTimer;
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormDeactivate(Sender: TObject); virtual;
procedure FormShow(Sender: TObject); virtual;
procedure tmCloseTimer(Sender: TObject);
protected
function CanClose: Boolean; virtual;
procedure MouseLeave(var msg: TLMessage); message CM_MouseLeave;
public
{ public declarations }
end;
var
frmToolWindow: TfrmToolWindow;
implementation
{ TfrmToolWindow }
procedure TfrmToolWindow.FormDeactivate(Sender: TObject);
begin
Close;
end;
procedure TfrmToolWindow.FormClose(Sender: TObject;
var CloseAction: TCloseAction);
begin
CloseAction := caHide;
end;
procedure TfrmToolWindow.FormShow(Sender: TObject);
begin
Top := Mouse.CursorPos.y - 8;
Left := Mouse.CursorPos.x - 8;
OnDeactivate := nil;
tmClose.Enabled := True;
end;
procedure TfrmToolWindow.tmCloseTimer(Sender: TObject);
begin
tmClose.Enabled := False;
OnDeactivate := @FormDeactivate;
if CanClose then
Close;
end;
function TfrmToolWindow.CanClose: Boolean;
begin
Result := not PtInRect(ClientRect, ScreenToClient(Mouse.CursorPos));
end;
procedure TfrmToolWindow.MouseLeave(var msg: TLMessage);
begin
if CanClose then
Close;
end;
initialization
{$I UfrmToolWindow.lrs}
end.

View File

@@ -1,61 +1,56 @@
object frmVirtualLayer: TfrmVirtualLayer
Left = 290
Height = 80
Top = 171
Width = 212
BorderIcons = []
BorderStyle = bsToolWindow
Caption = 'Virtual Layer'
ClientHeight = 80
ClientWidth = 212
Font.Height = -11
OnClose = FormClose
OnDeactivate = FormDeactivate
LCLVersion = '0.9.25'
object tbZ: TTrackBar
Left = 8
Height = 33
Top = 39
Width = 196
Frequency = 10
Max = 127
Min = -128
OnChange = tbZChange
PageSize = 1
ScalePos = trTop
Align = alTop
BorderSpacing.Around = 8
TabOrder = 0
end
object Panel1: TPanel
Left = 8
Height = 23
Top = 8
Width = 196
Align = alTop
BorderSpacing.Around = 8
BevelOuter = bvNone
ClientHeight = 23
ClientWidth = 196
ParentFont = True
TabOrder = 1
object seZ: TSpinEdit
Left = 146
Height = 23
Width = 50
Align = alRight
MaxValue = 127
MinValue = -128
ParentFont = True
TabOrder = 0
end
object cbShowLayer: TCheckBox
Height = 23
Width = 146
Align = alClient
Caption = 'Show Layer at Z:'
ParentFont = True
TabOrder = 1
end
end
end
inherited frmVirtualLayer: TfrmVirtualLayer
Left = 290
Height = 82
Top = 171
Width = 210
Caption = 'Virtual Layer'
ClientHeight = 82
ClientWidth = 210
object tbZ: TTrackBar[0]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = seZ
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 8
Height = 33
Top = 41
Width = 194
Frequency = 10
Max = 127
Min = -128
OnChange = tbZChange
PageSize = 1
Position = 0
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 8
TabOrder = 0
end
object cbShowLayer: TCheckBox[1]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = seZ
AnchorSideTop.Side = asrCenter
Left = 8
Height = 19
Top = 11
Width = 106
BorderSpacing.Left = 8
Caption = 'Show Layer at Z:'
TabOrder = 1
end
object seZ: TSpinEdit[2]
AnchorSideTop.Control = Owner
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 152
Height = 25
Top = 8
Width = 50
Anchors = [akTop, akRight]
BorderSpacing.Top = 8
BorderSpacing.Right = 8
MaxValue = 127
MinValue = -128
TabOrder = 2
end
end

View File

@@ -1,93 +1,71 @@
(*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at
* http://www.opensource.org/licenses/cddl1.php.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at
* http://www.opensource.org/licenses/cddl1.php. If applicable,
* add the following below this CDDL HEADER, with the fields enclosed
* by brackets "[]" replaced with your own identifying * information:
* Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*
*
* Portions Copyright 2007 Andreas Schneider
*)
unit UfrmVirtualLayer;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, LCLIntf,
LMessages, StdCtrls, Spin, ComCtrls, ExtCtrls;
type
{ TfrmVirtualLayer }
TfrmVirtualLayer = class(TForm)
(*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at
* http://www.opensource.org/licenses/cddl1.php.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at
* http://www.opensource.org/licenses/cddl1.php. If applicable,
* add the following below this CDDL HEADER, with the fields enclosed
* by brackets "[]" replaced with your own identifying * information:
* Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*
*
* Portions Copyright 2009 Andreas Schneider
*)
unit UfrmVirtualLayer;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls,
Spin, ComCtrls, ExtCtrls, UfrmToolWindow;
type
{ TfrmVirtualLayer }
TfrmVirtualLayer = class(TfrmToolWindow)
cbShowLayer: TCheckBox;
Panel1: TPanel;
seZ: TSpinEdit;
tbZ: TTrackBar;
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormDeactivate(Sender: TObject);
procedure seZChange(Sender: TObject);
procedure tbZChange(Sender: TObject);
protected
procedure MouseLeave(var msg: TLMessage); message CM_MouseLeave;
public
{ public declarations }
end;
var
frmVirtualLayer: TfrmVirtualLayer;
implementation
{ TfrmVirtualLayer }
procedure TfrmVirtualLayer.FormClose(Sender: TObject;
var CloseAction: TCloseAction);
begin
CloseAction := caHide;
end;
procedure TfrmVirtualLayer.FormDeactivate(Sender: TObject);
begin
Close;
end;
procedure TfrmVirtualLayer.seZChange(Sender: TObject);
begin
tbZ.Position := seZ.Value;
end;
procedure TfrmVirtualLayer.tbZChange(Sender: TObject);
begin
seZ.Value := tbZ.Position;
end;
procedure TfrmVirtualLayer.MouseLeave(var msg: TLMessage);
begin
if not PtInRect(ClientRect, ScreenToClient(Mouse.CursorPos)) then
Close;
end;
initialization
{$I UfrmVirtualLayer.lrs}
end.
seZ: TSpinEdit;
tbZ: TTrackBar;
procedure seZChange(Sender: TObject);
procedure tbZChange(Sender: TObject);
public
{ public declarations }
end;
var
frmVirtualLayer: TfrmVirtualLayer;
implementation
{ TfrmVirtualLayer }
procedure TfrmVirtualLayer.seZChange(Sender: TObject);
begin
tbZ.Position := seZ.Value;
end;
procedure TfrmVirtualLayer.tbZChange(Sender: TObject);
begin
seZ.Value := tbZ.Position;
end;
initialization
{$I UfrmVirtualLayer.lrs}
end.