IDEIntf: added event OnIDERestoreWindows

git-svn-id: trunk@26157 -
This commit is contained in:
mattias 2010-06-17 08:23:04 +00:00
parent f8f47af157
commit 44c32e038c
5 changed files with 36 additions and 9 deletions

View File

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

View File

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

View File

@ -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;

View File

@ -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;

View File

@ -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