[Lazarus] debug windows layout

Hans-Peter Diettrich DrDiettrich1 at aol.com
Fri Feb 26 02:18:43 CET 2010


Flávio Etrusco schrieb:

> I was/am trying to work on IDE docking (as you might know ;-)
> I'm sure we should add code to make all IDE forms dockable
> automatically. If that's the case we could add some property or event
> to TApplication.

My options for dockable forms:
1a) use a handle in the client area (affects form layout)
1b) use a handle in the title bar (added button)
1c) add popup menu entry (as AnchorDocking does)
1d) move window + some key (CTRL?)

Perhaps you can make work 1b or 1d?

> My main development platform is Linux/gtk2, so I can't really say
> about Windows. I am playing with the idea of using WMMove events with
> some conditionals to trigger the drag/dock start, but for starters the
> "reason" parameter isn't "interface" in all situations I expected...

See option 1d - added for you.

For dragging purposes the IDE forms can be put (docked) into special 
container forms, that allow to (un)dock their client forms, and also 
allow to dock multiple forms into the container.

See the dockmanager/elasticsite demo and package/uMakeSite.pas for 
further features.

Mattias has to provide some means to
2a) create the IDE forms by name or class-name, for reloading a layout,
2b) storage and loading of a layout itself, and for
2c) configuring the forms as docksites (SynEdit, perhaps MainBar) or
2d) as dockable clients (all other non-modal forms).
3) a base class for the IDE layout manager, independent from anchor 
docking (the anchor docking implementation still does not work).

WRT 2c/d: A classic ("undocked") Delphi layout requires that the editor 
forms become docksites. Furthermore multiple full-fledged editor forms 
should be made work, with dedicated code explorers.
The new (SDI) layout requires that the MainBar becomes a docksite and 
the editor form becomes a dockable client, just like all the other forms.

DoDi





More information about the Lazarus mailing list