[Lazarus] IDEDialogLayoutList.ApplyLayout() is flawed

Mattias Gärtner nc-gaertnma at netcologne.de
Wed Jun 10 15:18:17 CEST 2009


Zitat von Graeme Geldenhuys <graemeg at opensoft.homeip.net>:

> Hi,
>
> As per a recent message by Mattias about using IDEDialogLayoutList to
> position add-on packages dialogs...I thought I would take a look at an
> old problem. This as been something that bugged me for ages in the "File
> Browser" add-on.  Size (width and height) is restored, but the position
> (top and left) is NOT.
>
> This is very annoying. I thought maybe I am using it wrong in the "File
> Browser" add-on, so had a look at the ide/addtoprojectdlg.pas unit and
> it has the same problem. Position (top and left) is NOT restored.
>
> Looking at the saved settings in the environmentoptions.xml file I can
> clearly see that only Width and Height is saved for any dialogs (ones
> that are not registered in the Environment > Options > Environment >
> Windows dialog).
>
> Shouldn't the following call apply all four properties? Width, Height,
> Top and Left?

No. IDEDialogLayoutList is for modal dialogs only. They should not  
store their position.

Windows that can stay open together with other IDE windows use at the  
moment the EnvironmentOptions.IDEWindowLayoutList. But there is no IDE  
interface for this, because this should be replaced by the docking  
manager.

For example the idea of the anchor docking manager is, that every  
window has a TLazControlDocker (just put one onto a form in the  
designer). The rest is done by the docking manager. But I had not the  
time to complete the restore algorithm and the recent changes probably  
broke some parts.

Maybe DoDi can outline what his docking manager requires. Maybe we can  
then create an IDE interface for IDE windows.


Mattias

--
Powered by NetMail





More information about the Lazarus mailing list