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
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus