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