mirror of https://gitlab.com/basile.b/dexed.git
add action to reset the layout programmatically, close #191
This commit is contained in:
parent
23652be83b
commit
0978c99c7d
|
@ -109,6 +109,7 @@ type
|
||||||
actFileMetricsHalstead: TAction;
|
actFileMetricsHalstead: TAction;
|
||||||
actFileCloseAllOthers: TAction;
|
actFileCloseAllOthers: TAction;
|
||||||
actFileCloseAll: TAction;
|
actFileCloseAll: TAction;
|
||||||
|
actLayoutReset: TAction;
|
||||||
actProjDscan: TAction;
|
actProjDscan: TAction;
|
||||||
actProjGroupCompileCustomSync: TAction;
|
actProjGroupCompileCustomSync: TAction;
|
||||||
actProjGroupClose: TAction;
|
actProjGroupClose: TAction;
|
||||||
|
@ -275,6 +276,7 @@ type
|
||||||
procedure actFileRunExecute(Sender: TObject);
|
procedure actFileRunExecute(Sender: TObject);
|
||||||
procedure actFileRunOutExecute(Sender: TObject);
|
procedure actFileRunOutExecute(Sender: TObject);
|
||||||
procedure actFileSaveCopyAsExecute(Sender: TObject);
|
procedure actFileSaveCopyAsExecute(Sender: TObject);
|
||||||
|
procedure actLayoutResetExecute(Sender: TObject);
|
||||||
procedure actNewGroupExecute(Sender: TObject);
|
procedure actNewGroupExecute(Sender: TObject);
|
||||||
procedure actProjAddToGroupExecute(Sender: TObject);
|
procedure actProjAddToGroupExecute(Sender: TObject);
|
||||||
procedure actProjDscanExecute(Sender: TObject);
|
procedure actProjDscanExecute(Sender: TObject);
|
||||||
|
@ -430,7 +432,8 @@ type
|
||||||
procedure getCMdParams;
|
procedure getCMdParams;
|
||||||
procedure InitMRUs;
|
procedure InitMRUs;
|
||||||
procedure InitWidgets;
|
procedure InitWidgets;
|
||||||
procedure InitDocking;
|
procedure InitDocking(reset: boolean = false);
|
||||||
|
procedure DefaultDocking;
|
||||||
procedure InitOptionsMenu;
|
procedure InitOptionsMenu;
|
||||||
procedure LoadSettings;
|
procedure LoadSettings;
|
||||||
procedure SaveSettings;
|
procedure SaveSettings;
|
||||||
|
@ -1405,36 +1408,69 @@ begin
|
||||||
setSplitterWheelEvent;
|
setSplitterWheelEvent;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEMainForm.InitDocking;
|
procedure TCEMainForm.InitDocking(reset: boolean = false);
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
widg: TCEWidget;
|
widg: TCEWidget;
|
||||||
topsite : TControl;
|
topsite : TControl;
|
||||||
topsplt : TAnchorDockSplitter;
|
topsplt : TAnchorDockSplitter;
|
||||||
begin
|
begin
|
||||||
DockMaster.MakeDockSite(Self, [akBottom], admrpChild);
|
|
||||||
DockMaster.OnShowOptions := @ShowAnchorDockOptions;
|
|
||||||
DockMaster.HeaderStyle := adhsPoints;
|
|
||||||
DockMaster.HideHeaderCaptionFloatingControl := true;
|
|
||||||
|
|
||||||
// makes widget dockable
|
if not reset then
|
||||||
for i := 0 to fWidgList.Count-1 do
|
|
||||||
begin
|
begin
|
||||||
widg := fWidgList.widget[i];
|
DockMaster.MakeDockSite(Self, [akBottom], admrpChild);
|
||||||
if not widg.isDockable then continue;
|
DockMaster.OnShowOptions := @ShowAnchorDockOptions;
|
||||||
DockMaster.MakeDockable(widg, true);
|
DockMaster.HeaderStyle := adhsPoints;
|
||||||
DockMaster.GetAnchorSite(widg).Header.HeaderPosition := adlhpTop;
|
DockMaster.HideHeaderCaptionFloatingControl := true;
|
||||||
widg.onDockingChanged:= @widgetDockingChanged;
|
// makes widget dockable
|
||||||
|
for i := 0 to fWidgList.Count-1 do
|
||||||
|
begin
|
||||||
|
widg := fWidgList.widget[i];
|
||||||
|
if not widg.isDockable then continue;
|
||||||
|
DockMaster.MakeDockable(widg, true);
|
||||||
|
DockMaster.GetAnchorSite(widg).Header.HeaderPosition := adlhpTop;
|
||||||
|
widg.onDockingChanged:= @widgetDockingChanged;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// load existing or default docking
|
// load existing or default docking
|
||||||
if FileExists(getCoeditDocPath + 'docking.xml') and LoadDocking() then
|
if not reset and FileExists(getCoeditDocPath + 'docking.xml') and LoadDocking() then
|
||||||
begin end
|
begin end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
Height := 0;
|
|
||||||
|
if reset then
|
||||||
|
begin
|
||||||
|
for i := 0 to fWidgList.Count-1 do
|
||||||
|
begin
|
||||||
|
widg := fWidgList.widget[i];
|
||||||
|
if not widg.isDockable then
|
||||||
|
continue;
|
||||||
|
if not widg.Visible then
|
||||||
|
continue;
|
||||||
|
if widg = fEditWidg then
|
||||||
|
continue;
|
||||||
|
if DockMaster.GetAnchorSite(widg).isNotNil then
|
||||||
|
DockMaster.GetAnchorSite(widg).ManualFloat(widg.ClientRect, false);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
if not reset then
|
||||||
|
begin
|
||||||
|
Height := 0;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
if WindowState = wsMaximized then
|
||||||
|
WindowState:= wsNormal;
|
||||||
|
Height := 600;
|
||||||
|
Width := 800;
|
||||||
|
end;
|
||||||
|
|
||||||
// center
|
// center
|
||||||
DockMaster.ManualDock(DockMaster.GetAnchorSite(fEditWidg), DockMaster.GetSite(Self), alBottom);
|
if not reset then
|
||||||
|
DockMaster.ManualDock(DockMaster.GetAnchorSite(fEditWidg), DockMaster.GetSite(Self), alBottom);
|
||||||
|
|
||||||
DockMaster.ManualDock(DockMaster.GetAnchorSite(fMesgWidg), DockMaster.GetSite(fEditWidg), alBottom);
|
DockMaster.ManualDock(DockMaster.GetAnchorSite(fMesgWidg), DockMaster.GetSite(fEditWidg), alBottom);
|
||||||
DockMaster.ManualDock(DockMaster.GetAnchorSite(fLibMWidg), DockMaster.GetSite(fMesgWidg), alClient, fMesgWidg);
|
DockMaster.ManualDock(DockMaster.GetAnchorSite(fLibMWidg), DockMaster.GetSite(fMesgWidg), alClient, fMesgWidg);
|
||||||
DockMaster.ManualDock(DockMaster.GetAnchorSite(fTodolWidg), DockMaster.GetSite(fMesgWidg), alClient, fMesgWidg);
|
DockMaster.ManualDock(DockMaster.GetAnchorSite(fTodolWidg), DockMaster.GetSite(fMesgWidg), alClient, fMesgWidg);
|
||||||
|
@ -1488,6 +1524,11 @@ begin
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TCEMainForm.DefaultDocking;
|
||||||
|
begin
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TCEMainForm.LoadSettings;
|
procedure TCEMainForm.LoadSettings;
|
||||||
var
|
var
|
||||||
fname: string;
|
fname: string;
|
||||||
|
@ -2412,6 +2453,12 @@ begin
|
||||||
free;
|
free;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TCEMainForm.actLayoutResetExecute(Sender: TObject);
|
||||||
|
begin
|
||||||
|
InitDocking(true);
|
||||||
|
end;
|
||||||
|
|
||||||
{$ENDREGION}
|
{$ENDREGION}
|
||||||
|
|
||||||
{$REGION edit ------------------------------------------------------------------}
|
{$REGION edit ------------------------------------------------------------------}
|
||||||
|
@ -3205,6 +3252,10 @@ var
|
||||||
itm: TMenuItem;
|
itm: TMenuItem;
|
||||||
i: integer;
|
i: integer;
|
||||||
begin
|
begin
|
||||||
|
itm := TMenuItem.Create(self);
|
||||||
|
itm.Action := actLayoutReset;
|
||||||
|
mnuLayout.Add(itm);
|
||||||
|
|
||||||
itm := TMenuItem.Create(self);
|
itm := TMenuItem.Create(self);
|
||||||
itm.Action := actLayoutSave;
|
itm.Action := actLayoutSave;
|
||||||
mnuLayout.Add(itm);
|
mnuLayout.Add(itm);
|
||||||
|
|
Loading…
Reference in New Issue