[Lazarus] Docking Support

Hans-Peter Diettrich DrDiettrich1 at aol.com
Fri Jul 8 19:46:41 CEST 2011


Sven Barth schrieb:
> Am 08.07.2011 08:34, schrieb Graeme Geldenhuys:
>> On 07/07/2011 08:21 PM, Hans-Peter Diettrich wrote:
>>>
>>> I can provide you an patch, that makes docking work again.
>>
>> So why not apply it to Trunk?
>>
>>
> 
> Hans-Peter already reported those patches (or are those new ones?), but 
> they are still waiting for application.

<whine>
I see no use for providing new patches, as long as nobody cares about 
the older ones.

The "anchor docking" pet of some developer(s) seems to block all other 
docking models and, even worse, possible damage to the Delphi-compatible 
docking is no more tested :-(

I agree that the Delphi docking model is not very usable on non-Windows 
platforms, but anchor docking is not a good replacement for it. 
According to my research a different model could be both simpler and 
platform independent. But as long as the Lazarus developers do not 
understand docking and layout management in general, and do not even 
consider models except of their own, I see no light at the end of the 
tunnel :-(
</whine>

Of course Paul is right, when he tells me to "not change the LCL 
radically", but I see many items that suffer from a poor design. 
Unfortunately it is not easy to replace obvious misfeatures in the LCL 
and IDE by other features, due to the lack of proper encapsulation. IMO 
Lazarus still is in the "downward spiral", with immense bloat and 
spaghettis here and there, that will become unmanageable in the end.

>>> BTW: what platform?
>>
>> Isn't that irrelevant? LCL is supposed to be cross-platform.
> 
> It is true that the LCL is cross-platform, but the implementation of 
> functionality might not be. And as I remember Hans-Peter only works on 
> Windows and that is why he asks.

Right. On all other platforms the widgetsets sit on top of an window 
manager, which influences dragging and docking entire windows (forms). 
The current (platform independent) workaround is a dock header, added to 
all dockable forms. This does not only look clumsy, the implementation 
is fragile and asks for better LCL integration.

As the OP suggests, "pinnable" windows could be a more platform 
independent solution. But while I could add an according gadget to the 
title bar of Windows forms, I have absolutely no idea how this could be 
done on other platforms (window managers). If somebody can contribute an 
implementation of such a gadget, I'm willing to assist in the 
integration into the LCL. Otherwise we'll have to wait for the Delphi 
solution for dockable forms, and I bet that this never will come :-(

DoDi





More information about the Lazarus mailing list