[Lazarus] LCL + GTK2 + CustomControl : Help needed
dev.dliw at gmail.com
dev.dliw at gmail.com
Tue May 14 22:32:44 CEST 2013
Hi,
sorry to be so insistent, but I can't imagine noone has an idea :(
No LCLGTK2 maintainer on this list?
To put it in a nutshell:
I need to get / create a handle via LCL or GTK2 directly, which is a
gtkcontainer, with no bin.child attached...
or - seeing that LCL creates a bigger hierarchy for one control - the handle,
to which children can be attached
Just like a button can be attached to a form / panel / groupbox...
The result of GetFixedWidget with the Handle created by default
TWinControl.CreateWnd seems to be ok, but anything added with gtk_pack
(which is the way the library attaches itself AFAIK)
simply isn't displayed...
Maybe *the* one call to inform LCL about the new child is missing...
Any ideas?
Would it help, if I uploaded everything I have so far to e.g. github?
[ I plan to publish one of these components anyway...]
Somehow I have the feeling, I don't see any trees being in a forest... :D
=== Additional info ===
I spend a couple more hours with trial and error - leading nowhere...
I found
1. FinishCreateHandle, which seems to take a gtkwidget and add lcl specific
info to it
2. GetFixedWidget and FixedPutControl
Unfortunately there's no documentation - and little to no comments in the
sources
(2) seemed to work (no errors on startup and destroy), but nothing was visible
I already found out, how LCL internally uses GTKbin to save additonal infos
for LCL (with gtk_object_get_data, which is marked depreciated btw.) and how
things roughly work - but still no idea where to start...
Two more possible hints:
1. A groupbox's handle worked fine, after setting its bin.child to nil. This
broke LCL when cleaning up things, but apart from that everything worked as
expected: resize / update / no flicker etc.
2. I found out that TForm has a vbox by default for the menu (according to the
comments in the source). Passing its handle to the library things worked, too
- but of course it was in the wrong place...
Regards,
d.l.i.w
More information about the Lazarus
mailing list