[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