Re: GType stuff again!



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi!

I solved the loading now by writing my own glue code but I ran into
another problem now.

When I construct my class it has the type
gtkmm_AnjutaPlugin
which is correct. Anyway, if this GObject is passed back to the C code
the type now is GObject which is or course wrong. Of course I call
Anjuta::init() from the C code before to register the new types but this
does not seem to help.

Without having the correct type I won't be able to call any virtual
functions or to connect to signals.

Regards,
Johannes

Murray Cumming wrote:
>> On Tue, 2006-09-19 at 11:43 +0200, Johannes Schmid wrote:
>>> -----BEGIN PGP SIGNED MESSAGE-----
>>> Hash: SHA1
>>>
>>> Hi!
>>>
>>> I tried out the examples in gtkmm to find out if they are able to handle
>>> their GTypenames correclty. Unfortunately they do not:
>>>
>>> std::cout << g_type_name(get_type()) << std::endl;
> 
> Maybe get_type() isn't returning what we think it's returning, but I'm
> fairly sure that custom gtypes are being created.
> 
>>> in the cellrenderercustom example just gives me
>>> "gtkmm__GtkCellRenderer". But of course g_object_new(type) will give not
>>> give me a custom but a standart CellRenderer.
>>>
>>> Anyway, I still need something that gives me a custom type that
>>> g_object_new can handle.
>> i am confused. since g_object_new cannot possibly instantiate a C++
>> object, what is the value of get_type() returning a value that can be
>> used at the C level?
>>
>> you can't create C++ objects (the ones that gtkmm is composed of) from C
>> without a *lot* more glue code (eg. factory functions declared extern
>> "C" that return each type of object as a gpointer etc etc)
> 
> But maybe we really can make it work, by registering an appropriate init
> function for our new GType. It would be clever though.
> 
> Murray Cumming
> murrayc murrayc com
> www.murrayc.com
> www.openismus.com
> 
> 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFFEEXJ7Dsf+G5b/WsRAjQwAJ9N8y6Wws3WaElwCxwsBeMPokEEWQCg1rc5
O0PZ7uAA7WFI2FF1pRGTYyw=
=xNvD
-----END PGP SIGNATURE-----



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]