[Lazarus] Docking Support

Hans-Peter Diettrich DrDiettrich1 at aol.com
Sun Jul 10 10:23:44 CEST 2011


Graeme Geldenhuys schrieb:
> On Sunday, 10 July 2011, Mattias Gaertner <nc-gaertnma at netcologne.de> wrote:
>> But I think DoDi was referring to floating windows, that means top level
>> windows, not child windows.
> 
> I'll read the thread again to try and better understand the problem.

Background information:

The LCL implements interfaces to widgetsets, which represent the 
*content* of windows. That's why an application only gets notifications 
for client-area events from the widgetset.

For dragging forms another interface, to the window manager, may be 
required, but this may cause trouble with the widgetsets, which already 
communicate with the window manager. Only Windows comes with a messaging 
system that handles both window (NC) and widget related messages in the 
same way (message queue). Here the application receives *all* messages, 
and has to care for sending widget-related messages to the widgets 
(DispatchMessage, WndProc...).

But IMO you know all that already, from your implementation of fpGui. 
Perhaps just you are the right person, that can figure out how the LCL 
can work together with every window manager, for receiving and handling 
notifications?

Window docking requires a notification on MouseDown in the window NC 
area, and then the dockmanager has to instruct the window manager that 
it handles subsequent mouse events himself - kind of MouseCapture.

Is this feasable, in parallel to an widgetset?


>> For example it would be nice, to have an event when the window title is
>> dragged by the user. But since some window themes do not have a title,
> 
> Welcome to the world of X11. Sometimes it can be great, but often it
> can be a curse. :-/

One solution might be the use of the ALT-drag interface, that allows to 
move windows without or invisible title bars. I assume that such moves 
are not intercepted by the widgetsets, so that an application could use 
that for docking. It would do no harm when windows can be docked from 
the title bar on Windows, and with other procedures on other platforms. 
This may mean that window docking support has to be supplied by the RTL, 
because it has to be independent from the choosen widgetset...

DoDi





More information about the Lazarus mailing list