mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-11-03 13:23:10 +01:00
IDEIntf: added event OnIDERestoreWindows
git-svn-id: trunk@26157 -
This commit is contained in:
parent
f8f47af157
commit
44c32e038c
@ -57,11 +57,12 @@ type
|
||||
procedure MakeIDEWindowDockSite(AForm: TCustomForm); override;
|
||||
procedure MakeIDEWindowDockable(AControl: TWinControl); override;
|
||||
function GetDefaultLayoutFilename: string;
|
||||
procedure LoadDefaultLayout; override;
|
||||
procedure LoadDefaultLayout;
|
||||
procedure SaveDefaultLayout;
|
||||
procedure ShowForm(AForm: TCustomForm; BringToFront: boolean); override;
|
||||
procedure CloseAll; override;
|
||||
procedure OnIDEClose(Sender: TObject);
|
||||
procedure OnIDERestoreWindows(Sender: TObject);
|
||||
end;
|
||||
|
||||
var
|
||||
@ -73,7 +74,8 @@ implementation
|
||||
|
||||
procedure Register;
|
||||
begin
|
||||
|
||||
LazarusIDE.AddHandlerOnIDERestoreWindows(@IDEAnchorDockMaster.OnIDERestoreWindows);
|
||||
LazarusIDE.AddHandlerOnIDEClose(@IDEAnchorDockMaster.OnIDEClose);
|
||||
end;
|
||||
|
||||
{ TIDEAnchorDockMaster }
|
||||
@ -188,7 +190,7 @@ var
|
||||
DockSiblingName: string;
|
||||
DockAlign: TAlign;
|
||||
DockSibling: TCustomForm;
|
||||
NewDockSite: TWinControl;
|
||||
NewDockSite: TAnchorDockHostSite;
|
||||
Site: TAnchorDockHostSite;
|
||||
begin
|
||||
debugln(['TIDEAnchorDockMaster.ShowForm ',DbgSName(AForm),' BringToFront=',BringToFront]);
|
||||
@ -254,6 +256,11 @@ begin
|
||||
SaveDefaultLayout;
|
||||
end;
|
||||
|
||||
procedure TIDEAnchorDockMaster.OnIDERestoreWindows(Sender: TObject);
|
||||
begin
|
||||
LoadDefaultLayout;
|
||||
end;
|
||||
|
||||
initialization
|
||||
// create the dockmaster in the initialization section, so that it is ready
|
||||
// when the Register procedures of the packages are called.
|
||||
|
||||
@ -60,11 +60,12 @@ type
|
||||
function IsDockSite(AForm: TCustomForm): boolean;
|
||||
function IsDockable(AForm: TCustomForm): boolean;
|
||||
function GetDefaultLayoutFilename: string;
|
||||
procedure LoadDefaultLayout; override;
|
||||
procedure LoadDefaultLayout;
|
||||
procedure SaveDefaultLayout;
|
||||
procedure ShowForm(AForm: TCustomForm; BringToFront: boolean); override;
|
||||
procedure CloseAll; override;
|
||||
procedure OnIDEClose(Sender: TObject);
|
||||
procedure OnIDERestoreWindows(Sender: TObject);
|
||||
end;
|
||||
|
||||
var
|
||||
@ -76,6 +77,7 @@ implementation
|
||||
|
||||
procedure Register;
|
||||
begin
|
||||
LazarusIDE.AddHandlerOnIDERestoreWindows(@IDEEasyDockMaster.OnIDERestoreWindows);
|
||||
LazarusIDE.AddHandlerOnIDEClose(@IDEEasyDockMaster.OnIDEClose);
|
||||
end;
|
||||
|
||||
@ -282,6 +284,11 @@ begin
|
||||
SaveDefaultLayout;
|
||||
end;
|
||||
|
||||
procedure TIDEEasyDockMaster.OnIDERestoreWindows(Sender: TObject);
|
||||
begin
|
||||
LoadDefaultLayout;
|
||||
end;
|
||||
|
||||
initialization
|
||||
// create the dockmaster in the initialization section, so that it is ready
|
||||
// when the Register procedures of the packages are called.
|
||||
|
||||
@ -2226,12 +2226,9 @@ var
|
||||
ALayout: TSimpleWindowLayout;
|
||||
AForm: TCustomForm;
|
||||
begin
|
||||
DoCallNotifyHandler(lihtIDERestoreWindows);
|
||||
if IDEDockMaster<>nil then
|
||||
begin
|
||||
IDEDockMaster.LoadDefaultLayout;
|
||||
exit;
|
||||
end;
|
||||
|
||||
for i:=0 to EnvironmentOptions.IDEWindowLayoutList.Count-1 do begin
|
||||
ALayout:=EnvironmentOptions.IDEWindowLayoutList[i];
|
||||
if not ALayout.Visible then continue;
|
||||
|
||||
@ -222,7 +222,6 @@ type
|
||||
public
|
||||
procedure MakeIDEWindowDockable(AControl: TWinControl); virtual; abstract; // make AControl dockable, it can be docked and other dockable windows can be docked to it, this does not make it visible
|
||||
procedure MakeIDEWindowDockSite(AForm: TCustomForm); virtual; abstract; // make AForm a dock site, AForm can not be docked, its Parent must be kept nil, this does not make it visible
|
||||
procedure LoadDefaultLayout; virtual; abstract; // called before opening the first project
|
||||
procedure ShowForm(AForm: TCustomForm; BringToFront: boolean); virtual; abstract; // make a form visible, set BringToFront=true if form should be shown on active screen and on front of other windows, normally this focus the form
|
||||
procedure CloseAll; virtual; // close all forms, called after IDE has saved all and shuts down
|
||||
end;
|
||||
|
||||
@ -129,6 +129,7 @@ type
|
||||
TLazarusIDEHandlerType = (
|
||||
lihtSavingAll, // called before IDE saves everything
|
||||
lihtSavedAll, // called after IDE saved everything
|
||||
lihtIDERestoreWindows, // called when IDE is restoring the windows (before opening the first project)
|
||||
lihtIDEClose, // called when IDE is shutting down (after closequery, so no more interactivity)
|
||||
lihtProjectOpened,// called after IDE opened a project
|
||||
lihtProjectClose, // called before IDE closes a project
|
||||
@ -285,6 +286,10 @@ type
|
||||
procedure AddHandlerOnSavedAll(const OnSaveAllEvent: TModalResultFunction;
|
||||
AsLast: boolean = false);
|
||||
procedure RemoveHandlerOnSavedAll(const OnSaveAllEvent: TModalResultFunction);
|
||||
procedure AddHandlerOnIDERestoreWindows(const OnIDERestoreWindowsEvent: TNotifyEvent;
|
||||
AsLast: boolean = false);
|
||||
procedure RemoveHandlerOnIDERestoreWindows(
|
||||
const OnIDERestoreWindowsEvent: TNotifyEvent);
|
||||
procedure AddHandlerOnIDEClose(const OnIDECloseEvent: TNotifyEvent;
|
||||
AsLast: boolean = false);
|
||||
procedure RemoveHandlerOnIDEClose(const OnIDECloseEvent: TNotifyEvent);
|
||||
@ -433,6 +438,18 @@ begin
|
||||
RemoveHandler(lihtSavedAll,TMethod(OnSaveAllEvent));
|
||||
end;
|
||||
|
||||
procedure TLazIDEInterface.AddHandlerOnIDERestoreWindows(
|
||||
const OnIDERestoreWindowsEvent: TNotifyEvent; AsLast: boolean);
|
||||
begin
|
||||
AddHandler(lihtIDERestoreWindows,TMethod(OnIDERestoreWindowsEvent),AsLast);
|
||||
end;
|
||||
|
||||
procedure TLazIDEInterface.RemoveHandlerOnIDERestoreWindows(
|
||||
const OnIDERestoreWindowsEvent: TNotifyEvent);
|
||||
begin
|
||||
RemoveHandler(lihtIDERestoreWindows,TMethod(OnIDERestoreWindowsEvent));
|
||||
end;
|
||||
|
||||
procedure TLazIDEInterface.AddHandlerOnIDEClose(
|
||||
const OnIDECloseEvent: TNotifyEvent; AsLast: boolean);
|
||||
begin
|
||||
|
||||
Loading…
Reference in New Issue
Block a user