On Sun, 22 Nov 2009 14:55:52 +0100 Hans-Peter Diettrich <drdiettri...@aol.com> wrote:
> 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. > > > > Which were always in IFDEF, so no one will cry if this is changed or > > broken. > > The unit is in the uses of many units, the types are reflected in class > fields etc. Yes, it is a little bit work. > I've tried to exclude the LDockCtrl stuff from the IDE, by an > conditional exclude of everything inide the LDockCtrl unit, and it > requires a lot of additional IFDEFs. I can provide an according patch, > if you don't want to complete that yourself. Let's first get some example running. Last time I tried it did not work. Maybe you can write a text/doc how it is supposed to work. > >>> 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?). > > > > This depends on your docking manager. > > I can design the docking manager according to any needs. Do you want me > to reinvent the entire IDE form layout classes and procedures? Do you think this is necessary? I hope not. > > For example the anchor docking manager works like this: > > There is one central TLazDockingManager object and every window that > > should be dockable gets a TLazControlDocker with a unique name. > > The TLazControlDocker is evitable, since all docking information is > already stored in the DockManagers. The forms do not need to know > whether they are dockable, and where they are actually docked. Their > DragMode and DragKind can be changed from outside, as is done in > TLazControlDocker.SetControl. ok. I guess you identify forms by their name? > Since I've introduced an dock grabber (the pin icon), this image control > could replace the TLazControlDocker. I only didn't succeed in making it > a new visual component, perhaps you can help me with this task? TLazControlDocker is not visual. What do you want to do? > > The IDE only needs to call LoadFromConfig/SaveToConfig (and of > > course the default form positions). > > That information has to be provided in a way that the IDE currently > uses. That's why I intended to stay with the current config files and > procedures, and only add to it the docking specific information. The IDE should use the docking manager like any LCL app would do. ... Mattias -- _______________________________________________ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus