[Lazarus] New experimantal beta feature - View same source in multiple Windows

Hans-Peter Diettrich DrDiettrich1 at aol.com
Sun Nov 22 01:06:48 CET 2009


Mattias Gaertner schrieb:

> The unit ldockctrl is only about anchordocking. You don't need to
> use or alter it for your docking manager.

LDockCtrl describes the interface that is nailed into the IDE units and 
methods. It would be very hard to remove all that stuff, and after all 
it has to replaced by something similar. That's why I want to retain 
that interface, and only change it to use a different management internally.

> Have you solved the layout restore in your docking manager?

I can't, as long as I don't know how the IDE windows are created and 
managed (owners...). There seems to exist a dedicated OwningComponent in 
the IDE, that holds references to some (most? all?) IDE windows. The IDE 
also has to iterate over all windows when the configuration is stored, 
it's not yet clear to me how this works (TIDEWindowLayoutList?).

In a simplified model every persistent IDE window should "register" 
itself after creation. This could be done in an extended version of the 
OwningComponent, or in IDEWindowLayoutList.Apply and OnApply, which 
would make the added forms dockable. Afterwards the forms can be docked 
by the user, all related information is available in their HostDockSite. 
All other stuff, introduced with anchor docking (ControlDocker...), can 
be removed from the forms and other classes. The host sites can be 
managed independently, but their coordinates and layout should be stored 
along with the other forms' layout description. When the layout is 
restored after the next start, the stored information can be used in 
IDEWindowLayoutList.Apply, to create the dock sites and dock the forms.

DoDi





More information about the Lazarus mailing list