[Lazarus] Linux Window Handles
SteveG
steveg at nevets.com.au
Sun Aug 3 13:04:44 CEST 2008
So far I have found that Laz uses a Gtk pointer to a structure rather
than a window handle directly.
Anybody know what type of structure (and where to find it) ?
SteveG wrote:
> Thanks Graeme
> I will see if I can find how to convert from GTK to LCL handles (your
> theory sounds good)
> I have been waiting for fpGUI to be stable enough to use anyway (from
> the LCL point of view),
> so this issue may be a null point soon anyway for me.
>
> 'xwininfo' does indeed find the 'main' window, but I am calling
> 'xquerytree' to get a list of windows
> and children (using xwininfo just for testing), and dont seem to be able
> to find how to determine which is the 'main' from the returned data
> (seem to be a lot of 'no name' windows in the tree - many at the top level)
>
> Graeme Geldenhuys wrote:
>
>> On Sun, Aug 3, 2008 at 6:37 AM, SteveG <steveg at nevets.com.au> wrote:
>>
>>
>>> Having a problem understanding the usage of window handles in Linux
>>>
>>> Linux (Ubuntu 8.04):
>>> I can find no correlation between the Laz supplied window handle
>>> (Form1.Handle), and the X11 required handle - found using 'xwininfo -int
>>> -tree' (and clicking on Form1 of testapp)
>>> As an example, Laz returned 138531872, xwininfo returned 62915166.
>>>
>>>
>> I think the following is true, but I might be wrong. Due to the fact
>> that LCL doesn't talk directly to XLib (unlike fpGUI), it returns some
>> GTK object handle. I guess you need to find a way to convert or query
>> the actual X11 handle from that GTK object handle. This is just a
>> guess.
>>
>>
>>
>>> As an aside to this, how do I determine the 'main/important' window
>>> handle from the list returned by
>>>
>>>
>> I simply use "xwininfo -tree" and gives me the following results,
>> after I clicked on the window I am interested in.
>>
>> ----------------------[ start ]------------------------------
>> graemeg at graemeg-laptop:~$ xwininfo -tree
>>
>> xwininfo: Please select the window about which you
>> would like information by clicking the
>> mouse in that window.
>>
>> xwininfo: Window id: 0x2e000a4 "Vodafone Mobile Connect Card driver for Linux"
>>
>> Root window id: 0x5b (the root window) (has no name)
>> Parent window id: 0x100013d (has no name)
>> 25 children:
>> 0x2e000fd (has no name): () 578x15+2+468 +1305+1150
>> 0x2e000fc (has no name): () 15x3+583+462 +1886+1144
>> 0x2e000f5 (has no name): () 576x1+3+463 +1306+1145
>> 1 child:
>> 0x2e000f6 (has no name): () 566x1+5+5 +1311+1150
>> 1 child:
>> 0x2e000f7 (has no name): () 566x1+0+0 +1311+1150
>> 0x2e000f4 (has no name): () 600x27+0+433 +1303+1115
>> 0x2e000f3 (has no name): () 168x87+416+307 +1719+989
>> 0x2e000d8 (has no name): () 168x87+242+307 +1545+989
>> <...snip....>
>> ------------[ end ]-----------------
>>
>> Now that clearly shows the root id (desktop or Root window id: 0x5b)
>> and the main window I clicked on (Parent window id: 0x100013d) and
>> then it's 25 children with their positions.
>>
>>
>> Regards,
>> - Graeme -
>>
>>
>> _______________________________________________
>> fpGUI - a cross-platform Free Pascal GUI toolkit
>> http://opensoft.homeip.net/fpgui/
>> _______________________________________________
>> Lazarus mailing list
>> Lazarus at lazarus.freepascal.org
>> http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
>>
>>
>>
>
> _______________________________________________
> Lazarus mailing list
> Lazarus at lazarus.freepascal.org
> http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
>
>
More information about the Lazarus
mailing list