Hans-Peter Diettrich wrote: > The question is, how to proceed. Should I provide a new Lazarus unit, as > an alternative for LDockTree, or should I update LDockTree and Controls > and submit an patch? Be warned: my implementation changes fields, > methods and properties of TDockZone, and also parts of TDockTree, so > that other docking managers will have to be updated. That's why a new > unit might be a better introduction for this changed base classes.
Lets start with a new unit. Then we will see if we need our own LazDockTree or we will replace it with yours. > Still missing is the anchoring, as done in TLazDockTree, and the > handling of messages and the display of the zone headers. It would be > nice to have a true TDockHeader component, derived from a > TCustomSplitter, so that only one additional component has to be managed > (anchored...), instead of separate zone header and splitter components. > Is this feasable? Nice idea. Really dock header can be a splitter and a header at one moment. If we use 2 controls they will be anyway placed one by one. > The header part and message processing can be taken from LDockTree, but > I'd suggest more changes to the anchoring of the docked components. IMO > the anchors are affected only by InsertControl and RemoveControl, not by > other changes like a resize of the docking site, so that the required > changes to the anchors could be reduced to just the insertion and > removal (docking and undocking) of a control. ok > For required size adjustments, after un/docking or a resize of the dock > site, multiple algorithms are applicable. In the simplest case the space > is distributed equally onto the docked controls. But the space also can > be distributed proportionally, according to the current or undocked size > of the controls. It might be a good idea to leave the choice to the > user, by means of an OnResize handler, or by a dedicated virtual method. > I'd like similar adjustments/selections for layout managers in general, > so that a coder can use the simple Delphi or the complicated Lazarus > anchors, or any other (Java like...) layout managers. Then a docking > manager can be reduced to just the handling of un/docking controls, > whereas the layout of the dock site could be delegated to an appropriate > layout manager. Yes, options are possible. But I have no idea how Java or any others layout manager works. Maybe Mattias will help you here. Best regards, Paul Ishenin. _______________________________________________ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus