glade-3 integration for gtkmm-widgets (was: Reverse-wrapping gtkmm widgets to gtk+ (for glade3))
- From: Oliver Nittka <nittka esem com>
- To: gtkmm-list gnome org
- Cc: Murray Cumming <murrayc murrayc com>
- Subject: glade-3 integration for gtkmm-widgets (was: Reverse-wrapping gtkmm widgets to gtk+ (for glade3))
- Date: Wed, 22 Nov 2006 09:52:50 +0100
Hi,
(I'm starting a new thread as the inital problem (showing widgets in
glade 3) seems to be solved. I discovered 2 more issues about properties
and yould like to comment murray's suspicion on libglade not setting
properties)
What works:
- you can add your gtkmm-widgets to to glade3 palette by just
* defining an additional constructor
* writing some glue code that registers the types of your widgets
* specify a postcreate-function for each widget in the glade catalog
- you can add Glib::Properties to your class, these show up
automatically in glades "Properties" window for your class and get saved
to the .glade file.
see the attachment to
http://mail.gnome.org/archives/gtkmm-list/2006-November/msg00184.html as
a starter.
What needs work
(1) properties do not get set by libglade on widget instantiation.
(2) Glib::Property<enum> does not show up in glade.
(3) GLib::Property<float> cannot have a default value of 0 or smaller
Possible solutions:
(1) Murray suspected in
http://mail.gnome.org/archives/gtkmm-list/2006-November/msg00198.html
that libglade applies the properties to the GObject before constructing
the C++-object. This could possibly be fixed in libglademm, however, a
workaround would be to use glade_register_widget()
http://developer.gnome.org/doc/API/2.0/libglade/libglade-Libglade-Build.html#glade-register-widget
but i could not yet create a GladeNewFunc that works (like the
_postcreate-function does)
(2) You will frequently want to have properties that select different
behaviour and should be presentd in glade as a kind of ComboBox. If you
define a Property that takes an enum a its template parameter, it gets
mapped to glibmm__CustomBoxed type and is not shown in glade at all. I'm
curenty experimenting with making a Property that has Value_Enum as its
ValueType, but didn't have much succes so far.
(3) filed a bug on this (including patch)
http://bugzilla.gnome.org/show_bug.cgi?id=378040
Maybe a specialization of Glib::Value<float> with a replaced
create_param_spec() could serve as a workaround.
Hope we get on as well as we did up to now, folks :-)
--o
--
Oliver Nittka
ESEM Grünau GmbH & Co. KG
Dornierstraße 6, 88677 Markdorf/Germany
phone: +49 7544 9583-25, fax: +49 7544 9583-60
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]