[Glade-users] glade mystery
- From: michael aps umn edu (Michael Koppelman)
- Subject: [Glade-users] glade mystery
- Date: 23 Jun 2003 19:41:34 -0500
Thank you for your reply.
The glade file has this line in it:
<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
While troubleshooting this I recompile and reinstalled everything from
scratch using the latest stable versions. I know for a fact I am linking
against the latest glib, gtk, etc.
Nothing I do has changed this situation. If I build my code with a fresh
glade-2 against fresh everything else, I get the errors below.
Can anyone explain why I get this damn GTK_IS_LABEL assertion failure
when GTK_OBJECT is changed to G_OBJECT? As to why it changed from
GTK_OBJECT to G_OBJECT I wouldn't really care if it worked. The glade
file has the labels in question clearly defined as being of class
GtkLabel.
Thanks!
Michael Koppelman
On Wed, 2003-06-18 at 04:24, Rikke D. Giles wrote:
Hello,
Check the versions under which the glade file was written (the actual
glade version) and the one you are building the code with. Most likely
they are not the same. G_OBJECT came into use with gtk2. If you run
autogen.sh and have say, a redhat system, it'll work because it has
both gtk1 and gtk2 on it and the dependencies are satisfied. However,
glade2 will not generate the proper code for gtk1. Hope this makes
sense,
Cheers,
Rikke
On 2003.06.17 22:00, Michael Koppelman wrote:
I'm stumped. I have a glade file. It hasn't changed in the last 12
days
according to CVS. I have been working on callbacks over those days and
haven't messed with the GUI. If I do a fresh CVS checkout of the
project
and run ./autogen.sh; make and then run my app it works perfectly.
Now I open the Glade file (with the same version/install), change
nothing and have it build the sources. Now when I run the app I get:
(cspec:3204): Gtk-CRITICAL **: file gtklabel.c: line 937
(gtk_label_set_text): assertion `GTK_IS_LABEL (label)' failed
It fails on a call to gtk_label_set_text.
Inspection of the changes in the files reveals that in interface.c
this:
#define GLADE_HOOKUP_OBJECT(component,widget,name) \
gtk_object_set_data_full (GTK_OBJECT (component), name, \
gtk_widget_ref (widget), (GtkDestroyNotify) gtk_widget_unref)
#define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \
gtk_object_set_data (GTK_OBJECT (component), name, widget)
...has been changed to this:
#define GLADE_HOOKUP_OBJECT(component,widget,name) \
g_object_set_data_full (G_OBJECT (component), name, \
gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref)
#define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \
g_object_set_data (G_OBJECT (component), name, widget)
If I change these definitions back, it works fine.
My question is: why is this happening? For some reasons it is using
G_OBJECT in the macro instead of GTK_OBJECT. There are similar changes
in support.c. As I said the glade file, glade itself, glib and all the
other libs have not changed. Any ideas?
Thanks!
Michael Koppelman
_______________________________________________
Glade-users maillist - Glade-users lists ximian com
http://lists.ximian.com/mailman/listinfo/glade-users
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]