[Glade-users] Newbie: Generated code differ with those in
tutorial
Damon Chaplin
damon@karuna.uklinux.net
Fri, 04 Feb 2005 11:45:42 +0000
On Thu, 2005-02-03 at 21:31, Neo Anderson wrote:
> Below is the code based on the tutorial on gtk.org:
> gint main_window_delete_event(GtkWidget* widget, GdkEvent* event,
> gpointer callback_data)
> {
> g_print("main_window_delete_event\n");
>
> return false;
> }
>
> void main_window_destroy(GtkWidget* widget, gpointer callback_data)
> {
> g_print("main_window_destroy\n");
> gtk_main_quit();
> }
>
> And here is the code generated by glade-2 (2.6.8):
> gboolean
> on_window1_delete_event (GtkWidget *widget,
> GdkEvent *event,
> gpointer user_data)
> {
> gtk_main_quit();
> return FALSE;
> }
>
>
> gboolean
> on_window1_destroy_event (GtkWidget *widget,
> GdkEvent *event,
> gpointer user_data)
> {
>
> return FALSE;
> }
>
> And the code to setup signal:
> g_signal_connect(G_OBJECT(window), "destroy",
> G_CALLBACK(main_window_destroy), NULL);
>
> I am very confused. The destroy handlers are not the same in prototype.
> What's the deal?
>
> Does anyone know something like a FAQ on delete and destroy events? I
> don't understand when and in what sequence are these two events are raised.
You are confusing the "destroy_event" and "destroy" signals.
"destroy_event" occurs when a GdkWindow is destroyed, but it isn't very
useful so forget about it. (I've never used it.)
http://developer.gnome.org/doc/API/2.0/gtk/GtkWidget.html#GtkWidget-destroy-event
"delete_event" occurs when the "x" close button on the top of the window
is clicked. Fairly simple.
http://developer.gnome.org/doc/API/2.0/gtk/GtkWidget.html#GtkWidget-delete-event
"destroy" is used to tell other objects to release any references they
hold to an object. Basically you assume that the object is about to be
destroyed/freed.
http://developer.gnome.org/doc/API/2.0/gtk/GtkObject.html#GtkObject-destroy
Damon