Monserrat Seisdedos Nu�ez wrote:
> Hello everybody:
>
> I have a window, it has the X button to destroy it.
> but i want the X button to just hide it not to destroy it. In the destroy
> callback i wrote down:
>
> gtk_window_hide(window);
>
> but it seems to destroy the window as well.
>
> Maybe i can mask the destroy signal for this window, can anybody help me?
>
/* gcc -Wall -g test.c -o test `pkg-config --cflags --libs gtk+-2.0` */
#include <gtk/gtk.h>
static void close_app(GtkWidget *, gpointer);
static gint delete_event(GtkWidget *, GdkEvent *, gpointer);
static void destroy(GtkWidget *, gpointer);
int main(int argc, char *argv[]) {
GtkWidget *window;
GtkWidget *button;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
/* set a callback for the "delete_event" signal (generated by the window
manager when the user clicks the close button on the window frame) */
g_signal_connect(G_OBJECT(window), "delete_event",
G_CALLBACK(delete_event), NULL);
/* called if we return FALSE in the "delete_event" callback */
g_signal_connect(G_OBJECT(window), "destroy",
G_CALLBACK(destroy), NULL);
gtk_container_set_border_width(GTK_CONTAINER(window), 10);
button = gtk_button_new_with_label("Close");
g_signal_connect(G_OBJECT(button), "clicked",
G_CALLBACK(close_app), NULL);
gtk_container_add(GTK_CONTAINER(window), button);
gtk_widget_show(button);
gtk_widget_show(window);
gtk_main();
return 0;
}
void close_app(GtkWidget *widget, gpointer data) {
gtk_main_quit();
}
gint delete_event(GtkWidget *widget, GdkEvent *event, gpointer data) {
g_print("delete_event : attempting to iconify\n");
gtk_window_iconify(GTK_WINDOW(data));
/* change to FALSE and app will be destroyed with a "delete_event" */
return TRUE;
}
void destroy(GtkWidget *widget, gpointer data) {
gtk_main_quit();
}
--
[EMAIL PROTECTED] (work)
[EMAIL PROTECTED] (home)
_______________________________________________
gtk-list mailing list
[EMAIL PROTECTED]
http://mail.gnome.org/mailman/listinfo/gtk-list