diff --git a/Client/CentrED.lpi b/Client/CentrED.lpi
index 7eb6eb7..30392a8 100644
--- a/Client/CentrED.lpi
+++ b/Client/CentrED.lpi
@@ -18,7 +18,7 @@
-
+
@@ -54,7 +54,7 @@
-
+
@@ -239,6 +239,13 @@
+
+
+
+
+
+
+
@@ -268,11 +275,6 @@
-
-
-
-
-
diff --git a/Client/CentrED.lpr b/Client/CentrED.lpr
index 9336e95..fb0e175 100644
--- a/Client/CentrED.lpr
+++ b/Client/CentrED.lpr
@@ -32,14 +32,14 @@ uses
cthreads,
{$ENDIF}{$ENDIF}
Interfaces, // this includes the LCL widgetset
- Forms, LResources, lnetvisual, LazOpenGLContext,
- UdmNetwork, UfrmMain, UfrmLogin, UfrmInitialize, UfrmAccountControl,
- virtualtreeview_package, UfrmEditAccount, UfrmDrawSettings, UfrmBoundaries,
- UfrmElevateSettings, UOverlayUI, UResourceManager, UfrmConfirmation,
- UfrmMoveSettings, UfrmAbout, UfrmHueSettings, UfrmRadar,
- UfrmLargeScaleCommand, UfrmVirtualLayer, UfrmFilter, UfrmTileInfo,
- UGUIPlatformUtils, UPlatformTypes, UfrmRegionControl, UPackets,
- UPacketHandlers, UAdminHandling, UGameResources, ULandscape;
+ Forms, LResources, lnetvisual, LazOpenGLContext, UdmNetwork, UfrmMain,
+ UfrmLogin, UfrmInitialize, UfrmAccountControl, virtualtreeview_package,
+ UfrmEditAccount, UfrmDrawSettings, UfrmBoundaries, UfrmElevateSettings,
+ UOverlayUI, UResourceManager, UfrmConfirmation, UfrmMoveSettings, UfrmAbout,
+ UfrmHueSettings, UfrmRadar, UfrmLargeScaleCommand, UfrmVirtualLayer,
+ UfrmFilter, UfrmTileInfo, UGUIPlatformUtils, UPlatformTypes,
+ UfrmRegionControl, UPackets, UPacketHandlers, UAdminHandling, UGameResources,
+ ULandscape, UfrmToolWindow;
{$IFDEF WINDOWS}{$R CentrED.rc}{$ENDIF}
diff --git a/Client/CentrED.rc b/Client/CentrED.rc
index dbc10bf..362bf30 100644
--- a/Client/CentrED.rc
+++ b/Client/CentrED.rc
@@ -1,5 +1,5 @@
1 VERSIONINFO
-FILEVERSION 0,4,2,87
+FILEVERSION 0,4,2,123
PRODUCTVERSION 0,4,2,85
{
BLOCK "StringFileInfo"
@@ -9,7 +9,7 @@ PRODUCTVERSION 0,4,2,85
VALUE "Comments", "\000"
VALUE "CompanyName", "AKS DataBasis\000"
VALUE "FileDescription", "UO CentrED\000"
- VALUE "FileVersion", "0.4.2.87\000"
+ VALUE "FileVersion", "0.4.2.123\000"
VALUE "InternalName", "\000"
VALUE "LegalCopyright", "Andreas Schneider\000"
VALUE "LegalTrademarks", "\000"
diff --git a/Client/Tools/UfrmBoundaries.lfm b/Client/Tools/UfrmBoundaries.lfm
index 41d70ff..1db4b5e 100644
--- a/Client/Tools/UfrmBoundaries.lfm
+++ b/Client/Tools/UfrmBoundaries.lfm
@@ -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
diff --git a/Client/Tools/UfrmBoundaries.pas b/Client/Tools/UfrmBoundaries.pas
index 6d7a51f..3dfbefc 100644
--- a/Client/Tools/UfrmBoundaries.pas
+++ b/Client/Tools/UfrmBoundaries.pas
@@ -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}
diff --git a/Client/Tools/UfrmDrawSettings.lfm b/Client/Tools/UfrmDrawSettings.lfm
index 688c042..cd31057 100644
--- a/Client/Tools/UfrmDrawSettings.lfm
+++ b/Client/Tools/UfrmDrawSettings.lfm
@@ -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
diff --git a/Client/Tools/UfrmDrawSettings.pas b/Client/Tools/UfrmDrawSettings.pas
index 8181422..388966c 100644
--- a/Client/Tools/UfrmDrawSettings.pas
+++ b/Client/Tools/UfrmDrawSettings.pas
@@ -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.
+
diff --git a/Client/Tools/UfrmElevateSettings.lfm b/Client/Tools/UfrmElevateSettings.lfm
index 0c16738..38f52b9 100644
--- a/Client/Tools/UfrmElevateSettings.lfm
+++ b/Client/Tools/UfrmElevateSettings.lfm
@@ -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
diff --git a/Client/Tools/UfrmElevateSettings.pas b/Client/Tools/UfrmElevateSettings.pas
index 2d37047..8fccdfb 100644
--- a/Client/Tools/UfrmElevateSettings.pas
+++ b/Client/Tools/UfrmElevateSettings.pas
@@ -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}
diff --git a/Client/Tools/UfrmHueSettings.lfm b/Client/Tools/UfrmHueSettings.lfm
index 0d005b3..cbf4c6b 100644
--- a/Client/Tools/UfrmHueSettings.lfm
+++ b/Client/Tools/UfrmHueSettings.lfm
@@ -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
diff --git a/Client/Tools/UfrmHueSettings.pas b/Client/Tools/UfrmHueSettings.pas
index 8ff6d13..ecf2d72 100644
--- a/Client/Tools/UfrmHueSettings.pas
+++ b/Client/Tools/UfrmHueSettings.pas
@@ -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
diff --git a/Client/Tools/UfrmMoveSettings.lfm b/Client/Tools/UfrmMoveSettings.lfm
index 63c05c3..48bb12b 100644
--- a/Client/Tools/UfrmMoveSettings.lfm
+++ b/Client/Tools/UfrmMoveSettings.lfm
@@ -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
diff --git a/Client/Tools/UfrmMoveSettings.pas b/Client/Tools/UfrmMoveSettings.pas
index c4930ae..0d1f738 100644
--- a/Client/Tools/UfrmMoveSettings.pas
+++ b/Client/Tools/UfrmMoveSettings.pas
@@ -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.
+
diff --git a/Client/Tools/UfrmToolWindow.lfm b/Client/Tools/UfrmToolWindow.lfm
new file mode 100644
index 0000000..808aa95
--- /dev/null
+++ b/Client/Tools/UfrmToolWindow.lfm
@@ -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
diff --git a/Client/Tools/UfrmToolWindow.pas b/Client/Tools/UfrmToolWindow.pas
new file mode 100644
index 0000000..c818b3a
--- /dev/null
+++ b/Client/Tools/UfrmToolWindow.pas
@@ -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.
+
diff --git a/Client/Tools/UfrmVirtualLayer.lfm b/Client/Tools/UfrmVirtualLayer.lfm
index a8ebb59..c486112 100644
--- a/Client/Tools/UfrmVirtualLayer.lfm
+++ b/Client/Tools/UfrmVirtualLayer.lfm
@@ -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
diff --git a/Client/Tools/UfrmVirtualLayer.pas b/Client/Tools/UfrmVirtualLayer.pas
index ec087c3..b3b20e7 100644
--- a/Client/Tools/UfrmVirtualLayer.pas
+++ b/Client/Tools/UfrmVirtualLayer.pas
@@ -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.
+
diff --git a/Client/UfrmMain.lfm b/Client/UfrmMain.lfm
index 057ecd6..1de2308 100644
--- a/Client/UfrmMain.lfm
+++ b/Client/UfrmMain.lfm
@@ -5,7 +5,7 @@ object frmMain: TfrmMain
Width = 766
ActiveControl = oglGameWindow
Caption = 'UO CentrED'
- ClientHeight = 580
+ ClientHeight = 583
ClientWidth = 766
Constraints.MinHeight = 603
Constraints.MinWidth = 766
@@ -17,12 +17,12 @@ object frmMain: TfrmMain
OnDestroy = FormDestroy
Position = poScreenCenter
ShowInTaskBar = stAlways
- LCLVersion = '0.9.27'
+ LCLVersion = '0.9.29'
WindowState = wsMaximized
object pnlBottom: TPanel
Left = 0
Height = 31
- Top = 549
+ Top = 552
Width = 766
Align = alBottom
BevelOuter = bvNone
@@ -33,7 +33,7 @@ object frmMain: TfrmMain
Left = 11
Height = 14
Top = 7
- Width = 11
+ Width = 10
Caption = 'X:'
ParentColor = False
end
@@ -41,7 +41,7 @@ object frmMain: TfrmMain
Left = 88
Height = 14
Top = 7
- Width = 10
+ Width = 9
Caption = 'Y:'
ParentColor = False
end
@@ -54,10 +54,10 @@ object frmMain: TfrmMain
ParentColor = False
end
object lblTip: TLabel
- Left = 528
+ Left = 534
Height = 31
Top = 0
- Width = 230
+ Width = 224
Align = alRight
Alignment = taRightJustify
BorderSpacing.Right = 8
@@ -66,10 +66,10 @@ object frmMain: TfrmMain
ParentColor = False
end
object lblTipC: TLabel
- Left = 498
+ Left = 511
Height = 31
Top = 0
- Width = 30
+ Width = 23
Align = alRight
Caption = 'Tip: '
Font.Height = -11
@@ -80,7 +80,7 @@ object frmMain: TfrmMain
end
object edX: TSpinEdit
Left = 24
- Height = 19
+ Height = 23
Top = 3
Width = 55
MaxValue = 100000
@@ -88,7 +88,7 @@ object frmMain: TfrmMain
end
object edY: TSpinEdit
Left = 104
- Height = 19
+ Height = 23
Top = 3
Width = 52
MaxValue = 100000
@@ -107,7 +107,7 @@ object frmMain: TfrmMain
end
object pcLeft: TPageControl
Left = 0
- Height = 525
+ Height = 528
Top = 24
Width = 224
ActivePage = tsTiles
@@ -116,13 +116,13 @@ object frmMain: TfrmMain
TabOrder = 1
object tsTiles: TTabSheet
Caption = 'Tiles'
- ClientHeight = 492
- ClientWidth = 218
+ ClientHeight = 502
+ ClientWidth = 216
object lblFilter: TLabel
AnchorSideLeft.Control = cbTerrain
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = cbTerrain
- Left = 81
+ Left = 75
Height = 14
Top = 8
Width = 30
@@ -139,9 +139,9 @@ object frmMain: TfrmMain
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = spTileList
Left = 4
- Height = 250
- Top = 56
- Width = 210
+ Height = 266
+ Top = 50
+ Width = 208
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Left = 4
BorderSpacing.Top = 4
@@ -193,13 +193,13 @@ object frmMain: TfrmMain
AnchorSideBottom.Side = asrBottom
Left = 0
Height = 181
- Top = 311
- Width = 218
+ Top = 321
+ Width = 216
Align = alBottom
Anchors = [akTop, akLeft, akRight, akBottom]
Caption = 'Random pool'
- ClientHeight = 167
- ClientWidth = 216
+ ClientHeight = 163
+ ClientWidth = 212
TabOrder = 1
object btnAddRandom: TSpeedButton
AnchorSideLeft.Control = gbRandom
@@ -359,10 +359,10 @@ object frmMain: TfrmMain
object btnRandomPresetSave: TSpeedButton
AnchorSideTop.Control = cbRandomPreset
AnchorSideRight.Control = btnRandomPresetDelete
- Left = 164
+ Left = 160
Height = 22
Hint = 'Save Preset'
- Top = 134
+ Top = 138
Width = 22
Anchors = [akTop, akRight]
BorderSpacing.Right = 4
@@ -413,10 +413,10 @@ object frmMain: TfrmMain
AnchorSideTop.Control = btnRandomPresetSave
AnchorSideRight.Control = gbRandom
AnchorSideRight.Side = asrBottom
- Left = 190
+ Left = 186
Height = 22
Hint = 'Delete Preset'
- Top = 134
+ Top = 138
Width = 22
Anchors = [akTop, akRight]
BorderSpacing.Right = 4
@@ -473,9 +473,9 @@ object frmMain: TfrmMain
AnchorSideBottom.Control = cbRandomPreset
Cursor = 63
Left = 4
- Height = 106
+ Height = 110
Top = 24
- Width = 208
+ Width = 204
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Left = 4
BorderSpacing.Top = 2
@@ -519,14 +519,14 @@ object frmMain: TfrmMain
AnchorSideBottom.Control = gbRandom
AnchorSideBottom.Side = asrBottom
Left = 4
- Height = 29
- Top = 134
- Width = 156
+ Height = 21
+ Top = 138
+ Width = 152
Anchors = [akLeft, akRight, akBottom]
BorderSpacing.Left = 4
BorderSpacing.Right = 4
BorderSpacing.Bottom = 4
- ItemHeight = 0
+ ItemHeight = 13
OnChange = cbRandomPresetChange
Style = csDropDownList
TabOrder = 1
@@ -539,8 +539,8 @@ object frmMain: TfrmMain
Cursor = crVSplit
Left = 0
Height = 5
- Top = 306
- Width = 218
+ Top = 316
+ Width = 216
Align = alNone
Anchors = [akLeft, akRight, akBottom]
ResizeAnchor = akBottom
@@ -550,10 +550,10 @@ object frmMain: TfrmMain
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = vdtTiles
AnchorSideBottom.Side = asrBottom
- Left = 110
- Height = 19
+ Left = 108
+ Height = 23
Hint = 'Append S or T to restrict the search to Statics or Terrain.'
- Top = 279
+ Top = 285
Width = 96
Anchors = [akRight, akBottom]
BorderSpacing.Right = 8
@@ -572,10 +572,10 @@ object frmMain: TfrmMain
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = tsTiles
AnchorSideRight.Side = asrBottom
- Left = 81
- Height = 19
+ Left = 75
+ Height = 23
Top = 22
- Width = 121
+ Width = 125
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Right = 16
OnEditingDone = edFilterEditingDone
@@ -586,10 +586,10 @@ object frmMain: TfrmMain
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = cbTerrain
AnchorSideTop.Side = asrBottom
- Left = 4
- Height = 22
- Top = 30
- Width = 60
+ Left = 5
+ Height = 19
+ Top = 27
+ Width = 53
Caption = 'Statics'
Checked = True
OnChange = cbStaticsChange
@@ -600,9 +600,9 @@ object frmMain: TfrmMain
AnchorSideLeft.Control = tsTiles
AnchorSideTop.Control = tsTiles
Left = 4
- Height = 22
+ Height = 19
Top = 8
- Width = 61
+ Width = 55
BorderSpacing.Left = 4
BorderSpacing.Top = 8
Caption = 'Terrain'
@@ -614,26 +614,25 @@ object frmMain: TfrmMain
end
object tsClients: TTabSheet
Caption = 'Clients'
- ClientHeight = 492
- ClientWidth = 218
+ ClientHeight = 502
+ ClientWidth = 216
object lbClients: TListBox
Left = 0
- Height = 492
+ Height = 502
Top = 0
- Width = 218
+ Width = 216
Align = alClient
ItemHeight = 0
OnDblClick = mnuGoToClientClick
PopupMenu = pmClients
Sorted = True
TabOrder = 0
- TopIndex = -1
end
end
object tsLocations: TTabSheet
Caption = 'Locations'
- ClientHeight = 492
- ClientWidth = 218
+ ClientHeight = 502
+ ClientWidth = 216
object btnClearLocations: TSpeedButton
AnchorSideLeft.Control = btnDeleteLocation
AnchorSideLeft.Side = asrBottom
@@ -641,7 +640,7 @@ object frmMain: TfrmMain
Left = 128
Height = 22
Hint = 'Clear'
- Top = 450
+ Top = 460
Width = 23
BorderSpacing.Left = 4
Color = clBtnFace
@@ -694,7 +693,7 @@ object frmMain: TfrmMain
Left = 101
Height = 22
Hint = 'Delete'
- Top = 450
+ Top = 460
Width = 23
Anchors = [akLeft, akBottom]
BorderSpacing.Bottom = 4
@@ -746,7 +745,7 @@ object frmMain: TfrmMain
Left = 74
Height = 22
Hint = 'Add'
- Top = 450
+ Top = 460
Width = 23
Anchors = [akTop, akRight]
BorderSpacing.Right = 4
@@ -800,9 +799,9 @@ object frmMain: TfrmMain
AnchorSideBottom.Control = btnDeleteLocation
Cursor = 63
Left = 4
- Height = 428
+ Height = 438
Top = 18
- Width = 210
+ Width = 208
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Around = 4
BorderStyle = bsSingle
@@ -817,7 +816,7 @@ object frmMain: TfrmMain
item
Position = 1
Text = 'Name'
- Width = 131
+ Width = 129
end>
Header.DefaultHeight = 17
Header.Options = [hoAutoResize, hoColumnResize, hoDrag, hoVisible]
@@ -1012,7 +1011,7 @@ object frmMain: TfrmMain
AnchorSideBottom.Control = spChat
Left = 224
Height = 22
- Top = 413
+ Top = 416
Width = 542
Anchors = [akLeft, akRight, akBottom]
BevelInner = bvRaised
@@ -1025,7 +1024,7 @@ object frmMain: TfrmMain
Left = 10
Height = 18
Top = 2
- Width = 104
+ Width = 101
Align = alLeft
BorderSpacing.Left = 8
Caption = 'Chat and Messages'
@@ -1046,7 +1045,7 @@ object frmMain: TfrmMain
AnchorSideBottom.Control = pnlBottom
Left = 224
Height = 109
- Top = 440
+ Top = 443
Width = 542
Anchors = [akTop, akLeft, akRight, akBottom]
BevelOuter = bvNone
@@ -1057,7 +1056,7 @@ object frmMain: TfrmMain
object vstChat: TVirtualStringTree
Cursor = 63
Left = 0
- Height = 90
+ Height = 86
Top = 0
Width = 542
Align = alClient
@@ -1095,8 +1094,8 @@ object frmMain: TfrmMain
end
object edChat: TEdit
Left = 0
- Height = 19
- Top = 90
+ Height = 23
+ Top = 86
Width = 542
Align = alBottom
OnKeyPress = edChatKeyPress
@@ -1111,7 +1110,7 @@ object frmMain: TfrmMain
Cursor = crVSplit
Left = 224
Height = 5
- Top = 435
+ Top = 438
Width = 542
Align = alNone
Anchors = [akLeft, akRight, akBottom]
@@ -1128,7 +1127,7 @@ object frmMain: TfrmMain
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = pnlChatHeader
Left = 224
- Height = 389
+ Height = 392
Top = 24
Width = 542
Anchors = [akTop, akLeft, akRight, akBottom]
diff --git a/Client/UfrmMain.pas b/Client/UfrmMain.pas
index 333f7a9..a2b6c9e 100644
--- a/Client/UfrmMain.pas
+++ b/Client/UfrmMain.pas
@@ -886,8 +886,6 @@ end;
procedure TfrmMain.acVirtualLayerExecute(Sender: TObject);
begin
- frmVirtualLayer.Left := Mouse.CursorPos.x - 8;
- frmVirtualLayer.Top := Mouse.CursorPos.y - 8;
frmVirtualLayer.Show;
end;
@@ -896,8 +894,6 @@ begin
acDraw.Checked := True;
tbDrawTile.Down := True;
mnuDraw.Checked := True;
- frmDrawSettings.Left := Mouse.CursorPos.x - 8;
- frmDrawSettings.Top := Mouse.CursorPos.y - 8;
frmDrawSettings.ShowModal;
ProcessToolState;
end;
@@ -912,8 +908,6 @@ end;
procedure TfrmMain.acBoundariesExecute(Sender: TObject);
begin
- frmBoundaries.Left := Mouse.CursorPos.x - 8;
- frmBoundaries.Top := Mouse.CursorPos.y - 8;
frmBoundaries.Show;
end;
@@ -923,8 +917,6 @@ begin
tbElevateTile.Down := True;
mnuElevate.Checked := True;
ProcessToolState;
- frmElevateSettings.Left := Mouse.CursorPos.x - 8;
- frmElevateSettings.Top := Mouse.CursorPos.y - 8;
frmElevateSettings.Show;
end;
@@ -951,8 +943,6 @@ begin
tbSetHue.Down := True;
mnuSetHue.Checked := True;
ProcessToolState;
- frmHueSettings.Left := Mouse.CursorPos.x - 8;
- frmHueSettings.Top := Mouse.CursorPos.y - 8;
frmHueSettings.Show;
end;
@@ -962,8 +952,6 @@ begin
tbMoveTile.Down := True;
mnuMove.Checked := True;
ProcessToolState;
- frmMoveSettings.Left := Mouse.CursorPos.x - 8;
- frmMoveSettings.Top := Mouse.CursorPos.y - 8;
frmMoveSettings.Show;
end;
@@ -2573,8 +2561,6 @@ function TfrmMain.ConfirmAction: Boolean;
begin
if acMove.Checked and frmMoveSettings.cbAsk.Checked then
begin
- frmMoveSettings.Left := Mouse.CursorPos.x - 8;
- frmMoveSettings.Top := Mouse.CursorPos.y - 8;
Result := frmMoveSettings.ShowModal = mrYes;
end else
begin
@@ -2582,6 +2568,7 @@ begin
frmConfirmation.Top := Mouse.CursorPos.y - frmConfirmation.btnYes.Top - frmConfirmation.btnYes.Height div 2;
Result := frmConfirmation.ShowModal = mrYes;
end;
+
if not oglGameWindow.MouseEntered then
oglGameWindowMouseLeave(nil);
end;
diff --git a/Client/UfrmTileInfo.lfm b/Client/UfrmTileInfo.lfm
index f1c7372..2ba2289 100644
--- a/Client/UfrmTileInfo.lfm
+++ b/Client/UfrmTileInfo.lfm
@@ -1,64 +1,69 @@
-object frmTileInfo: TfrmTileInfo
- Left = 290
- Height = 107
- Top = 171
- Width = 250
- HorzScrollBar.Page = 249
- VertScrollBar.Page = 106
- AutoSize = True
- BorderIcons = []
- BorderStyle = bsNone
- Caption = 'Tile info'
- ClientHeight = 107
- ClientWidth = 250
- Color = clInfoBk
- Constraints.MinWidth = 250
- Font.Color = clInfoText
- FormStyle = fsStayOnTop
- OnShow = FormShow
- object lblTileID: TLabel
- Left = 8
- Height = 17
- Top = 27
- Width = 234
- Align = alTop
- BorderSpacing.Left = 8
- BorderSpacing.Top = 2
- BorderSpacing.Right = 8
- BorderSpacing.Bottom = 8
- Font.Color = clInfoText
- Font.Style = [fsItalic]
- ParentColor = False
- end
- object lblFlags: TLabel
- Left = 8
- Height = 47
- Top = 52
- Width = 234
- Align = alTop
- BorderSpacing.Around = 8
- Font.Color = clInfoText
- ParentColor = False
- WordWrap = True
- end
- object lblName: TLabel
- Left = 8
- Height = 17
- Top = 8
- Width = 234
- Align = alTop
- BorderSpacing.Left = 8
- BorderSpacing.Top = 8
- BorderSpacing.Right = 8
- BorderSpacing.Bottom = 2
- Font.Style = [fsBold]
- ParentColor = False
- end
- object tmHide: TTimer
- Enabled = False
- Interval = 5000
- OnTimer = tmHideTimer
- left = 216
- top = 8
- end
-end
+object frmTileInfo: TfrmTileInfo
+ Left = 290
+ Height = 59
+ Top = 171
+ Width = 250
+ HorzScrollBar.Page = 249
+ VertScrollBar.Page = 106
+ AutoSize = True
+ BorderIcons = []
+ BorderStyle = bsNone
+ Caption = 'Tile info'
+ ClientHeight = 59
+ ClientWidth = 250
+ Color = clInfoBk
+ Constraints.MinWidth = 250
+ Font.Color = clInfoText
+ FormStyle = fsStayOnTop
+ OnShow = FormShow
+ ShowInTaskBar = stNever
+ LCLVersion = '0.9.29'
+ object lblTileID: TLabel
+ Left = 8
+ Height = 16
+ Top = 26
+ Width = 234
+ Align = alTop
+ BorderSpacing.Left = 8
+ BorderSpacing.Top = 2
+ BorderSpacing.Right = 8
+ BorderSpacing.Bottom = 8
+ Font.Color = clInfoText
+ Font.Style = [fsItalic]
+ ParentColor = False
+ ParentFont = False
+ end
+ object lblFlags: TLabel
+ Left = 8
+ Height = 1
+ Top = 50
+ Width = 234
+ Align = alTop
+ BorderSpacing.Around = 8
+ Font.Color = clInfoText
+ ParentColor = False
+ ParentFont = False
+ WordWrap = True
+ end
+ object lblName: TLabel
+ Left = 8
+ Height = 16
+ Top = 8
+ Width = 234
+ Align = alTop
+ BorderSpacing.Left = 8
+ BorderSpacing.Top = 8
+ BorderSpacing.Right = 8
+ BorderSpacing.Bottom = 2
+ Font.Style = [fsBold]
+ ParentColor = False
+ ParentFont = False
+ end
+ object tmHide: TTimer
+ Enabled = False
+ Interval = 5000
+ OnTimer = tmHideTimer
+ left = 216
+ top = 8
+ end
+end
diff --git a/Client/UfrmTileInfo.pas b/Client/UfrmTileInfo.pas
index ba9951c..74efbe8 100644
--- a/Client/UfrmTileInfo.pas
+++ b/Client/UfrmTileInfo.pas
@@ -1,186 +1,186 @@
-(*
- * 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 UfrmTileInfo;
-
-{$mode objfpc}{$H+}
-
-interface
-
-uses
- Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls,
- ExtCtrls, LCLIntf, LCLType, LMessages, strutils;
-
-type
-
- { TfrmTileInfo }
-
- TfrmTileInfo = class(TForm)
- lblName: TLabel;
- lblFlags: TLabel;
- lblTileID: TLabel;
- tmHide: TTimer;
- procedure FormShow(Sender: TObject);
- procedure tmHideTimer(Sender: TObject);
- private
- { private declarations }
- public
- procedure Update(ATileID: Word);
- //procedure Show; overload; reintroduce;
- procedure Show(ATileID: Word); overload;
- end;
-
-var
- frmTileInfo: TfrmTileInfo;
-
-implementation
-
-uses
- UGameResources, UTiledata;
-
-{ TfrmTileInfo }
-
-procedure TfrmTileInfo.tmHideTimer(Sender: TObject);
-begin
- tmHide.Enabled := False;
- Hide;
-end;
-
-procedure TfrmTileInfo.FormShow(Sender: TObject);
-begin
- tmHide.Enabled := True;
- Left := Mouse.CursorPos.x + 8;
- Top := Mouse.CursorPos.y + 8;
-end;
-
-procedure TfrmTileInfo.Update(ATileID: Word);
-var
- tileData: TTiledata;
- prefix, flags: string;
-
- procedure UpdateFlags(AFlag: LongWord; AName: string);
- begin
- if tileData.HasFlag(AFlag) then
- begin
- if flags <> '' then
- flags := flags + ', ' + AName
- else
- flags := AName;
- end;
- end;
-
-begin
- if Visible then
- begin
- Left := Mouse.CursorPos.x + 8;
- Top := Mouse.CursorPos.y + 8;
- end;
-
- flags := '';
-
- if ATileID < $4000 then
- begin
- tileData := ResMan.Tiledata.LandTiles[ATileID];
- if TLandTiledata(tileData).TextureID > 0 then
- flags := 'Stretchable';
- end else
- begin
- Dec(ATileID, $4000);
- tileData := ResMan.Tiledata.StaticTiles[ATileID];
- end;
-
- if tileData.HasFlag(tdfArticleA) then
- prefix := 'a '
- else if tileData.HasFlag(tdfArticleAn) then
- prefix := 'an '
- else
- prefix := '';
-
- lblName.Caption := AnsiProperCase(Format('%s%s', [prefix, tileData.TileName]), [' ']);
- lblTileID.Caption := Format('Tile ID: $%x (%0:d)', [ATileID]);
-
- UpdateFlags(tdfBackground, 'Background');
- UpdateFlags(tdfWeapon, 'Weapon');
- UpdateFlags(tdfTransparent, 'Transparent');
- UpdateFlags(tdfTranslucent, 'Translucent');
- UpdateFlags(tdfWall, 'Wall');
- UpdateFlags(tdfDamaging, 'Damaging');
- UpdateFlags(tdfImpassable, 'Impassable');
- UpdateFlags(tdfWet, 'Wet');
- UpdateFlags(tdfSurface, 'Surface');
- UpdateFlags(tdfBridge, 'Bridge');
- UpdateFlags(tdfGeneric, 'Generic');
- UpdateFlags(tdfWindow, 'Window');
- UpdateFlags(tdfNoShoot, 'NoShoot');
- UpdateFlags(tdfInternal, 'Internal');
- UpdateFlags(tdfFoliage, 'Foliage');
- UpdateFlags(tdfPartialHue, 'PartialHue');
- UpdateFlags(tdfMap, 'Map');
- UpdateFlags(tdfContainer, 'Container');
- UpdateFlags(tdfWearable, 'Wearable');
- UpdateFlags(tdfLightSource, 'Lightsource');
- UpdateFlags(tdfAnimation, 'Animation');
- UpdateFlags(tdfNoDiagonal, 'NoDiagonal');
- UpdateFlags(tdfArmor, 'Armor');
- UpdateFlags(tdfRoof, 'Roof');
- UpdateFlags(tdfDoor, 'Door');
- UpdateFlags(tdfStairBack, 'StairBack');
- UpdateFlags(tdfStairRight, 'StairRight');
-
- lblFlags.Caption := Format('Flags = [%s]', [flags]);
-
- if tmHide.Enabled then
- begin
- tmHide.Enabled := False;
- tmHide.Enabled := True; //Refresh timer
- end;
-end;
-
-{procedure TfrmTileInfo.Show;
-begin
- ShowWindow(Handle, SW_SHOWNOACTIVATE);
- Include(FormState, fsVisible);
- VisibleChanging;
- try
- Perform(CM_VISIBLECHANGED, WParam(Ord(True)), 0);
- AdjustSize;
- RequestAlign;
- finally
- VisibleChanged;
- end;
- //FormShow(Self);
-end;}
-
-procedure TfrmTileInfo.Show(ATileID: Word);
-begin
- Update(ATileID);
- Show;
-end;
-
-initialization
- {$I UfrmTileInfo.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 2007 Andreas Schneider
+ *)
+unit UfrmTileInfo;
+
+{$mode objfpc}{$H+}
+
+interface
+
+uses
+ Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls,
+ ExtCtrls, LCLIntf, LCLType, LMessages, strutils;
+
+type
+
+ { TfrmTileInfo }
+
+ TfrmTileInfo = class(TForm)
+ lblName: TLabel;
+ lblFlags: TLabel;
+ lblTileID: TLabel;
+ tmHide: TTimer;
+ procedure FormShow(Sender: TObject);
+ procedure tmHideTimer(Sender: TObject);
+ private
+ { private declarations }
+ public
+ procedure Update(ATileID: Word);
+ //procedure Show; overload; reintroduce;
+ procedure Show(ATileID: Word); overload;
+ end;
+
+var
+ frmTileInfo: TfrmTileInfo;
+
+implementation
+
+uses
+ UGameResources, UTiledata;
+
+{ TfrmTileInfo }
+
+procedure TfrmTileInfo.tmHideTimer(Sender: TObject);
+begin
+ tmHide.Enabled := False;
+ Hide;
+end;
+
+procedure TfrmTileInfo.FormShow(Sender: TObject);
+begin
+ tmHide.Enabled := True;
+ Left := Mouse.CursorPos.x + 8;
+ Top := Mouse.CursorPos.y + 8;
+end;
+
+procedure TfrmTileInfo.Update(ATileID: Word);
+var
+ tileData: TTiledata;
+ prefix, flags: string;
+
+ procedure UpdateFlags(AFlag: LongWord; AName: string);
+ begin
+ if tileData.HasFlag(AFlag) then
+ begin
+ if flags <> '' then
+ flags := flags + ', ' + AName
+ else
+ flags := AName;
+ end;
+ end;
+
+begin
+ if Visible then
+ begin
+ Left := Mouse.CursorPos.x + 8;
+ Top := Mouse.CursorPos.y + 8;
+ end;
+
+ flags := '';
+
+ if ATileID < $4000 then
+ begin
+ tileData := ResMan.Tiledata.LandTiles[ATileID];
+ if TLandTiledata(tileData).TextureID > 0 then
+ flags := 'Stretchable';
+ end else
+ begin
+ Dec(ATileID, $4000);
+ tileData := ResMan.Tiledata.StaticTiles[ATileID];
+ end;
+
+ if tileData.HasFlag(tdfArticleA) then
+ prefix := 'a '
+ else if tileData.HasFlag(tdfArticleAn) then
+ prefix := 'an '
+ else
+ prefix := '';
+
+ lblName.Caption := AnsiProperCase(Format('%s%s', [prefix, tileData.TileName]), [' ']);
+ lblTileID.Caption := Format('Tile ID: $%x (%0:d)', [ATileID]);
+
+ UpdateFlags(tdfBackground, 'Background');
+ UpdateFlags(tdfWeapon, 'Weapon');
+ UpdateFlags(tdfTransparent, 'Transparent');
+ UpdateFlags(tdfTranslucent, 'Translucent');
+ UpdateFlags(tdfWall, 'Wall');
+ UpdateFlags(tdfDamaging, 'Damaging');
+ UpdateFlags(tdfImpassable, 'Impassable');
+ UpdateFlags(tdfWet, 'Wet');
+ UpdateFlags(tdfSurface, 'Surface');
+ UpdateFlags(tdfBridge, 'Bridge');
+ UpdateFlags(tdfGeneric, 'Generic');
+ UpdateFlags(tdfWindow, 'Window');
+ UpdateFlags(tdfNoShoot, 'NoShoot');
+ UpdateFlags(tdfInternal, 'Internal');
+ UpdateFlags(tdfFoliage, 'Foliage');
+ UpdateFlags(tdfPartialHue, 'PartialHue');
+ UpdateFlags(tdfMap, 'Map');
+ UpdateFlags(tdfContainer, 'Container');
+ UpdateFlags(tdfWearable, 'Wearable');
+ UpdateFlags(tdfLightSource, 'Lightsource');
+ UpdateFlags(tdfAnimation, 'Animation');
+ UpdateFlags(tdfNoDiagonal, 'NoDiagonal');
+ UpdateFlags(tdfArmor, 'Armor');
+ UpdateFlags(tdfRoof, 'Roof');
+ UpdateFlags(tdfDoor, 'Door');
+ UpdateFlags(tdfStairBack, 'StairBack');
+ UpdateFlags(tdfStairRight, 'StairRight');
+
+ lblFlags.Caption := Format('Flags = [%s]', [flags]);
+
+ if tmHide.Enabled then
+ begin
+ tmHide.Enabled := False;
+ tmHide.Enabled := True; //Refresh timer
+ end;
+end;
+
+{procedure TfrmTileInfo.Show;
+begin
+ ShowWindow(Handle, SW_SHOWNOACTIVATE);
+ Include(FormState, fsVisible);
+ VisibleChanging;
+ try
+ Perform(CM_VISIBLECHANGED, WParam(Ord(True)), 0);
+ AdjustSize;
+ RequestAlign;
+ finally
+ VisibleChanged;
+ end;
+ //FormShow(Self);
+end;}
+
+procedure TfrmTileInfo.Show(ATileID: Word);
+begin
+ Update(ATileID);
+ Show;
+end;
+
+initialization
+ {$I UfrmTileInfo.lrs}
+
+end.
+