mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-01 08:36:09 +02:00
IDE: Add option to enable/disable Anchordocking and DockedFormEdit (initial setup dialog, and options)
This commit is contained in:
parent
c9afc8aa72
commit
ca4538b235
@ -89,6 +89,15 @@ resourcestring
|
||||
adrsFloatingWindowsOnTopHint = 'Show floating windows on top of main form';
|
||||
adrsFlatHeadersButtons = 'Flat header buttons';
|
||||
adrsFlatHeadersButtonsHint = 'Flat buttons in headers of docked controls';
|
||||
setupMultiWindowIDEDisplayIndi = 'Multi Window IDE: Display individual separate Windows'
|
||||
+' in the IDE';
|
||||
setupSingleWindowIDEDisplayASi = 'Single Window IDE: Display a single Window holding '
|
||||
+'all parts of the IDE (Docked)';
|
||||
setupSingleWindowModeAllowsYou = 'Single Window mode allows you to undock individual '
|
||||
+'Windows and have several group of Windows. The IDE will show additional "Dock-Handles" in '
|
||||
+'each Window, which will allow you to change layout, but also require additional space.';
|
||||
SDisable = 'Disabled (requires restart)';
|
||||
SIDELayout = 'IDE Layout';
|
||||
|
||||
implementation
|
||||
|
||||
|
@ -51,6 +51,29 @@ type
|
||||
procedure Assign(Source: TAbstractDesktopDockingOpt); override;
|
||||
end;
|
||||
|
||||
{ TAnchorDockGlobalOptions }
|
||||
|
||||
TAnchorDockGlobalOptions = class
|
||||
private
|
||||
FDoneAskUserEnableAnchorDock: boolean;
|
||||
FEnableAnchorDock: boolean;
|
||||
public
|
||||
constructor Create;
|
||||
procedure SaveSafe;
|
||||
procedure LoadSafe;
|
||||
procedure SaveToFile(AFilename: String);
|
||||
procedure LoadFromFile(AFilename: String);
|
||||
public
|
||||
property EnableAnchorDock: boolean read FEnableAnchorDock write FEnableAnchorDock default False;
|
||||
property DoneAskUserEnableAnchorDock: boolean read FDoneAskUserEnableAnchorDock write FDoneAskUserEnableAnchorDock default False;
|
||||
end;
|
||||
|
||||
const
|
||||
AnchorDockedGlobalOptionsFileName = 'anchordockingoptions.xml';
|
||||
|
||||
var
|
||||
AnchorDockGlobalOptions: TAnchorDockGlobalOptions = nil;
|
||||
|
||||
implementation
|
||||
|
||||
{ TAnchorDesktopOpt }
|
||||
@ -297,6 +320,59 @@ begin
|
||||
Result := DockMaster.FullRestoreLayout(FTree,True);
|
||||
end;
|
||||
|
||||
{ TAnchorDockGlobalOptions }
|
||||
|
||||
constructor TAnchorDockGlobalOptions.Create;
|
||||
begin
|
||||
//
|
||||
end;
|
||||
|
||||
procedure TAnchorDockGlobalOptions.SaveSafe;
|
||||
begin
|
||||
try
|
||||
SaveToFile(AnchorDockedGlobalOptionsFileName);
|
||||
except
|
||||
on E: Exception do
|
||||
LazLoggerBase.DebugLn(['Error: (lazarus) [TAnchorDockGlobalOptions.SaveSafe] ', E.Message]);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TAnchorDockGlobalOptions.LoadSafe;
|
||||
begin
|
||||
try
|
||||
LoadFromFile(AnchorDockedGlobalOptionsFileName);
|
||||
except
|
||||
on E: Exception do
|
||||
LazLoggerBase.DebugLn(['Error: (lazarus) [TAnchorDockGlobalOptions.LoadSafe] ', E.Message]);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TAnchorDockGlobalOptions.SaveToFile(AFilename: String);
|
||||
var
|
||||
Cfg: TConfigStorage;
|
||||
begin
|
||||
Cfg := GetIDEConfigStorage(AFilename, False);
|
||||
try
|
||||
Cfg.SetDeleteValue('EnableAnchorDock/Value', EnableAnchorDock, False);
|
||||
Cfg.SetDeleteValue('DoneAskUserEnableAnchorDock/Value', DoneAskUserEnableAnchorDock, False);
|
||||
finally
|
||||
Cfg.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TAnchorDockGlobalOptions.LoadFromFile(AFilename: String);
|
||||
var
|
||||
Cfg: TConfigStorage;
|
||||
begin
|
||||
Cfg := GetIDEConfigStorage(AFilename, True);
|
||||
try
|
||||
EnableAnchorDock := Cfg.GetValue('EnableAnchorDock/Value', False);
|
||||
DoneAskUserEnableAnchorDock := Cfg.GetValue('DoneAskUserEnableAnchorDock/Value', False);
|
||||
finally
|
||||
Cfg.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
initialization
|
||||
|
||||
{$I ADLayoutDefault.lrs}
|
||||
|
@ -0,0 +1,68 @@
|
||||
object AnchorDockSetupFrame: TAnchorDockSetupFrame
|
||||
Left = 0
|
||||
Height = 240
|
||||
Top = 0
|
||||
Width = 320
|
||||
ChildSizing.LeftRightSpacing = 5
|
||||
ChildSizing.TopBottomSpacing = 5
|
||||
ChildSizing.HorizontalSpacing = 2
|
||||
ChildSizing.VerticalSpacing = 5
|
||||
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
|
||||
ChildSizing.ShrinkHorizontal = crsHomogenousChildResize
|
||||
ChildSizing.Layout = cclLeftToRightThenTopToBottom
|
||||
ChildSizing.ControlsPerLine = 2
|
||||
ClientHeight = 240
|
||||
ClientWidth = 320
|
||||
TabOrder = 0
|
||||
DesignLeft = 342
|
||||
DesignTop = 289
|
||||
object rbMulti: TRadioButton
|
||||
Left = 5
|
||||
Height = 17
|
||||
Top = 5
|
||||
Width = 25
|
||||
Constraints.MaxWidth = 25
|
||||
TabOrder = 0
|
||||
OnChange = rbMultiChange
|
||||
end
|
||||
object lbMulti: TLabel
|
||||
Left = 32
|
||||
Height = 17
|
||||
Top = 5
|
||||
Width = 283
|
||||
Caption = 'lbMulti'
|
||||
WordWrap = True
|
||||
OnClick = lbMultiClick
|
||||
end
|
||||
object rbSingle: TRadioButton
|
||||
Left = 5
|
||||
Height = 17
|
||||
Top = 27
|
||||
Width = 25
|
||||
TabOrder = 1
|
||||
OnChange = rbMultiChange
|
||||
end
|
||||
object lbSingle: TLabel
|
||||
Left = 32
|
||||
Height = 17
|
||||
Top = 27
|
||||
Width = 283
|
||||
Caption = 'lbSingle'
|
||||
WordWrap = True
|
||||
OnClick = lbSingleClick
|
||||
end
|
||||
object Label1: TLabel
|
||||
Left = 5
|
||||
Height = 15
|
||||
Top = 49
|
||||
Width = 25
|
||||
end
|
||||
object lbInfo: TLabel
|
||||
Left = 32
|
||||
Height = 15
|
||||
Top = 49
|
||||
Width = 283
|
||||
Caption = 'lbInfo'
|
||||
WordWrap = True
|
||||
end
|
||||
end
|
@ -0,0 +1,198 @@
|
||||
unit AnchorDockDsgnInitialSetupFrame;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, Forms, Controls, StdCtrls, LazarusPackageIntf, AnchorDockStr, IDEWindowIntf,
|
||||
AnchorDesktopOptions;
|
||||
|
||||
type
|
||||
|
||||
TAnchorDockDsgnSetup = class;
|
||||
|
||||
{ TAnchorDockSetupFrame }
|
||||
|
||||
TAnchorDockSetupFrame = class(TFrame)
|
||||
Label1: TLabel;
|
||||
lbInfo: TLabel;
|
||||
lbMulti: TLabel;
|
||||
lbSingle: TLabel;
|
||||
rbMulti: TRadioButton;
|
||||
rbSingle: TRadioButton;
|
||||
procedure lbMultiClick(Sender: TObject);
|
||||
procedure lbSingleClick(Sender: TObject);
|
||||
procedure rbMultiChange(Sender: TObject);
|
||||
private
|
||||
FDialog: ISetupDlgProvider;
|
||||
FSetup: TAnchorDockDsgnSetup;
|
||||
FChanged: Boolean;
|
||||
public
|
||||
procedure Init;
|
||||
end;
|
||||
|
||||
{ TAnchorDockDsgnSetup }
|
||||
|
||||
TAnchorDockDsgnSetup = class(TObject, ISetupDlgFrame)
|
||||
private
|
||||
FTheFrame: TAnchorDockSetupFrame;
|
||||
FInitDone: Boolean;
|
||||
public
|
||||
destructor Destroy; override;
|
||||
function RequireSetup: boolean;
|
||||
procedure AddToDialog(AnOwner, AParent: TComponent; // AParent: TWinControl that will hold the frame
|
||||
ADialog: ISetupDlgProvider
|
||||
);
|
||||
procedure Init;
|
||||
procedure Done;
|
||||
function Caption: String;
|
||||
function SortOrder: Integer;
|
||||
function UniqueId: String;
|
||||
function GroupId: String;
|
||||
procedure PageSelected(AnUserActivated: Boolean);
|
||||
procedure UpdateState;
|
||||
procedure ApplySelection; // Called when the IDE gets started
|
||||
function Internal: TObject;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
var
|
||||
Registration: TAnchorDockDsgnSetup;
|
||||
|
||||
{$R *.lfm}
|
||||
|
||||
{ TAnchorDockSetupFrame }
|
||||
|
||||
procedure TAnchorDockSetupFrame.lbMultiClick(Sender: TObject);
|
||||
begin
|
||||
rbMulti.Checked := True;
|
||||
end;
|
||||
|
||||
procedure TAnchorDockSetupFrame.lbSingleClick(Sender: TObject);
|
||||
begin
|
||||
rbSingle.Checked := True;
|
||||
end;
|
||||
|
||||
procedure TAnchorDockSetupFrame.rbMultiChange(Sender: TObject);
|
||||
begin
|
||||
FChanged := True;
|
||||
FDialog.FrameStateChanged(FSetup, issOk, isaReady);
|
||||
end;
|
||||
|
||||
procedure TAnchorDockSetupFrame.Init;
|
||||
begin
|
||||
lbMulti.Caption := setupMultiWindowIDEDisplayIndi;
|
||||
lbSingle.Caption := setupSingleWindowIDEDisplayASi;
|
||||
lbInfo.Caption := setupSingleWindowModeAllowsYou;
|
||||
end;
|
||||
|
||||
{ TAnchorDockDsgnSetup }
|
||||
|
||||
destructor TAnchorDockDsgnSetup.Destroy;
|
||||
begin
|
||||
FreeAndNil(FTheFrame);
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
function TAnchorDockDsgnSetup.RequireSetup: boolean;
|
||||
begin
|
||||
if AnchorDockGlobalOptions = nil then exit(False);
|
||||
AnchorDockGlobalOptions.LoadSafe;
|
||||
Result := not AnchorDockGlobalOptions.DoneAskUserEnableAnchorDock;
|
||||
end;
|
||||
|
||||
procedure TAnchorDockDsgnSetup.AddToDialog(AnOwner, AParent: TComponent; ADialog: ISetupDlgProvider
|
||||
);
|
||||
begin
|
||||
FTheFrame := TAnchorDockSetupFrame.Create(AnOwner);
|
||||
FTheFrame.Parent := AParent as TWinControl;
|
||||
FTheFrame.Align := alClient;
|
||||
FTheFrame.FDialog := ADialog;
|
||||
FTheFrame.FSetup := Self;
|
||||
FTheFrame.Init;
|
||||
|
||||
ADialog.SetGroupCaption(GroupId, SIDELayout);
|
||||
end;
|
||||
|
||||
procedure TAnchorDockDsgnSetup.Init;
|
||||
begin
|
||||
if AnchorDockGlobalOptions = nil then exit;
|
||||
AnchorDockGlobalOptions.LoadSafe;
|
||||
end;
|
||||
|
||||
procedure TAnchorDockDsgnSetup.Done;
|
||||
begin
|
||||
FTheFrame := nil;
|
||||
end;
|
||||
|
||||
function TAnchorDockDsgnSetup.Caption: String;
|
||||
begin
|
||||
Result := 'Single/Multi Window';
|
||||
end;
|
||||
|
||||
function TAnchorDockDsgnSetup.SortOrder: Integer;
|
||||
begin
|
||||
Result := -2;
|
||||
end;
|
||||
|
||||
function TAnchorDockDsgnSetup.UniqueId: String;
|
||||
begin
|
||||
Result := '{56782628-36B2-4082-9F9B-C4A1CABC7A98}';
|
||||
end;
|
||||
|
||||
function TAnchorDockDsgnSetup.GroupId: String;
|
||||
begin
|
||||
Result := '{62435B06-4C68-4D77-A4BC-2496E35DF59C}';
|
||||
end;
|
||||
|
||||
procedure TAnchorDockDsgnSetup.PageSelected(AnUserActivated: Boolean);
|
||||
begin
|
||||
if AnUserActivated then begin
|
||||
FTheFrame.FChanged := True;
|
||||
FTheFrame.FDialog.FrameStateChanged(Self, issOk, isaReady);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TAnchorDockDsgnSetup.UpdateState;
|
||||
begin
|
||||
if not FInitDone then begin
|
||||
FTheFrame.rbSingle.Checked := AnchorDockGlobalOptions.EnableAnchorDock;
|
||||
FTheFrame.rbMulti.Checked := not AnchorDockGlobalOptions.EnableAnchorDock;
|
||||
FTheFrame.FChanged := AnchorDockGlobalOptions.DoneAskUserEnableAnchorDock;
|
||||
end;
|
||||
FInitDone := True;
|
||||
|
||||
if (not FTheFrame.FChanged) then
|
||||
FTheFrame.FDialog.FrameStateChanged(Self, issInfo, isaReady)
|
||||
else
|
||||
FTheFrame.FDialog.FrameStateChanged(Self, issOk, isaReady);
|
||||
|
||||
end;
|
||||
|
||||
procedure TAnchorDockDsgnSetup.ApplySelection;
|
||||
begin
|
||||
if AnchorDockGlobalOptions = nil then exit;
|
||||
AnchorDockGlobalOptions.DoneAskUserEnableAnchorDock := True;
|
||||
AnchorDockGlobalOptions.EnableAnchorDock := FTheFrame.rbSingle.Checked;
|
||||
AnchorDockGlobalOptions.SaveSafe;
|
||||
|
||||
if not AnchorDockGlobalOptions.EnableAnchorDock then
|
||||
OnIDEDockMasterNeeded := nil;
|
||||
end;
|
||||
|
||||
function TAnchorDockDsgnSetup.Internal: TObject;
|
||||
begin
|
||||
Result := nil;
|
||||
end;
|
||||
|
||||
initialization
|
||||
Registration := TAnchorDockDsgnSetup.Create;
|
||||
SetupDlgFrameList.Add(Registration);
|
||||
|
||||
finalization
|
||||
FreeAndNil(Registration);
|
||||
|
||||
end.
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<CONFIG>
|
||||
<Package Version="4">
|
||||
<Package Version="5">
|
||||
<Name Value="AnchorDockingDsgn"/>
|
||||
<Type Value="RunAndDesignTime"/>
|
||||
<AddToProjectUsesSection Value="True"/>
|
||||
@ -19,7 +19,7 @@
|
||||
<License Value="GPL2 as the IDE
|
||||
"/>
|
||||
<Version Major="1"/>
|
||||
<Files Count="3">
|
||||
<Files Count="4">
|
||||
<Item1>
|
||||
<Filename Value="registeranchordocking.pas"/>
|
||||
<HasRegisterProc Value="True"/>
|
||||
@ -33,7 +33,12 @@
|
||||
<Filename Value="anchordesktopoptions.pas"/>
|
||||
<UnitName Value="AnchorDesktopOptions"/>
|
||||
</Item3>
|
||||
<Item4>
|
||||
<Filename Value="anchordockdsgninitialsetupframe.pas"/>
|
||||
<UnitName Value="AnchorDockDsgnInitialSetupFrame"/>
|
||||
</Item4>
|
||||
</Files>
|
||||
<CompatibilityMode Value="True"/>
|
||||
<RequiredPkgs Count="2">
|
||||
<Item1>
|
||||
<PackageName Value="IDEIntf"/>
|
||||
|
@ -8,7 +8,7 @@ unit AnchorDockingDsgn;
|
||||
interface
|
||||
|
||||
uses
|
||||
RegisterAnchorDocking, AnchorDesktopOptions, LazarusPackageIntf;
|
||||
RegisterAnchorDocking, AnchorDesktopOptions, AnchorDockDsgnInitialSetupFrame, LazarusPackageIntf;
|
||||
|
||||
implementation
|
||||
|
||||
|
@ -11,11 +11,22 @@ object AnchorDockIDEFrame: TAnchorDockIDEFrame
|
||||
object NoteLabel: TLabel
|
||||
Left = 6
|
||||
Height = 15
|
||||
Top = 6
|
||||
Top = 31
|
||||
Width = 483
|
||||
Align = alTop
|
||||
BorderSpacing.Around = 6
|
||||
Caption = 'NoteLabel'
|
||||
ParentColor = False
|
||||
end
|
||||
object cbDisable: TCheckBox
|
||||
Left = 6
|
||||
Height = 19
|
||||
Top = 6
|
||||
Width = 483
|
||||
Align = alTop
|
||||
BorderSpacing.Around = 6
|
||||
Caption = 'cbDisable'
|
||||
TabOrder = 0
|
||||
OnChange = cbDisableChange
|
||||
end
|
||||
end
|
||||
|
@ -89,9 +89,12 @@ type
|
||||
{ TAnchorDockIDEFrame }
|
||||
|
||||
TAnchorDockIDEFrame = class(TAbstractIDEOptionsEditor)
|
||||
cbDisable: TCheckBox;
|
||||
NoteLabel: TLabel;
|
||||
procedure cbDisableChange(Sender: TObject);
|
||||
private
|
||||
FSettings: TAnchorDockSettings;
|
||||
FDisabledChanged: boolean;
|
||||
public
|
||||
OptionsFrame: TAnchorDockOptionsFrame;
|
||||
constructor Create(TheOwner: TComponent); override;
|
||||
@ -103,11 +106,15 @@ type
|
||||
class function SupportedOptionsClass: TAbstractIDEOptionsClass; override;
|
||||
end;
|
||||
|
||||
TAnchorDockIDEDisabledFrame = class(TAnchorDockIDEFrame)
|
||||
end;
|
||||
|
||||
var
|
||||
IDEAnchorDockMaster: TIDEAnchorDockMaster = nil;
|
||||
AnchorDockOptionsID: integer = 1000;
|
||||
|
||||
procedure Register;
|
||||
procedure ProvideIDEDockMaster;
|
||||
|
||||
implementation
|
||||
|
||||
@ -115,7 +122,16 @@ implementation
|
||||
|
||||
procedure Register;
|
||||
begin
|
||||
if not (IDEDockMaster is TIDEAnchorDockMaster) then exit;
|
||||
AnchorDockGlobalOptions.LoadSafe;
|
||||
if not AnchorDockGlobalOptions.EnableAnchorDock then begin
|
||||
AnchorDockOptionsID:=RegisterIDEOptionsEditor(GroupEnvironment,TAnchorDockIDEDisabledFrame,
|
||||
AnchorDockOptionsID)^.Index;
|
||||
exit;
|
||||
end;
|
||||
|
||||
// Calling IDEDockMaster will create it, if it hasn't already been created.
|
||||
if not (IDEDockMaster is TIDEAnchorDockMaster) then
|
||||
exit;
|
||||
|
||||
// add options frame
|
||||
AnchorDockOptionsID:=RegisterIDEOptionsEditor(GroupEnvironment,TAnchorDockIDEFrame,
|
||||
@ -418,6 +434,11 @@ end;
|
||||
|
||||
{ TAnchorDockIDEFrame }
|
||||
|
||||
procedure TAnchorDockIDEFrame.cbDisableChange(Sender: TObject);
|
||||
begin
|
||||
FDisabledChanged := True;
|
||||
end;
|
||||
|
||||
constructor TAnchorDockIDEFrame.Create(TheOwner: TComponent);
|
||||
begin
|
||||
inherited Create(TheOwner);
|
||||
@ -442,6 +463,11 @@ end;
|
||||
|
||||
procedure TAnchorDockIDEFrame.Setup(ADialog: TAbstractOptionsEditorDialog);
|
||||
begin
|
||||
cbDisable.Caption := SDisable;
|
||||
if self is TAnchorDockIDEDisabledFrame then begin
|
||||
NoteLabel.Visible := False;
|
||||
exit;
|
||||
end;
|
||||
if ADialog=nil then ;
|
||||
if IDEDockMaster=IDEAnchorDockMaster then begin
|
||||
NoteLabel.Visible:=false;
|
||||
@ -460,6 +486,10 @@ end;
|
||||
|
||||
procedure TAnchorDockIDEFrame.ReadSettings(AOptions: TAbstractIDEOptions);
|
||||
begin
|
||||
cbDisable.Checked := not AnchorDockGlobalOptions.EnableAnchorDock;
|
||||
FDisabledChanged := False;
|
||||
if self is TAnchorDockIDEDisabledFrame then exit;
|
||||
|
||||
if not (AOptions is SupportedOptionsClass) then exit;
|
||||
DockMaster.SaveSettings(FSettings);
|
||||
OptionsFrame.LoadFromSettings(FSettings);
|
||||
@ -467,6 +497,13 @@ end;
|
||||
|
||||
procedure TAnchorDockIDEFrame.WriteSettings(AOptions: TAbstractIDEOptions);
|
||||
begin
|
||||
AnchorDockGlobalOptions.EnableAnchorDock := not cbDisable.Checked;
|
||||
if FDisabledChanged then
|
||||
AnchorDockGlobalOptions.DoneAskUserEnableAnchorDock := True;
|
||||
AnchorDockGlobalOptions.SaveSafe;
|
||||
|
||||
if self is TAnchorDockIDEDisabledFrame then exit;
|
||||
|
||||
if not (AOptions is SupportedOptionsClass) then exit;
|
||||
OptionsFrame.SaveToSettings(FSettings);
|
||||
if (not DockMaster.SettingsAreEqual(FSettings))
|
||||
@ -481,17 +518,23 @@ begin
|
||||
Result:=IDEEditorGroups.GetByIndex(GroupEnvironment)^.GroupClass;
|
||||
end;
|
||||
|
||||
initialization
|
||||
// create the dockmaster in the initialization section, so that it is ready
|
||||
// when the Register procedures of the packages are called.
|
||||
if IDEDockMaster<>nil then begin
|
||||
debugln('WARNING: there is already another IDEDockMaster installed: ',DbgSName(IDEDockMaster));
|
||||
TIDEAnchorDockMaster.Create;
|
||||
end else
|
||||
procedure ProvideIDEDockMaster;
|
||||
begin
|
||||
OnIDEDockMasterNeeded := nil;
|
||||
|
||||
AnchorDockGlobalOptions.LoadSafe;
|
||||
if AnchorDockGlobalOptions.EnableAnchorDock then
|
||||
IDEDockMaster:=TIDEAnchorDockMaster.Create;
|
||||
end;
|
||||
|
||||
initialization
|
||||
AnchorDockGlobalOptions := TAnchorDockGlobalOptions.Create;
|
||||
|
||||
if OnIDEDockMasterNeeded = nil then OnIDEDockMasterNeeded := @ProvideIDEDockMaster;
|
||||
|
||||
finalization
|
||||
FreeAndNil(IDEAnchorDockMaster);
|
||||
FreeAndNil(AnchorDockGlobalOptions);
|
||||
|
||||
end.
|
||||
|
||||
|
@ -300,3 +300,23 @@ msgstr "K použití anchordicking musíte nejdříve odinstalovat %s"
|
||||
msgid "Undock"
|
||||
msgstr "Uvolnit"
|
||||
|
||||
#: anchordockstr.sdisable
|
||||
msgid "Disabled (requires restart)"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupmultiwindowidedisplayindi
|
||||
msgid "Multi Window IDE: Display individual separate Windows in the IDE"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupsinglewindowidedisplayasi
|
||||
msgid "Single Window IDE: Display a single Window holding all parts of the IDE (Docked)"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupsinglewindowmodeallowsyou
|
||||
msgid "Single Window mode allows you to undock individual Windows and have several group of Windows. The IDE will show additional \"Dock-Handles\" in each Window, which will allow you to change layout, but also require additional space."
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.sidelayout
|
||||
msgid "IDE Layout"
|
||||
msgstr ""
|
||||
|
||||
|
@ -295,3 +295,23 @@ msgstr ""
|
||||
msgid "Undock"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.sdisable
|
||||
msgid "Disabled (requires restart)"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupmultiwindowidedisplayindi
|
||||
msgid "Multi Window IDE: Display individual separate Windows in the IDE"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupsinglewindowidedisplayasi
|
||||
msgid "Single Window IDE: Display a single Window holding all parts of the IDE (Docked)"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupsinglewindowmodeallowsyou
|
||||
msgid "Single Window mode allows you to undock individual Windows and have several group of Windows. The IDE will show additional \"Dock-Handles\" in each Window, which will allow you to change layout, but also require additional space."
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.sidelayout
|
||||
msgid "IDE Layout"
|
||||
msgstr ""
|
||||
|
||||
|
@ -295,3 +295,23 @@ msgstr "Para utilizar anchordocking primero debe desinstalar %s"
|
||||
msgid "Undock"
|
||||
msgstr "Desacoplar"
|
||||
|
||||
#: anchordockstr.sdisable
|
||||
msgid "Disabled (requires restart)"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupmultiwindowidedisplayindi
|
||||
msgid "Multi Window IDE: Display individual separate Windows in the IDE"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupsinglewindowidedisplayasi
|
||||
msgid "Single Window IDE: Display a single Window holding all parts of the IDE (Docked)"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupsinglewindowmodeallowsyou
|
||||
msgid "Single Window mode allows you to undock individual Windows and have several group of Windows. The IDE will show additional \"Dock-Handles\" in each Window, which will allow you to change layout, but also require additional space."
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.sidelayout
|
||||
msgid "IDE Layout"
|
||||
msgstr ""
|
||||
|
||||
|
@ -297,3 +297,23 @@ msgstr "Pour utiliser l'amarrage par ancres vous devez tout d'abord désinstalle
|
||||
msgid "Undock"
|
||||
msgstr "Désamarrer"
|
||||
|
||||
#: anchordockstr.sdisable
|
||||
msgid "Disabled (requires restart)"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupmultiwindowidedisplayindi
|
||||
msgid "Multi Window IDE: Display individual separate Windows in the IDE"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupsinglewindowidedisplayasi
|
||||
msgid "Single Window IDE: Display a single Window holding all parts of the IDE (Docked)"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupsinglewindowmodeallowsyou
|
||||
msgid "Single Window mode allows you to undock individual Windows and have several group of Windows. The IDE will show additional \"Dock-Handles\" in each Window, which will allow you to change layout, but also require additional space."
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.sidelayout
|
||||
msgid "IDE Layout"
|
||||
msgstr ""
|
||||
|
||||
|
@ -297,3 +297,23 @@ msgstr "Az ablakok rögzítésének használatához először el kell távolíta
|
||||
msgid "Undock"
|
||||
msgstr "Rögzítés feloldása"
|
||||
|
||||
#: anchordockstr.sdisable
|
||||
msgid "Disabled (requires restart)"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupmultiwindowidedisplayindi
|
||||
msgid "Multi Window IDE: Display individual separate Windows in the IDE"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupsinglewindowidedisplayasi
|
||||
msgid "Single Window IDE: Display a single Window holding all parts of the IDE (Docked)"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupsinglewindowmodeallowsyou
|
||||
msgid "Single Window mode allows you to undock individual Windows and have several group of Windows. The IDE will show additional \"Dock-Handles\" in each Window, which will allow you to change layout, but also require additional space."
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.sidelayout
|
||||
msgid "IDE Layout"
|
||||
msgstr ""
|
||||
|
||||
|
@ -299,3 +299,23 @@ msgstr "Per usare l'anchordocking dovete prima disinstallare %s"
|
||||
msgid "Undock"
|
||||
msgstr "Libera"
|
||||
|
||||
#: anchordockstr.sdisable
|
||||
msgid "Disabled (requires restart)"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupmultiwindowidedisplayindi
|
||||
msgid "Multi Window IDE: Display individual separate Windows in the IDE"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupsinglewindowidedisplayasi
|
||||
msgid "Single Window IDE: Display a single Window holding all parts of the IDE (Docked)"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupsinglewindowmodeallowsyou
|
||||
msgid "Single Window mode allows you to undock individual Windows and have several group of Windows. The IDE will show additional \"Dock-Handles\" in each Window, which will allow you to change layout, but also require additional space."
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.sidelayout
|
||||
msgid "IDE Layout"
|
||||
msgstr ""
|
||||
|
||||
|
@ -299,3 +299,23 @@ msgstr "Norint naudoti prieraišų pritvirtinimą, būtina išdiegti „%s“"
|
||||
msgid "Undock"
|
||||
msgstr "Naikinti pritvirtinimą"
|
||||
|
||||
#: anchordockstr.sdisable
|
||||
msgid "Disabled (requires restart)"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupmultiwindowidedisplayindi
|
||||
msgid "Multi Window IDE: Display individual separate Windows in the IDE"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupsinglewindowidedisplayasi
|
||||
msgid "Single Window IDE: Display a single Window holding all parts of the IDE (Docked)"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupsinglewindowmodeallowsyou
|
||||
msgid "Single Window mode allows you to undock individual Windows and have several group of Windows. The IDE will show additional \"Dock-Handles\" in each Window, which will allow you to change layout, but also require additional space."
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.sidelayout
|
||||
msgid "IDE Layout"
|
||||
msgstr ""
|
||||
|
||||
|
@ -298,3 +298,23 @@ msgstr "Aby używać anchordocking musisz najpierw odinstalować %s"
|
||||
msgid "Undock"
|
||||
msgstr "Oddokuj"
|
||||
|
||||
#: anchordockstr.sdisable
|
||||
msgid "Disabled (requires restart)"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupmultiwindowidedisplayindi
|
||||
msgid "Multi Window IDE: Display individual separate Windows in the IDE"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupsinglewindowidedisplayasi
|
||||
msgid "Single Window IDE: Display a single Window holding all parts of the IDE (Docked)"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupsinglewindowmodeallowsyou
|
||||
msgid "Single Window mode allows you to undock individual Windows and have several group of Windows. The IDE will show additional \"Dock-Handles\" in each Window, which will allow you to change layout, but also require additional space."
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.sidelayout
|
||||
msgid "IDE Layout"
|
||||
msgstr ""
|
||||
|
||||
|
@ -287,3 +287,23 @@ msgstr ""
|
||||
msgid "Undock"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.sdisable
|
||||
msgid "Disabled (requires restart)"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupmultiwindowidedisplayindi
|
||||
msgid "Multi Window IDE: Display individual separate Windows in the IDE"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupsinglewindowidedisplayasi
|
||||
msgid "Single Window IDE: Display a single Window holding all parts of the IDE (Docked)"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupsinglewindowmodeallowsyou
|
||||
msgid "Single Window mode allows you to undock individual Windows and have several group of Windows. The IDE will show additional \"Dock-Handles\" in each Window, which will allow you to change layout, but also require additional space."
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.sidelayout
|
||||
msgid "IDE Layout"
|
||||
msgstr ""
|
||||
|
||||
|
@ -297,3 +297,23 @@ msgstr "Para usar a ancoragem, deve-se primeiro desinstalar %s"
|
||||
msgid "Undock"
|
||||
msgstr "Desancorar"
|
||||
|
||||
#: anchordockstr.sdisable
|
||||
msgid "Disabled (requires restart)"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupmultiwindowidedisplayindi
|
||||
msgid "Multi Window IDE: Display individual separate Windows in the IDE"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupsinglewindowidedisplayasi
|
||||
msgid "Single Window IDE: Display a single Window holding all parts of the IDE (Docked)"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupsinglewindowmodeallowsyou
|
||||
msgid "Single Window mode allows you to undock individual Windows and have several group of Windows. The IDE will show additional \"Dock-Handles\" in each Window, which will allow you to change layout, but also require additional space."
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.sidelayout
|
||||
msgid "IDE Layout"
|
||||
msgstr ""
|
||||
|
||||
|
@ -297,3 +297,23 @@ msgstr "Для использования anchordocking сначала удал
|
||||
msgid "Undock"
|
||||
msgstr "Расстыковать"
|
||||
|
||||
#: anchordockstr.sdisable
|
||||
msgid "Disabled (requires restart)"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupmultiwindowidedisplayindi
|
||||
msgid "Multi Window IDE: Display individual separate Windows in the IDE"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupsinglewindowidedisplayasi
|
||||
msgid "Single Window IDE: Display a single Window holding all parts of the IDE (Docked)"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupsinglewindowmodeallowsyou
|
||||
msgid "Single Window mode allows you to undock individual Windows and have several group of Windows. The IDE will show additional \"Dock-Handles\" in each Window, which will allow you to change layout, but also require additional space."
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.sidelayout
|
||||
msgid "IDE Layout"
|
||||
msgstr ""
|
||||
|
||||
|
@ -299,3 +299,23 @@ msgstr "Bağlantıyı kullanmak için önce %s öğesini kaldırmanız gerekir"
|
||||
msgid "Undock"
|
||||
msgstr "Yuvadan ayır"
|
||||
|
||||
#: anchordockstr.sdisable
|
||||
msgid "Disabled (requires restart)"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupmultiwindowidedisplayindi
|
||||
msgid "Multi Window IDE: Display individual separate Windows in the IDE"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupsinglewindowidedisplayasi
|
||||
msgid "Single Window IDE: Display a single Window holding all parts of the IDE (Docked)"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupsinglewindowmodeallowsyou
|
||||
msgid "Single Window mode allows you to undock individual Windows and have several group of Windows. The IDE will show additional \"Dock-Handles\" in each Window, which will allow you to change layout, but also require additional space."
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.sidelayout
|
||||
msgid "IDE Layout"
|
||||
msgstr ""
|
||||
|
||||
|
@ -300,3 +300,23 @@ msgstr "Щоб використовувати якірне стикування,
|
||||
msgid "Undock"
|
||||
msgstr "Відстикувати"
|
||||
|
||||
#: anchordockstr.sdisable
|
||||
msgid "Disabled (requires restart)"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupmultiwindowidedisplayindi
|
||||
msgid "Multi Window IDE: Display individual separate Windows in the IDE"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupsinglewindowidedisplayasi
|
||||
msgid "Single Window IDE: Display a single Window holding all parts of the IDE (Docked)"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupsinglewindowmodeallowsyou
|
||||
msgid "Single Window mode allows you to undock individual Windows and have several group of Windows. The IDE will show additional \"Dock-Handles\" in each Window, which will allow you to change layout, but also require additional space."
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.sidelayout
|
||||
msgid "IDE Layout"
|
||||
msgstr ""
|
||||
|
||||
|
@ -298,3 +298,23 @@ msgstr "要使用 anchordocking,您必须先卸载 %s"
|
||||
msgid "Undock"
|
||||
msgstr "取消停靠"
|
||||
|
||||
#: anchordockstr.sdisable
|
||||
msgid "Disabled (requires restart)"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupmultiwindowidedisplayindi
|
||||
msgid "Multi Window IDE: Display individual separate Windows in the IDE"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupsinglewindowidedisplayasi
|
||||
msgid "Single Window IDE: Display a single Window holding all parts of the IDE (Docked)"
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.setupsinglewindowmodeallowsyou
|
||||
msgid "Single Window mode allows you to undock individual Windows and have several group of Windows. The IDE will show additional \"Dock-Handles\" in each Window, which will allow you to change layout, but also require additional space."
|
||||
msgstr ""
|
||||
|
||||
#: anchordockstr.sidelayout
|
||||
msgid "IDE Layout"
|
||||
msgstr ""
|
||||
|
||||
|
@ -22,7 +22,7 @@
|
||||
<CustomOptions Value="$(IDEBuildOptions)"/>
|
||||
</Other>
|
||||
</CompilerOptions>
|
||||
<Files Count="17">
|
||||
<Files Count="18">
|
||||
<Item1>
|
||||
<Filename Value="source\dockedregister.pas"/>
|
||||
<HasRegisterProc Value="True"/>
|
||||
@ -93,22 +93,29 @@
|
||||
<Filename Value="source\dockedresizecontrol.pas"/>
|
||||
<UnitName Value="DockedResizeControl"/>
|
||||
</Item17>
|
||||
<Item18>
|
||||
<Filename Value="dockedforminitialsetupframe.pas"/>
|
||||
<UnitName Value="DockedFormInitialSetupFrame"/>
|
||||
</Item18>
|
||||
</Files>
|
||||
<CompatibilityMode Value="True"/>
|
||||
<i18n>
|
||||
<EnableI18N Value="True"/>
|
||||
<OutDir Value="languages"/>
|
||||
</i18n>
|
||||
<RequiredPkgs Count="3">
|
||||
<RequiredPkgs Count="4">
|
||||
<Item1>
|
||||
<PackageName Value="DebuggerIntf"/>
|
||||
<PackageName Value="LazControlDsgn"/>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<PackageName Value="CodeTools"/>
|
||||
<PackageName Value="DebuggerIntf"/>
|
||||
</Item2>
|
||||
<Item3>
|
||||
<PackageName Value="IDEIntf"/>
|
||||
<PackageName Value="CodeTools"/>
|
||||
</Item3>
|
||||
<Item4>
|
||||
<PackageName Value="IDEIntf"/>
|
||||
</Item4>
|
||||
</RequiredPkgs>
|
||||
<UsageOptions>
|
||||
<UnitPath Value="$(PkgOutDir)"/>
|
||||
|
@ -8,11 +8,10 @@ unit DockedFormEditor;
|
||||
interface
|
||||
|
||||
uses
|
||||
DockedRegister, DockedStrConsts, DockedFormAccesses, DockedMainIDE,
|
||||
DockedResizer, DockedOptionsIDE, DockedOptionsFrame, DockedTools,
|
||||
DockedDesignForm, DockedSourcePageControl, DockedSourceWindow,
|
||||
DockedAnchorDesigner, DockedBasicAnchorDesigner, DockedAnchorControl,
|
||||
DockedGrip, DockedResizeControl, LazarusPackageIntf;
|
||||
DockedRegister, DockedStrConsts, DockedFormAccesses, DockedMainIDE, DockedResizer,
|
||||
DockedOptionsIDE, DockedOptionsFrame, DockedTools, DockedDesignForm, DockedSourcePageControl,
|
||||
DockedSourceWindow, DockedAnchorDesigner, DockedBasicAnchorDesigner, DockedAnchorControl,
|
||||
DockedGrip, DockedResizeControl, DockedFormInitialSetupFrame, LazarusPackageIntf;
|
||||
|
||||
implementation
|
||||
|
||||
|
68
components/dockedformeditor/dockedforminitialsetupframe.lfm
Normal file
68
components/dockedformeditor/dockedforminitialsetupframe.lfm
Normal file
@ -0,0 +1,68 @@
|
||||
object DockedFormEditSetupFrame: TDockedFormEditSetupFrame
|
||||
Left = 0
|
||||
Height = 240
|
||||
Top = 0
|
||||
Width = 320
|
||||
ChildSizing.LeftRightSpacing = 5
|
||||
ChildSizing.TopBottomSpacing = 5
|
||||
ChildSizing.HorizontalSpacing = 2
|
||||
ChildSizing.VerticalSpacing = 5
|
||||
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
|
||||
ChildSizing.ShrinkHorizontal = crsHomogenousChildResize
|
||||
ChildSizing.Layout = cclLeftToRightThenTopToBottom
|
||||
ChildSizing.ControlsPerLine = 2
|
||||
ClientHeight = 240
|
||||
ClientWidth = 320
|
||||
TabOrder = 0
|
||||
DesignLeft = 348
|
||||
DesignTop = 3
|
||||
object rbFloat: TRadioButton
|
||||
Left = 5
|
||||
Height = 17
|
||||
Top = 5
|
||||
Width = 25
|
||||
Constraints.MaxWidth = 25
|
||||
TabOrder = 0
|
||||
OnChange = rbDockedChange
|
||||
end
|
||||
object lbFloat: TLabel
|
||||
Left = 32
|
||||
Height = 17
|
||||
Top = 5
|
||||
Width = 283
|
||||
Caption = 'lbFloat'
|
||||
WordWrap = True
|
||||
OnClick = lbFloatClick
|
||||
end
|
||||
object rbDocked: TRadioButton
|
||||
Left = 5
|
||||
Height = 17
|
||||
Top = 27
|
||||
Width = 25
|
||||
TabOrder = 1
|
||||
OnChange = rbDockedChange
|
||||
end
|
||||
object lbDocked: TLabel
|
||||
Left = 32
|
||||
Height = 17
|
||||
Top = 27
|
||||
Width = 283
|
||||
Caption = 'lbDocked'
|
||||
WordWrap = True
|
||||
OnClick = lbDockedClick
|
||||
end
|
||||
object Label1: TLabel
|
||||
Left = 5
|
||||
Height = 15
|
||||
Top = 49
|
||||
Width = 25
|
||||
end
|
||||
object lbInfo: TLabel
|
||||
Left = 32
|
||||
Height = 15
|
||||
Top = 49
|
||||
Width = 283
|
||||
Caption = 'lbInfo'
|
||||
WordWrap = True
|
||||
end
|
||||
end
|
192
components/dockedformeditor/dockedforminitialsetupframe.pas
Normal file
192
components/dockedformeditor/dockedforminitialsetupframe.pas
Normal file
@ -0,0 +1,192 @@
|
||||
unit DockedFormInitialSetupFrame;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, Forms, Controls, StdCtrls, ExtCtrls, LazarusPackageIntf,
|
||||
DockedStrConsts, DockedOptionsIDE;
|
||||
|
||||
type
|
||||
|
||||
TDockedFormEditSetup = class;
|
||||
|
||||
{ TDockedFormEditSetupFrame }
|
||||
|
||||
TDockedFormEditSetupFrame = class(TFrame)
|
||||
Label1: TLabel;
|
||||
lbInfo: TLabel;
|
||||
lbFloat: TLabel;
|
||||
lbDocked: TLabel;
|
||||
rbFloat: TRadioButton;
|
||||
rbDocked: TRadioButton;
|
||||
procedure lbDockedClick(Sender: TObject);
|
||||
procedure lbFloatClick(Sender: TObject);
|
||||
procedure rbDockedChange(Sender: TObject);
|
||||
private
|
||||
FDialog: ISetupDlgProvider;
|
||||
FSetup: TDockedFormEditSetup;
|
||||
FChanged: Boolean;
|
||||
public
|
||||
procedure Init;
|
||||
end;
|
||||
|
||||
TDockedFormEditSetup = class(TObject, ISetupDlgFrame)
|
||||
private
|
||||
FTheFrame: TDockedFormEditSetupFrame;
|
||||
FInitDone: boolean;
|
||||
|
||||
public
|
||||
destructor Destroy; override;
|
||||
function RequireSetup: boolean;
|
||||
procedure AddToDialog(AnOwner, AParent: TComponent; // AParent: TWinControl that will hold the frame
|
||||
ADialog: ISetupDlgProvider
|
||||
);
|
||||
procedure Init;
|
||||
procedure Done;
|
||||
function Caption: String;
|
||||
function SortOrder: Integer;
|
||||
function UniqueId: String;
|
||||
function GroupId: String;
|
||||
procedure PageSelected(AnUserActivated: Boolean);
|
||||
procedure UpdateState;
|
||||
procedure ApplySelection; // Called when the IDE gets started
|
||||
function Internal: TObject;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
var
|
||||
Registration: TDockedFormEditSetup;
|
||||
|
||||
{$R *.lfm}
|
||||
|
||||
{ TDockedFormEditSetupFrame }
|
||||
|
||||
procedure TDockedFormEditSetupFrame.lbFloatClick(Sender: TObject);
|
||||
begin
|
||||
rbFloat.Checked := True;
|
||||
end;
|
||||
|
||||
procedure TDockedFormEditSetupFrame.rbDockedChange(Sender: TObject);
|
||||
begin
|
||||
FChanged := True;
|
||||
FDialog.FrameStateChanged(FSetup, issOk, isaReady);
|
||||
end;
|
||||
|
||||
procedure TDockedFormEditSetupFrame.lbDockedClick(Sender: TObject);
|
||||
begin
|
||||
rbDocked.Checked:= True;
|
||||
end;
|
||||
|
||||
procedure TDockedFormEditSetupFrame.Init;
|
||||
begin
|
||||
lbFloat.Caption := setupDisplayTheFormEditorDesig;
|
||||
lbDocked.Caption := setupDisplayDockTheFormEditorA;
|
||||
lbInfo.Caption := setupWithTheDockedDesignerYouW;
|
||||
end;
|
||||
|
||||
{ TDockedFormEditSetup }
|
||||
|
||||
destructor TDockedFormEditSetup.Destroy;
|
||||
begin
|
||||
FreeAndNil(FTheFrame);
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
function TDockedFormEditSetup.RequireSetup: boolean;
|
||||
begin
|
||||
if DockedOptions = nil then exit(False);
|
||||
DockedOptions.LoadSafe;
|
||||
Result := not DockedOptions.DoneAskUserEnableDockedDesigner;
|
||||
end;
|
||||
|
||||
procedure TDockedFormEditSetup.AddToDialog(AnOwner, AParent: TComponent; ADialog: ISetupDlgProvider);
|
||||
begin
|
||||
FTheFrame := TDockedFormEditSetupFrame.Create(AnOwner);
|
||||
FTheFrame.Parent := AParent as TWinControl;
|
||||
FTheFrame.Align := alClient;
|
||||
FTheFrame.FDialog := ADialog;
|
||||
FTheFrame.FSetup := Self;
|
||||
FTheFrame.Init;
|
||||
|
||||
ADialog.SetGroupCaption(GroupId, SIDELayout);
|
||||
end;
|
||||
|
||||
procedure TDockedFormEditSetup.Init;
|
||||
begin
|
||||
if DockedOptions = nil then exit;
|
||||
DockedOptions.LoadSafe;
|
||||
end;
|
||||
|
||||
procedure TDockedFormEditSetup.Done;
|
||||
begin
|
||||
FTheFrame := nil; // destroyed by parent
|
||||
end;
|
||||
|
||||
function TDockedFormEditSetup.Caption: String;
|
||||
begin
|
||||
Result := 'Embed form editor';
|
||||
end;
|
||||
|
||||
function TDockedFormEditSetup.SortOrder: Integer;
|
||||
begin
|
||||
Result := -1;
|
||||
end;
|
||||
|
||||
procedure TDockedFormEditSetup.UpdateState;
|
||||
begin
|
||||
if not FInitDone then begin
|
||||
FTheFrame.rbDocked.Checked := DockedOptions.EnableDockedDesigner;
|
||||
FTheFrame.rbFloat.Checked := not DockedOptions.EnableDockedDesigner;
|
||||
FTheFrame.FChanged := DockedOptions.DoneAskUserEnableDockedDesigner;
|
||||
end;
|
||||
FInitDone := True;
|
||||
|
||||
if (not FTheFrame.FChanged) then
|
||||
FTheFrame.FDialog.FrameStateChanged(Self, issInfo, isaReady)
|
||||
else
|
||||
FTheFrame.FDialog.FrameStateChanged(Self, issOk, isaReady);
|
||||
end;
|
||||
|
||||
procedure TDockedFormEditSetup.ApplySelection;
|
||||
begin
|
||||
if DockedOptions = nil then exit;
|
||||
DockedOptions.DoneAskUserEnableDockedDesigner := True;
|
||||
DockedOptions.EnableDockedDesigner := FTheFrame.rbDocked.Checked;
|
||||
DockedOptions.SaveSafe;
|
||||
end;
|
||||
|
||||
function TDockedFormEditSetup.Internal: TObject;
|
||||
begin
|
||||
Result := nil;
|
||||
end;
|
||||
|
||||
function TDockedFormEditSetup.UniqueId: String;
|
||||
begin
|
||||
Result := '{234D6036-1AD5-4A9D-91FD-AE783B2E3A5D}';
|
||||
end;
|
||||
|
||||
function TDockedFormEditSetup.GroupId: String;
|
||||
begin
|
||||
Result := '{62435B06-4C68-4D77-A4BC-2496E35DF59C}';
|
||||
end;
|
||||
|
||||
procedure TDockedFormEditSetup.PageSelected(AnUserActivated: Boolean);
|
||||
begin
|
||||
if AnUserActivated then begin
|
||||
FTheFrame.FChanged := True;
|
||||
FTheFrame.FDialog.FrameStateChanged(Self, issOk, isaReady);
|
||||
end;
|
||||
end;
|
||||
|
||||
initialization
|
||||
Registration := TDockedFormEditSetup.Create;
|
||||
SetupDlgFrameList.Add(Registration);
|
||||
|
||||
finalization
|
||||
FreeAndNil(Registration);
|
||||
|
||||
end.
|
||||
|
@ -54,6 +54,15 @@ resourceString
|
||||
STabPositionRight = 'Right';
|
||||
|
||||
SArgumentOutOfRange = 'Argument out of range.';
|
||||
setupDisplayTheFormEditorDesig = 'Display the form editor (Designer) as a separate '
|
||||
+'floating form.';
|
||||
setupDisplayDockTheFormEditorA = 'Display/Dock the form editor as part of the source-'
|
||||
+'editors.';
|
||||
setupWithTheDockedDesignerYouW = 'With the docked designer you will have a tab to '
|
||||
+'toggle the source and the design view. You can open a 2nd source-edit window to see both at'
|
||||
+' the same time.';
|
||||
SDisableRequiresRestart = 'Disabled (requires restart)';
|
||||
SIDELayout = 'IDE Layout';
|
||||
|
||||
const
|
||||
STabPosition: array [Low(TTabPosition)..High(TTabPosition)] of String = (
|
||||
|
@ -119,6 +119,22 @@ msgstr "Détacher les côtés du contrôle"
|
||||
msgid "Detach Control Side"
|
||||
msgstr "Détacher le côté du contrôle"
|
||||
|
||||
#: dockedstrconsts.sdisablerequiresrestart
|
||||
msgid "Disabled (requires restart)"
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.setupdisplaydocktheformeditora
|
||||
msgid "Display/Dock the form editor as part of the source-editors."
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.setupdisplaytheformeditordesig
|
||||
msgid "Display the form editor (Designer) as a separate floating form."
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.setupwiththedockeddesigneryouw
|
||||
msgid "With the docked designer you will have a tab to toggle the source and the design view. You can open a 2nd source-edit window to see both at the same time."
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.sforcerefreshingcaption
|
||||
msgid "Force Refreshing At Sizing"
|
||||
msgstr "Forcer le rafraîchissement lors du redimensionnement"
|
||||
@ -127,6 +143,10 @@ msgstr "Forcer le rafraîchissement lors du redimensionnement"
|
||||
msgid "Force refreshing form when user is sizing it"
|
||||
msgstr "Forcer l'actualisation de la fiche lorsque l'utilisateur la dimensionne"
|
||||
|
||||
#: dockedstrconsts.sidelayout
|
||||
msgid "IDE Layout"
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.smouseborderfactorcaption
|
||||
msgid "Mouse cursor factor for BorderSpacing property"
|
||||
msgstr "Facteur de curseur de souris pour la propriété BorderSpacing"
|
||||
|
@ -121,6 +121,22 @@ msgstr ""
|
||||
msgid "Detach Control Side"
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.sdisablerequiresrestart
|
||||
msgid "Disabled (requires restart)"
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.setupdisplaydocktheformeditora
|
||||
msgid "Display/Dock the form editor as part of the source-editors."
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.setupdisplaytheformeditordesig
|
||||
msgid "Display the form editor (Designer) as a separate floating form."
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.setupwiththedockeddesigneryouw
|
||||
msgid "With the docked designer you will have a tab to toggle the source and the design view. You can open a 2nd source-edit window to see both at the same time."
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.sforcerefreshingcaption
|
||||
msgid "Force Refreshing At Sizing"
|
||||
msgstr ""
|
||||
@ -129,6 +145,10 @@ msgstr ""
|
||||
msgid "Force refreshing form when user is sizing it"
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.sidelayout
|
||||
msgid "IDE Layout"
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.smouseborderfactorcaption
|
||||
msgid "Mouse cursor factor for BorderSpacing property"
|
||||
msgstr ""
|
||||
|
@ -122,6 +122,22 @@ msgstr ""
|
||||
msgid "Detach Control Side"
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.sdisablerequiresrestart
|
||||
msgid "Disabled (requires restart)"
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.setupdisplaydocktheformeditora
|
||||
msgid "Display/Dock the form editor as part of the source-editors."
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.setupdisplaytheformeditordesig
|
||||
msgid "Display the form editor (Designer) as a separate floating form."
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.setupwiththedockeddesigneryouw
|
||||
msgid "With the docked designer you will have a tab to toggle the source and the design view. You can open a 2nd source-edit window to see both at the same time."
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.sforcerefreshingcaption
|
||||
msgid "Force Refreshing At Sizing"
|
||||
msgstr ""
|
||||
@ -130,6 +146,10 @@ msgstr ""
|
||||
msgid "Force refreshing form when user is sizing it"
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.sidelayout
|
||||
msgid "IDE Layout"
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.smouseborderfactorcaption
|
||||
msgid "Mouse cursor factor for BorderSpacing property"
|
||||
msgstr ""
|
||||
|
@ -108,6 +108,22 @@ msgstr ""
|
||||
msgid "Detach Control Side"
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.sdisablerequiresrestart
|
||||
msgid "Disabled (requires restart)"
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.setupdisplaydocktheformeditora
|
||||
msgid "Display/Dock the form editor as part of the source-editors."
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.setupdisplaytheformeditordesig
|
||||
msgid "Display the form editor (Designer) as a separate floating form."
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.setupwiththedockeddesigneryouw
|
||||
msgid "With the docked designer you will have a tab to toggle the source and the design view. You can open a 2nd source-edit window to see both at the same time."
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.sforcerefreshingcaption
|
||||
msgid "Force Refreshing At Sizing"
|
||||
msgstr ""
|
||||
@ -116,6 +132,10 @@ msgstr ""
|
||||
msgid "Force refreshing form when user is sizing it"
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.sidelayout
|
||||
msgid "IDE Layout"
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.smouseborderfactorcaption
|
||||
msgid "Mouse cursor factor for BorderSpacing property"
|
||||
msgstr ""
|
||||
|
@ -118,6 +118,22 @@ msgstr "Desanexar lados do controle"
|
||||
msgid "Detach Control Side"
|
||||
msgstr "Desanexar lado do controle"
|
||||
|
||||
#: dockedstrconsts.sdisablerequiresrestart
|
||||
msgid "Disabled (requires restart)"
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.setupdisplaydocktheformeditora
|
||||
msgid "Display/Dock the form editor as part of the source-editors."
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.setupdisplaytheformeditordesig
|
||||
msgid "Display the form editor (Designer) as a separate floating form."
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.setupwiththedockeddesigneryouw
|
||||
msgid "With the docked designer you will have a tab to toggle the source and the design view. You can open a 2nd source-edit window to see both at the same time."
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.sforcerefreshingcaption
|
||||
msgid "Force Refreshing At Sizing"
|
||||
msgstr "Forçar atualização ao redimensionar"
|
||||
@ -126,6 +142,10 @@ msgstr "Forçar atualização ao redimensionar"
|
||||
msgid "Force refreshing form when user is sizing it"
|
||||
msgstr "Forçar atualização do formulário quando o usuário o estiver redimensionando"
|
||||
|
||||
#: dockedstrconsts.sidelayout
|
||||
msgid "IDE Layout"
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.smouseborderfactorcaption
|
||||
msgid "Mouse cursor factor for BorderSpacing property"
|
||||
msgstr "Fator do cursor do mouse para a propriedade BorderSpacing"
|
||||
|
@ -118,6 +118,22 @@ msgstr "Отвязать стороны компонента"
|
||||
msgid "Detach Control Side"
|
||||
msgstr "Отвязать сторону компонента"
|
||||
|
||||
#: dockedstrconsts.sdisablerequiresrestart
|
||||
msgid "Disabled (requires restart)"
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.setupdisplaydocktheformeditora
|
||||
msgid "Display/Dock the form editor as part of the source-editors."
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.setupdisplaytheformeditordesig
|
||||
msgid "Display the form editor (Designer) as a separate floating form."
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.setupwiththedockeddesigneryouw
|
||||
msgid "With the docked designer you will have a tab to toggle the source and the design view. You can open a 2nd source-edit window to see both at the same time."
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.sforcerefreshingcaption
|
||||
msgid "Force Refreshing At Sizing"
|
||||
msgstr "Принудительно обновлять при изменении размера"
|
||||
@ -126,6 +142,10 @@ msgstr "Принудительно обновлять при изменении
|
||||
msgid "Force refreshing form when user is sizing it"
|
||||
msgstr "Принудительно обновлять форму при изменении её размера"
|
||||
|
||||
#: dockedstrconsts.sidelayout
|
||||
msgid "IDE Layout"
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.smouseborderfactorcaption
|
||||
msgid "Mouse cursor factor for BorderSpacing property"
|
||||
msgstr "Масштаб движения курсора мыши для свойства BorderSpacing"
|
||||
|
@ -118,6 +118,22 @@ msgstr "Kontrol Taraflarını Ayırın"
|
||||
msgid "Detach Control Side"
|
||||
msgstr "Kontrol Tarafını Ayırın"
|
||||
|
||||
#: dockedstrconsts.sdisablerequiresrestart
|
||||
msgid "Disabled (requires restart)"
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.setupdisplaydocktheformeditora
|
||||
msgid "Display/Dock the form editor as part of the source-editors."
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.setupdisplaytheformeditordesig
|
||||
msgid "Display the form editor (Designer) as a separate floating form."
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.setupwiththedockeddesigneryouw
|
||||
msgid "With the docked designer you will have a tab to toggle the source and the design view. You can open a 2nd source-edit window to see both at the same time."
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.sforcerefreshingcaption
|
||||
msgid "Force Refreshing At Sizing"
|
||||
msgstr "İndirme ve çıkartma için her zaman zorla"
|
||||
@ -126,6 +142,10 @@ msgstr "İndirme ve çıkartma için her zaman zorla"
|
||||
msgid "Force refreshing form when user is sizing it"
|
||||
msgstr "Kullanıcı boyutlandırırken formu yenilemeye zorla"
|
||||
|
||||
#: dockedstrconsts.sidelayout
|
||||
msgid "IDE Layout"
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.smouseborderfactorcaption
|
||||
msgid "Mouse cursor factor for BorderSpacing property"
|
||||
msgstr "BorderSpacing özelliği için fare imleci faktörü"
|
||||
|
@ -120,6 +120,22 @@ msgstr "Від'єднати боки елемента керування"
|
||||
msgid "Detach Control Side"
|
||||
msgstr "Від'єднати бік елемента керування"
|
||||
|
||||
#: dockedstrconsts.sdisablerequiresrestart
|
||||
msgid "Disabled (requires restart)"
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.setupdisplaydocktheformeditora
|
||||
msgid "Display/Dock the form editor as part of the source-editors."
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.setupdisplaytheformeditordesig
|
||||
msgid "Display the form editor (Designer) as a separate floating form."
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.setupwiththedockeddesigneryouw
|
||||
msgid "With the docked designer you will have a tab to toggle the source and the design view. You can open a 2nd source-edit window to see both at the same time."
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.sforcerefreshingcaption
|
||||
msgid "Force Refreshing At Sizing"
|
||||
msgstr "Примусове оновлення при зміні розміру"
|
||||
@ -128,6 +144,10 @@ msgstr "Примусове оновлення при зміні розміру"
|
||||
msgid "Force refreshing form when user is sizing it"
|
||||
msgstr "Примусове оновлення форми, коли користувач змінює її розміри"
|
||||
|
||||
#: dockedstrconsts.sidelayout
|
||||
msgid "IDE Layout"
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.smouseborderfactorcaption
|
||||
msgid "Mouse cursor factor for BorderSpacing property"
|
||||
msgstr "Коефіцієнт вказівника миші для властивості BorderSpacing"
|
||||
|
@ -119,6 +119,22 @@ msgstr "分离控制面板"
|
||||
msgid "Detach Control Side"
|
||||
msgstr "分离控制面板"
|
||||
|
||||
#: dockedstrconsts.sdisablerequiresrestart
|
||||
msgid "Disabled (requires restart)"
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.setupdisplaydocktheformeditora
|
||||
msgid "Display/Dock the form editor as part of the source-editors."
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.setupdisplaytheformeditordesig
|
||||
msgid "Display the form editor (Designer) as a separate floating form."
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.setupwiththedockeddesigneryouw
|
||||
msgid "With the docked designer you will have a tab to toggle the source and the design view. You can open a 2nd source-edit window to see both at the same time."
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.sforcerefreshingcaption
|
||||
msgid "Force Refreshing At Sizing"
|
||||
msgstr "强制刷新大小"
|
||||
@ -127,6 +143,10 @@ msgstr "强制刷新大小"
|
||||
msgid "Force refreshing form when user is sizing it"
|
||||
msgstr "用户调整大小时强制刷新窗体"
|
||||
|
||||
#: dockedstrconsts.sidelayout
|
||||
msgid "IDE Layout"
|
||||
msgstr ""
|
||||
|
||||
#: dockedstrconsts.smouseborderfactorcaption
|
||||
msgid "Mouse cursor factor for BorderSpacing property"
|
||||
msgstr "BorderSpacing 属性的鼠标指针系数"
|
||||
|
@ -6,257 +6,303 @@ object FrameDockedOptions: TFrameDockedOptions
|
||||
ClientHeight = 489
|
||||
ClientWidth = 571
|
||||
TabOrder = 0
|
||||
DesignLeft = 229
|
||||
DesignTop = 262
|
||||
object LabelTabPosition: TLabel
|
||||
AnchorSideLeft.Control = Owner
|
||||
DesignLeft = 336
|
||||
DesignTop = 249
|
||||
object cbDisableDockFormEd: TCheckBox
|
||||
AnchorSideLeft.Control = LabelTabPosition
|
||||
AnchorSideTop.Control = Owner
|
||||
Left = 6
|
||||
Height = 13
|
||||
Height = 19
|
||||
Top = 0
|
||||
Width = 58
|
||||
Width = 137
|
||||
BorderSpacing.Left = 6
|
||||
Caption = 'Tab Position'
|
||||
ParentColor = False
|
||||
Caption = 'cbDisableDockFormEd'
|
||||
TabOrder = 0
|
||||
OnChange = cbDisableDockFormEdChange
|
||||
end
|
||||
object ComboBoxTabPosition: TComboBox
|
||||
object Panel1: TPanel
|
||||
AnchorSideLeft.Control = LabelTabPosition
|
||||
AnchorSideTop.Control = LabelTabPosition
|
||||
AnchorSideTop.Control = cbDisableDockFormEd
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 21
|
||||
Top = 13
|
||||
Width = 559
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Right = 6
|
||||
ItemHeight = 13
|
||||
ParentShowHint = False
|
||||
ReadOnly = True
|
||||
ShowHint = True
|
||||
Style = csDropDownList
|
||||
TabOrder = 0
|
||||
end
|
||||
object LabelResizerColor: TLabel
|
||||
AnchorSideLeft.Control = LabelTabPosition
|
||||
AnchorSideTop.Control = ComboBoxTabPosition
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 13
|
||||
Top = 40
|
||||
Width = 63
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'Resizer Color'
|
||||
ParentColor = False
|
||||
end
|
||||
object ColorBoxResizer: TColorBox
|
||||
AnchorSideLeft.Control = LabelTabPosition
|
||||
AnchorSideTop.Control = LabelResizerColor
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = ComboBoxTabPosition
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 22
|
||||
Top = 53
|
||||
Width = 559
|
||||
Style = [cbStandardColors, cbExtendedColors, cbSystemColors, cbIncludeDefault, cbCustomColor]
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
ItemHeight = 16
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 1
|
||||
end
|
||||
object DividerBevelAnchors: TDividerBevel
|
||||
AnchorSideLeft.Control = LabelTabPosition
|
||||
AnchorSideTop.Control = CheckBoxForceRefreshing
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = ComboBoxTabPosition
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 13
|
||||
Top = 104
|
||||
Width = 559
|
||||
Caption = 'Anchors'
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Top = 6
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object CheckBoxAnchorTabVisible: TCheckBox
|
||||
AnchorSideLeft.Control = LabelTabPosition
|
||||
AnchorSideTop.Control = DividerBevelAnchors
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 17
|
||||
Top = 123
|
||||
Width = 109
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'Show Anchors Tab'
|
||||
OnChange = CheckBoxAnchorTabVisibleChange
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 2
|
||||
end
|
||||
object LabelCaptureDistance: TLabel
|
||||
AnchorSideLeft.Control = LabelTabPosition
|
||||
AnchorSideTop.Control = CheckBoxAnchorTabVisible
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 13
|
||||
Top = 146
|
||||
Width = 83
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'Capture Distance'
|
||||
ParentColor = False
|
||||
end
|
||||
object SpinEditCaptureDistance: TSpinEdit
|
||||
AnchorSideLeft.Control = LabelTabPosition
|
||||
AnchorSideTop.Control = LabelCaptureDistance
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = ComboBoxTabPosition
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 21
|
||||
Top = 159
|
||||
Width = 559
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 3
|
||||
end
|
||||
object LabelMouseBorderFactor: TLabel
|
||||
AnchorSideLeft.Control = LabelTabPosition
|
||||
AnchorSideTop.Control = SpinEditCaptureDistance
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 13
|
||||
Top = 186
|
||||
Width = 114
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'Mouse Bordering Factor'
|
||||
ParentColor = False
|
||||
end
|
||||
object SpinEditMouseBorderFactor: TSpinEdit
|
||||
AnchorSideLeft.Control = LabelTabPosition
|
||||
AnchorSideTop.Control = LabelMouseBorderFactor
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = ComboBoxTabPosition
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 21
|
||||
Top = 199
|
||||
Width = 559
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
MaxValue = 10
|
||||
MinValue = 1
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 4
|
||||
Value = 1
|
||||
end
|
||||
object CheckBoxTreatAlign: TCheckBox
|
||||
AnchorSideLeft.Control = LabelTabPosition
|
||||
AnchorSideTop.Control = SpinEditMouseBorderFactor
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 17
|
||||
Top = 226
|
||||
Width = 128
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'Automatic Treat Aligns'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 5
|
||||
end
|
||||
object LabelColors: TLabel
|
||||
AnchorSideLeft.Control = LabelTabPosition
|
||||
AnchorSideTop.Control = CheckBoxAllowSizing
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 13
|
||||
Top = 295
|
||||
Width = 30
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'Colors'
|
||||
ParentColor = False
|
||||
end
|
||||
object CheckBoxForceRefreshing: TCheckBox
|
||||
AnchorSideLeft.Control = LabelTabPosition
|
||||
AnchorSideTop.Control = ColorBoxResizer
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 17
|
||||
Top = 81
|
||||
Width = 146
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'Force Refreshing At Sizing'
|
||||
OnChange = CheckBoxAnchorTabVisibleChange
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 6
|
||||
end
|
||||
object AnchorsColorBox: TColorBox
|
||||
AnchorSideLeft.Control = ComboBoxTabPosition
|
||||
AnchorSideTop.Control = AnchorsColorListBox
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = ComboBoxTabPosition
|
||||
AnchorSideRight.Side = asrBottom
|
||||
AnchorSideBottom.Control = Owner
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 26
|
||||
Top = 430
|
||||
Width = 559
|
||||
Style = [cbStandardColors, cbExtendedColors, cbSystemColors, cbIncludeNone, cbIncludeDefault, cbCustomColor, cbPrettyNames, cbCustomColors]
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Top = 2
|
||||
ItemHeight = 20
|
||||
OnChange = AnchorsColorBoxChange
|
||||
TabOrder = 7
|
||||
end
|
||||
object AnchorsColorListBox: TColorListBox
|
||||
AnchorSideLeft.Control = LabelTabPosition
|
||||
AnchorSideTop.Control = LabelColors
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = ComboBoxTabPosition
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 143
|
||||
Top = 308
|
||||
Width = 559
|
||||
Style = [cbCustomColors]
|
||||
OnGetColors = AnchorsColorListBoxGetColors
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
ItemHeight = 0
|
||||
OnSelectionChange = AnchorsColorListBoxSelectionChange
|
||||
TabOrder = 8
|
||||
end
|
||||
object CheckBoxTreatBorder: TCheckBox
|
||||
AnchorSideLeft.Control = LabelTabPosition
|
||||
AnchorSideTop.Control = CheckBoxTreatAlign
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 17
|
||||
Top = 249
|
||||
Width = 170
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'Automatic Treat Around Border'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 9
|
||||
end
|
||||
object CheckBoxAllowSizing: TCheckBox
|
||||
AnchorSideLeft.Control = LabelTabPosition
|
||||
AnchorSideTop.Control = CheckBoxTreatBorder
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 17
|
||||
Top = 272
|
||||
Width = 170
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'Allow Sizing'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 10
|
||||
Height = 470
|
||||
Top = 19
|
||||
Width = 565
|
||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||
BorderSpacing.Left = 6
|
||||
BevelOuter = bvNone
|
||||
Caption = 'Panel1'
|
||||
ClientHeight = 470
|
||||
ClientWidth = 565
|
||||
TabOrder = 1
|
||||
object ComboBoxTabPosition: TComboBox
|
||||
AnchorSideLeft.Control = Panel1
|
||||
AnchorSideTop.Control = LabelTabPosition
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 23
|
||||
Top = 33
|
||||
Width = 565
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Right = 6
|
||||
ItemHeight = 15
|
||||
ParentShowHint = False
|
||||
ReadOnly = True
|
||||
ShowHint = True
|
||||
Style = csDropDownList
|
||||
TabOrder = 0
|
||||
end
|
||||
object LabelResizerColor: TLabel
|
||||
AnchorSideLeft.Control = Panel1
|
||||
AnchorSideTop.Control = ComboBoxTabPosition
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 15
|
||||
Top = 62
|
||||
Width = 68
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'Resizer Color'
|
||||
ParentColor = False
|
||||
end
|
||||
object ColorBoxResizer: TColorBox
|
||||
AnchorSideLeft.Control = Panel1
|
||||
AnchorSideTop.Control = LabelResizerColor
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = ComboBoxTabPosition
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 22
|
||||
Top = 77
|
||||
Width = 565
|
||||
Style = [cbStandardColors, cbExtendedColors, cbSystemColors, cbIncludeDefault, cbCustomColor]
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
ItemHeight = 16
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 1
|
||||
end
|
||||
object DividerBevelAnchors: TDividerBevel
|
||||
AnchorSideLeft.Control = Panel1
|
||||
AnchorSideTop.Control = CheckBoxForceRefreshing
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = ComboBoxTabPosition
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 15
|
||||
Top = 130
|
||||
Width = 565
|
||||
Caption = 'Anchors'
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Top = 6
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object CheckBoxAnchorTabVisible: TCheckBox
|
||||
AnchorSideLeft.Control = Panel1
|
||||
AnchorSideTop.Control = DividerBevelAnchors
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 19
|
||||
Top = 151
|
||||
Width = 116
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'Show Anchors Tab'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 2
|
||||
OnChange = CheckBoxAnchorTabVisibleChange
|
||||
end
|
||||
object LabelCaptureDistance: TLabel
|
||||
AnchorSideLeft.Control = Panel1
|
||||
AnchorSideTop.Control = CheckBoxAnchorTabVisible
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 15
|
||||
Top = 176
|
||||
Width = 90
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'Capture Distance'
|
||||
ParentColor = False
|
||||
end
|
||||
object SpinEditCaptureDistance: TSpinEdit
|
||||
AnchorSideLeft.Control = Panel1
|
||||
AnchorSideTop.Control = LabelCaptureDistance
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = ComboBoxTabPosition
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 23
|
||||
Top = 191
|
||||
Width = 565
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 3
|
||||
end
|
||||
object LabelMouseBorderFactor: TLabel
|
||||
AnchorSideLeft.Control = Panel1
|
||||
AnchorSideTop.Control = SpinEditCaptureDistance
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 15
|
||||
Top = 220
|
||||
Width = 127
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'Mouse Bordering Factor'
|
||||
ParentColor = False
|
||||
end
|
||||
object SpinEditMouseBorderFactor: TSpinEdit
|
||||
AnchorSideLeft.Control = Panel1
|
||||
AnchorSideTop.Control = LabelMouseBorderFactor
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = ComboBoxTabPosition
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 23
|
||||
Top = 235
|
||||
Width = 565
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
MaxValue = 10
|
||||
MinValue = 1
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 4
|
||||
Value = 1
|
||||
end
|
||||
object CheckBoxTreatAlign: TCheckBox
|
||||
AnchorSideLeft.Control = Panel1
|
||||
AnchorSideTop.Control = SpinEditMouseBorderFactor
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 19
|
||||
Top = 264
|
||||
Width = 139
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'Automatic Treat Aligns'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 5
|
||||
end
|
||||
object LabelColors: TLabel
|
||||
AnchorSideLeft.Control = Panel1
|
||||
AnchorSideTop.Control = CheckBoxAllowSizing
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 15
|
||||
Top = 339
|
||||
Width = 34
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'Colors'
|
||||
ParentColor = False
|
||||
end
|
||||
object CheckBoxForceRefreshing: TCheckBox
|
||||
AnchorSideLeft.Control = Panel1
|
||||
AnchorSideTop.Control = ColorBoxResizer
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 19
|
||||
Top = 105
|
||||
Width = 155
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'Force Refreshing At Sizing'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 6
|
||||
OnChange = CheckBoxAnchorTabVisibleChange
|
||||
end
|
||||
object AnchorsColorBox: TColorBox
|
||||
AnchorSideLeft.Control = Panel1
|
||||
AnchorSideTop.Control = AnchorsColorListBox
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = ComboBoxTabPosition
|
||||
AnchorSideRight.Side = asrBottom
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 26
|
||||
Top = 499
|
||||
Width = 565
|
||||
Style = [cbStandardColors, cbExtendedColors, cbSystemColors, cbIncludeNone, cbIncludeDefault, cbCustomColor, cbPrettyNames, cbCustomColors]
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Top = 2
|
||||
ItemHeight = 20
|
||||
TabOrder = 7
|
||||
OnChange = AnchorsColorBoxChange
|
||||
end
|
||||
object AnchorsColorListBox: TColorListBox
|
||||
AnchorSideLeft.Control = Panel1
|
||||
AnchorSideTop.Control = LabelColors
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = ComboBoxTabPosition
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 143
|
||||
Top = 354
|
||||
Width = 565
|
||||
Style = [cbCustomColors]
|
||||
OnGetColors = AnchorsColorListBoxGetColors
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
ItemHeight = 0
|
||||
OnSelectionChange = AnchorsColorListBoxSelectionChange
|
||||
TabOrder = 8
|
||||
end
|
||||
object CheckBoxTreatBorder: TCheckBox
|
||||
AnchorSideLeft.Control = Panel1
|
||||
AnchorSideTop.Control = CheckBoxTreatAlign
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 19
|
||||
Top = 289
|
||||
Width = 184
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'Automatic Treat Around Border'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 9
|
||||
end
|
||||
object CheckBoxAllowSizing: TCheckBox
|
||||
AnchorSideLeft.Control = Panel1
|
||||
AnchorSideTop.Control = CheckBoxTreatBorder
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 19
|
||||
Top = 314
|
||||
Width = 82
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'Allow Sizing'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 10
|
||||
end
|
||||
object DividerBevel1: TDividerBevel
|
||||
AnchorSideLeft.Control = Panel1
|
||||
AnchorSideTop.Control = Panel1
|
||||
AnchorSideRight.Control = ComboBoxTabPosition
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 15
|
||||
Top = 0
|
||||
Width = 571
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Bottom = 3
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object LabelTabPosition: TLabel
|
||||
AnchorSideLeft.Control = Panel1
|
||||
AnchorSideTop.Control = DividerBevel1
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 15
|
||||
Top = 18
|
||||
Width = 64
|
||||
Caption = 'Tab Position'
|
||||
ParentColor = False
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -29,6 +29,7 @@ type
|
||||
{ TFrameDockedOptions }
|
||||
|
||||
TFrameDockedOptions = class(TAbstractIDEOptionsEditor)
|
||||
cbDisableDockFormEd: TCheckBox;
|
||||
CheckBoxAnchorTabVisible: TCheckBox;
|
||||
CheckBoxForceRefreshing: TCheckBox;
|
||||
CheckBoxTreatAlign: TCheckBox;
|
||||
@ -37,6 +38,7 @@ type
|
||||
ColorBoxResizer: TColorBox;
|
||||
ComboBoxTabPosition: TComboBox;
|
||||
DividerBevelAnchors: TDividerBevel;
|
||||
DividerBevel1: TDividerBevel;
|
||||
LabelColors: TLabel;
|
||||
LabelCaptureDistance: TLabel;
|
||||
LabelMouseBorderFactor: TLabel;
|
||||
@ -44,8 +46,10 @@ type
|
||||
LabelTabPosition: TLabel;
|
||||
AnchorsColorBox: TColorBox;
|
||||
AnchorsColorListBox: TColorListBox;
|
||||
Panel1: TPanel;
|
||||
SpinEditCaptureDistance: TSpinEdit;
|
||||
SpinEditMouseBorderFactor: TSpinEdit;
|
||||
procedure cbDisableDockFormEdChange(Sender: TObject);
|
||||
procedure CheckBoxAnchorTabVisibleChange(Sender: TObject);
|
||||
procedure AnchorsColorBoxChange(Sender: TObject);
|
||||
procedure AnchorsColorListBoxGetColors(Sender: TCustomColorListBox; Items: TStrings);
|
||||
@ -68,6 +72,7 @@ type
|
||||
FLastTreatAlign: Boolean;
|
||||
FLastTreatBorder: Boolean;
|
||||
FReady: Boolean;
|
||||
FDisableChanged: Boolean;
|
||||
public
|
||||
function GetTitle: String; override;
|
||||
procedure Setup({%H-}ADialog: TAbstractOptionsEditorDialog); override;
|
||||
@ -77,6 +82,12 @@ type
|
||||
class function SupportedOptionsClass: TAbstractIDEOptionsClass; override;
|
||||
end;
|
||||
|
||||
{ TFrameDisabledDockedOptions }
|
||||
|
||||
TFrameDisabledDockedOptions = class(TFrameDockedOptions)
|
||||
constructor Create(AnOwner: TComponent); override;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.lfm}
|
||||
@ -95,6 +106,11 @@ begin
|
||||
SpinEditMouseBorderFactor.Enabled := CheckBoxAnchorTabVisible.Checked;
|
||||
end;
|
||||
|
||||
procedure TFrameDockedOptions.cbDisableDockFormEdChange(Sender: TObject);
|
||||
begin
|
||||
FDisableChanged := True;
|
||||
end;
|
||||
|
||||
procedure TFrameDockedOptions.AnchorsColorBoxChange(Sender: TObject);
|
||||
var
|
||||
i: Integer;
|
||||
@ -144,6 +160,7 @@ begin
|
||||
LabelTabPosition.Caption := STabPositionCaption;
|
||||
LabelCaptureDistance.Caption := SCaptureDistanceCaption;
|
||||
LabelMouseBorderFactor.Caption := SMouseBorderFactorCaption;
|
||||
cbDisableDockFormEd.Caption := SDisableRequiresRestart;
|
||||
|
||||
CheckBoxAllowSizing.Hint := SAllowSizingHint;
|
||||
CheckBoxAnchorTabVisible.Hint := SAnchorTabVisibleHint;
|
||||
@ -174,6 +191,8 @@ begin
|
||||
FLastTabPosition := DockedOptions.TabPosition;
|
||||
FLastTreatAlign := DockedOptions.TreatAlign;
|
||||
FLastTreatBorder := DockedOptions.TreatBorder;
|
||||
cbDisableDockFormEd.Checked := not DockedOptions.EnableDockedDesigner;
|
||||
FDisableChanged := False;
|
||||
RestoreSettings(AOptions);
|
||||
FReady := true;
|
||||
end;
|
||||
@ -196,6 +215,9 @@ begin
|
||||
DockedOptions.TabPosition := TTabPosition(ComboBoxTabPosition.ItemIndex);
|
||||
DockedOptions.TreatAlign := CheckBoxTreatAlign.Checked;
|
||||
DockedOptions.TreatBorder := CheckBoxTreatBorder.Checked;
|
||||
if FDisableChanged then
|
||||
DockedOptions.DoneAskUserEnableDockedDesigner := True;
|
||||
DockedOptions.EnableDockedDesigner := not cbDisableDockFormEd.Checked;
|
||||
|
||||
if DockedOptions.Modified then
|
||||
begin
|
||||
@ -231,5 +253,13 @@ begin
|
||||
Result := IDEEditorGroups.GetByIndex(GroupEnvironment)^.GroupClass;
|
||||
end;
|
||||
|
||||
{ TFrameDisabledDockedOptions }
|
||||
|
||||
constructor TFrameDisabledDockedOptions.Create(AnOwner: TComponent);
|
||||
begin
|
||||
inherited Create(AnOwner);
|
||||
Panel1.Visible := False;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
|
@ -69,6 +69,8 @@ type
|
||||
FAnchorTopColor: TColor;
|
||||
FCaptureDistance: Integer;
|
||||
FChangeStamp: Integer;
|
||||
FDoneAskUserEnableDockedDesigner: boolean;
|
||||
FEnableDockedDesigner: boolean;
|
||||
FForceRefreshing: Boolean;
|
||||
FLastSavedChangeStamp: Integer;
|
||||
FMouseBorderFactor: Integer;
|
||||
@ -87,6 +89,8 @@ type
|
||||
procedure SetAnchorTargetColor(AValue: TColor);
|
||||
procedure SetAnchorTopColor(AValue: TColor);
|
||||
procedure SetCaptureDistance(AValue: Integer);
|
||||
procedure SetDoneAskUserEnableDockedDesigner(AValue: boolean);
|
||||
procedure SetEnableDockedDesigner(AValue: boolean);
|
||||
procedure SetForceRefreshing(AValue: Boolean);
|
||||
procedure SetModified(AValue: Boolean);
|
||||
procedure SetMouseBorderFactor(AValue: Integer);
|
||||
@ -121,6 +125,8 @@ type
|
||||
property TabPosition: TTabPosition read FTabPosition write SetTabPosition;
|
||||
property TreatAlign: Boolean read FTreatAlign write SetTreatAlign;
|
||||
property TreatBorder: Boolean read FTreatBorder write SetTreatBorder;
|
||||
property EnableDockedDesigner: boolean read FEnableDockedDesigner write SetEnableDockedDesigner default False;
|
||||
property DoneAskUserEnableDockedDesigner: boolean read FDoneAskUserEnableDockedDesigner write SetDoneAskUserEnableDockedDesigner default False;
|
||||
end;
|
||||
|
||||
const
|
||||
@ -209,6 +215,20 @@ begin
|
||||
IncreaseChangeStamp;
|
||||
end;
|
||||
|
||||
procedure TDockedOptions.SetDoneAskUserEnableDockedDesigner(AValue: boolean);
|
||||
begin
|
||||
if FDoneAskUserEnableDockedDesigner = AValue then Exit;
|
||||
FDoneAskUserEnableDockedDesigner := AValue;
|
||||
IncreaseChangeStamp;
|
||||
end;
|
||||
|
||||
procedure TDockedOptions.SetEnableDockedDesigner(AValue: boolean);
|
||||
begin
|
||||
if FEnableDockedDesigner = AValue then Exit;
|
||||
FEnableDockedDesigner := AValue;
|
||||
IncreaseChangeStamp;
|
||||
end;
|
||||
|
||||
procedure TDockedOptions.SetForceRefreshing(AValue: Boolean);
|
||||
begin
|
||||
if FForceRefreshing = AValue then Exit;
|
||||
@ -277,6 +297,8 @@ begin
|
||||
FTabPosition := tpTop;
|
||||
FTreatAlign := True;
|
||||
FTreatBorder := True;
|
||||
FEnableDockedDesigner := False;
|
||||
FDoneAskUserEnableDockedDesigner := False;
|
||||
end;
|
||||
|
||||
procedure TDockedOptions.SaveSafe;
|
||||
@ -323,6 +345,8 @@ begin
|
||||
Cfg.SetDeleteValue('TabPosition/Value', Integer(TabPosition), Integer(tpTop));
|
||||
Cfg.SetDeleteValue('TreatAlign/Value', TreatAlign, True);
|
||||
Cfg.SetDeleteValue('TreatBorder/Value', TreatBorder, True);
|
||||
Cfg.SetDeleteValue('EnableDockedDesigner/Value', EnableDockedDesigner, False);
|
||||
Cfg.SetDeleteValue('DoneAskUserEnableDockedDesigner/Value', DoneAskUserEnableDockedDesigner, False);
|
||||
finally
|
||||
Cfg.Free;
|
||||
end;
|
||||
@ -350,6 +374,8 @@ begin
|
||||
TabPosition := TTabPosition(Cfg.GetValue('TabPosition/Value', Integer(tpTop)));
|
||||
TreatAlign := Cfg.GetValue('TreatAlign/Value', True);
|
||||
TreatBorder := Cfg.GetValue('TreatBorder/Value', True);
|
||||
EnableDockedDesigner := Cfg.GetValue('EnableDockedDesigner/Value', False);
|
||||
DoneAskUserEnableDockedDesigner := Cfg.GetValue('DoneAskUserEnableDockedDesigner/Value', False);
|
||||
finally
|
||||
Cfg.Free;
|
||||
end;
|
||||
|
@ -24,7 +24,7 @@ uses
|
||||
SrcEditorIntf, IDEWindowIntf, PropEdits, ComponentEditors, IDEOptEditorIntf,
|
||||
IDEOptionsIntf,
|
||||
// DockedFormEditor
|
||||
DockedMainIDE, DockedDesignForm, DockedOptionsIDE, DockedOptionsFrame;
|
||||
DockedMainIDE, DockedDesignForm, DockedOptionsIDE, DockedOptionsFrame, DockedSourceWindow;
|
||||
|
||||
var
|
||||
DockedOptionsFrameID: Integer = 1000;
|
||||
@ -35,36 +35,45 @@ implementation
|
||||
|
||||
procedure Register;
|
||||
begin
|
||||
Screen.AddHandlerFormAdded(TDockedMainIDE.Screen_FormAdded);
|
||||
Screen.AddHandlerRemoveForm(TDockedMainIDE.Screen_FormDel);
|
||||
Screen.AddHandlerNewFormCreated(TDesignForm.Screen_NewFormCreated);
|
||||
SourceEditorManagerIntf.RegisterChangeEvent(semWindowCreate, TDockedMainIDE.WindowCreate);
|
||||
SourceEditorManagerIntf.RegisterChangeEvent(semWindowDestroy, TDockedMainIDE.WindowDestroy);
|
||||
SourceEditorManagerIntf.RegisterChangeEvent(semWindowShow, TDockedMainIDE.WindowShow);
|
||||
SourceEditorManagerIntf.RegisterChangeEvent(semWindowHide, TDockedMainIDE.WindowHide);
|
||||
SourceEditorManagerIntf.RegisterChangeEvent(semEditorActivate, TDockedMainIDE.EditorActivated);
|
||||
SourceEditorManagerIntf.RegisterChangeEvent(semEditorDestroy, TDockedMainIDE.EditorDestroyed);
|
||||
SourceEditorManagerIntf.RegisterChangeEvent(semEditorCreate, TDockedMainIDE.EditorCreate);
|
||||
|
||||
LazarusIDE.AddHandlerOnShowDesignerFormOfSource(TDockedMainIDE.OnShowDesignerForm);
|
||||
LazarusIDE.AddHandlerOnShowSourceOfActiveDesignerForm(TDockedMainIDE.OnShowSrcEditor);
|
||||
|
||||
GlobalDesignHook.AddHandlerShowMethod(TDockedMainIDE.OnDesignShowMethod);
|
||||
GlobalDesignHook.AddHandlerModified(TDockedMainIDE.OnDesignModified);
|
||||
GlobalDesignHook.AddHandlerPersistentAdded(TDockedMainIDE.OnDesignPersistentAdded);
|
||||
GlobalDesignHook.AddHandlerPersistentDeleted(TDockedMainIDE.OnDesignPersistentDeleted);
|
||||
GlobalDesignHook.AddHandlerRefreshPropertyValues(TDockedMainIDE.OnDesignRefreshPropertyValues);
|
||||
GlobalDesignHook.AddHandlerDesignerMouseDown(TDockedMainIDE.OnDesignMouseDown);
|
||||
GlobalDesignHook.AddHandlerSetSelection(TDockedMainIDE.OnDesignSetSelection);
|
||||
|
||||
DockedOptions := TDockedOptions.Create;
|
||||
DockedOptionsFrameID := RegisterIDEOptionsEditor(GroupEnvironment, TFrameDockedOptions, DockedOptionsFrameID)^.Index;
|
||||
DockedOptions.LoadSafe;
|
||||
if DockedOptions.EnableDockedDesigner then begin
|
||||
SourceWindows := TSourceWindows.CreateNew;
|
||||
|
||||
IDETabMaster := TDockedTabMaster.Create;
|
||||
DesignForms := TDesignForms.Create;
|
||||
Screen.AddHandlerFormAdded(TDockedMainIDE.Screen_FormAdded);
|
||||
Screen.AddHandlerRemoveForm(TDockedMainIDE.Screen_FormDel);
|
||||
Screen.AddHandlerNewFormCreated(TDesignForm.Screen_NewFormCreated);
|
||||
SourceEditorManagerIntf.RegisterChangeEvent(semWindowCreate, TDockedMainIDE.WindowCreate);
|
||||
SourceEditorManagerIntf.RegisterChangeEvent(semWindowDestroy, TDockedMainIDE.WindowDestroy);
|
||||
SourceEditorManagerIntf.RegisterChangeEvent(semWindowShow, TDockedMainIDE.WindowShow);
|
||||
SourceEditorManagerIntf.RegisterChangeEvent(semWindowHide, TDockedMainIDE.WindowHide);
|
||||
SourceEditorManagerIntf.RegisterChangeEvent(semEditorActivate, TDockedMainIDE.EditorActivated);
|
||||
SourceEditorManagerIntf.RegisterChangeEvent(semEditorDestroy, TDockedMainIDE.EditorDestroyed);
|
||||
SourceEditorManagerIntf.RegisterChangeEvent(semEditorCreate, TDockedMainIDE.EditorCreate);
|
||||
|
||||
LazarusIDE.AddHandlerOnShowDesignerFormOfSource(TDockedMainIDE.OnShowDesignerForm);
|
||||
LazarusIDE.AddHandlerOnShowSourceOfActiveDesignerForm(TDockedMainIDE.OnShowSrcEditor);
|
||||
|
||||
GlobalDesignHook.AddHandlerShowMethod(TDockedMainIDE.OnDesignShowMethod);
|
||||
GlobalDesignHook.AddHandlerModified(TDockedMainIDE.OnDesignModified);
|
||||
GlobalDesignHook.AddHandlerPersistentAdded(TDockedMainIDE.OnDesignPersistentAdded);
|
||||
GlobalDesignHook.AddHandlerPersistentDeleted(TDockedMainIDE.OnDesignPersistentDeleted);
|
||||
GlobalDesignHook.AddHandlerRefreshPropertyValues(TDockedMainIDE.OnDesignRefreshPropertyValues);
|
||||
GlobalDesignHook.AddHandlerDesignerMouseDown(TDockedMainIDE.OnDesignMouseDown);
|
||||
GlobalDesignHook.AddHandlerSetSelection(TDockedMainIDE.OnDesignSetSelection);
|
||||
|
||||
DockedOptionsFrameID := RegisterIDEOptionsEditor(GroupEnvironment, TFrameDockedOptions, DockedOptionsFrameID)^.Index;
|
||||
|
||||
IDETabMaster := TDockedTabMaster.Create;
|
||||
DesignForms := TDesignForms.Create;
|
||||
end
|
||||
else begin
|
||||
DockedOptionsFrameID := RegisterIDEOptionsEditor(GroupEnvironment, TFrameDisabledDockedOptions, DockedOptionsFrameID)^.Index;
|
||||
end;
|
||||
end;
|
||||
|
||||
initialization
|
||||
DockedOptions := TDockedOptions.Create;
|
||||
|
||||
finalization
|
||||
Screen.RemoveHandlerNewFormCreated(TDesignForm.Screen_NewFormCreated);
|
||||
Screen.RemoveHandlerFormAdded(TDockedMainIDE.Screen_FormAdded);
|
||||
|
@ -467,9 +467,6 @@ begin
|
||||
LPageCtrl.ShowCode;
|
||||
end;
|
||||
|
||||
initialization
|
||||
SourceWindows := TSourceWindows.CreateNew;
|
||||
|
||||
finalization
|
||||
SourceWindows.Free;
|
||||
|
||||
|
@ -466,7 +466,12 @@ type
|
||||
end;
|
||||
|
||||
var
|
||||
IDEDockMaster: TIDEDockMaster = nil; // can be set by a package
|
||||
OnIDEDockMasterNeeded: procedure = nil;
|
||||
|
||||
procedure SetIDEDockMaster(AnIDEDockMaster: TIDEDockMaster);
|
||||
function GetIDEDockMaster: TIDEDockMaster;
|
||||
|
||||
property IDEDockMaster: TIDEDockMaster read GetIDEDockMaster write SetIDEDockMaster;
|
||||
|
||||
procedure MakeIDEWindowDockable(AControl: TWinControl);
|
||||
procedure MakeIDEWindowDockSite(AForm: TCustomForm);
|
||||
@ -484,6 +489,7 @@ uses
|
||||
|
||||
var
|
||||
FIDEWindowsGlobalOptions: TIDEWindowsGlobalOptions = nil;
|
||||
TheIDEDockMaster: TIDEDockMaster = nil; // can be set by a package
|
||||
|
||||
procedure SetPopupModeParentForPropertyEditor(const AEditorDlg: TCustomForm);
|
||||
begin
|
||||
@ -500,6 +506,18 @@ begin
|
||||
Result:=iwsNormal;
|
||||
end;
|
||||
|
||||
procedure SetIDEDockMaster(AnIDEDockMaster: TIDEDockMaster);
|
||||
begin
|
||||
TheIDEDockMaster := AnIDEDockMaster;
|
||||
end;
|
||||
|
||||
function GetIDEDockMaster: TIDEDockMaster;
|
||||
begin
|
||||
if (TheIDEDockMaster = nil) and Assigned(OnIDEDockMasterNeeded) then
|
||||
OnIDEDockMasterNeeded;
|
||||
Result := TheIDEDockMaster;
|
||||
end;
|
||||
|
||||
procedure MakeIDEWindowDockable(AControl: TWinControl);
|
||||
begin
|
||||
if Assigned(IDEDockMaster) then
|
||||
|
16
ide/main.pp
16
ide/main.pp
@ -1340,9 +1340,6 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
Application.ShowButtonGlyphs := EnvironmentGuiOpts.ShowButtonGlyphs;
|
||||
Application.ShowMenuGlyphs := EnvironmentGuiOpts.ShowMenuGlyphs;
|
||||
|
||||
OldVer:=EnvironmentOptions.OldLazarusVersion;
|
||||
NowVer:=LazarusVersionStr;
|
||||
//debugln(['TMainIDE.LoadGlobalOptions ',FEnvOptsCfgExisted,' diff=',OldVer<>NowVer,' Now=',NowVer,' Old=',OldVer,' Comp=',CompareLazarusVersion(NowVer,OldVer)]);
|
||||
@ -1571,8 +1568,6 @@ begin
|
||||
{$IFDEF IDE_MEM_CHECK}CheckHeapWrtMemCnt('TMainIDE.Create BUILD MANAGER');{$ENDIF}
|
||||
// setup macros before loading options
|
||||
MainBuildBoss.SetupTransferMacros;
|
||||
EnvironmentGuiOpts := TEnvGuiOptions.Create;
|
||||
EnvironmentOptions.RegisterSubConfig(EnvironmentGuiOpts, '/');
|
||||
EnvironmentDebugOpts := TEnvDebuggerOptions.Create;
|
||||
EnvironmentOptions.RegisterSubConfig(EnvironmentDebugOpts, 'EnvironmentOptions/');
|
||||
|
||||
@ -1585,9 +1580,6 @@ begin
|
||||
LoadGlobalOptions;
|
||||
if Application.Terminated then exit;
|
||||
|
||||
if EnvironmentGuiOpts.Desktop.SingleTaskBarButton then
|
||||
Application.TaskBarBehavior := tbSingleButton;
|
||||
|
||||
// setup code templates
|
||||
SetupCodeMacros;
|
||||
|
||||
@ -1601,6 +1593,14 @@ begin
|
||||
SetupInteractive;
|
||||
if Application.Terminated then exit;
|
||||
|
||||
EnvironmentGuiOpts := TEnvGuiOptions.Create;
|
||||
EnvironmentOptions.RegisterSubConfig(EnvironmentGuiOpts, '/',True);
|
||||
|
||||
if EnvironmentGuiOpts.Desktop.SingleTaskBarButton then
|
||||
Application.TaskBarBehavior := tbSingleButton;
|
||||
Application.ShowButtonGlyphs := EnvironmentGuiOpts.ShowButtonGlyphs;
|
||||
Application.ShowMenuGlyphs := EnvironmentGuiOpts.ShowMenuGlyphs;
|
||||
|
||||
{$IFDEF IDE_MEM_CHECK}CheckHeapWrtMemCnt('TMainIDE.Create CODETOOLS');{$ENDIF}
|
||||
|
||||
MainBuildBoss.SetupExternalTools(TExternalToolsIDE);
|
||||
|
@ -368,7 +368,7 @@ type
|
||||
procedure DoAfterWrite(Restore: boolean); override;
|
||||
// SubConfig
|
||||
function GetSubConfigObj(ASubConfigClass: TIDESubOptionsClass): TIDESubOptions;
|
||||
procedure RegisterSubConfig(ASubConfig: TIDESubOptions; APath: String);
|
||||
procedure RegisterSubConfig(ASubConfig: TIDESubOptions; APath: String; ALoadConf: Boolean = False);
|
||||
procedure UnRegisterSubConfig(ASubConfig: TIDESubOptions);
|
||||
function SubConfigCount: integer;
|
||||
property SubConfig[Index: Integer]: TIDESubOptions read GetSubConfig;
|
||||
@ -818,8 +818,8 @@ begin
|
||||
Result := Nil;
|
||||
end;
|
||||
|
||||
procedure TEnvironmentOptions.RegisterSubConfig(ASubConfig: TIDESubOptions;
|
||||
APath: String);
|
||||
procedure TEnvironmentOptions.RegisterSubConfig(ASubConfig: TIDESubOptions; APath: String;
|
||||
ALoadConf: Boolean);
|
||||
//var
|
||||
// i: Integer;
|
||||
begin
|
||||
@ -835,7 +835,11 @@ begin
|
||||
fRegisteredSubConfig.Add(ASubConfig);
|
||||
ASubConfig.FTopPath := APath;
|
||||
ASubConfig.FXMLCfg := FXMLCfg;
|
||||
// ASubConfig.ReadFromXml;
|
||||
if ALoadConf then begin
|
||||
ASubConfig.InitConfig;
|
||||
ASubConfig.FVersion:=FFileVersion;
|
||||
ASubConfig.ReadFromXml(False);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TEnvironmentOptions.UnRegisterSubConfig(ASubConfig: TIDESubOptions);
|
||||
|
Loading…
Reference in New Issue
Block a user