diff --git a/ChangeLog b/ChangeLog index 029f2c2060..d26cf9b18c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,21 @@ +Sun Mar 15 06:15:37 1998 Tim Janik + + * plug-ins/exchange/exchange.c (doDialog): also destroy the main dialog + if the "Cancel" button is clicked. + + * plug-ins/flame/flame.c: use gtk_quit_add_destroy instead of + gtk_quit_add (,gtk_widget_destroy,), i should have really known + better since i wrote gtk_quit_add_destroy() exclusively for the gimp ;) + * app/tips_dialog.c (tips_dialog_create): likewise. + * app/indexed_palette.c (indexed_palette_create): likewise. + * app/fileops.c (file_open_callback): likewise. + * app/fileops.c (file_save_as_callback): likewise. + Sun Mar 15 03:54:58 1998 Tim Janik + * plug-ins/AlienMap/AlienMap.c: show/hide about dialog, don't affect + the main dialog. + * plug-ins/flame/flame.c (edit_callback): hide the dialog on delete. (make_file_dlg): hide the dialog on delete. diff --git a/app/dialogs/tips-dialog.c b/app/dialogs/tips-dialog.c index 9771ff873e..4d5afdd7b7 100644 --- a/app/dialogs/tips-dialog.c +++ b/app/dialogs/tips-dialog.c @@ -58,7 +58,7 @@ tips_dialog_create () gtk_signal_connect (GTK_OBJECT (tips_dialog), "delete_event", GTK_SIGNAL_FUNC (tips_dialog_hide), NULL); /* destroy the tips window if the mainlevel gtk_main() function is left */ - gtk_quit_add (1, (GtkFunction) gtk_widget_destroy, tips_dialog); + gtk_quit_add_destroy (1, GTK_OBJECT (tips_dialog)); vbox = gtk_vbox_new (FALSE, 0); gtk_container_add (GTK_CONTAINER (tips_dialog), vbox); diff --git a/app/fileops.c b/app/fileops.c index d87c52a146..ac5de856dd 100644 --- a/app/fileops.c +++ b/app/fileops.c @@ -481,7 +481,7 @@ file_open_callback (GtkWidget *w, GTK_SIGNAL_FUNC (file_dialog_hide), NULL); gtk_signal_connect (GTK_OBJECT (GTK_FILE_SELECTION (fileload)->ok_button), "clicked", (GtkSignalFunc) file_open_ok_callback, fileload); - gtk_quit_add (1, (GtkFunction) gtk_widget_destroy, fileload); + gtk_quit_add_destroy (1, GTK_OBJECT (fileload)); } else { @@ -571,7 +571,7 @@ file_save_as_callback (GtkWidget *w, GTK_SIGNAL_FUNC (file_dialog_hide), NULL); gtk_signal_connect (GTK_OBJECT (GTK_FILE_SELECTION (filesave)->ok_button), "clicked", (GtkSignalFunc) file_save_ok_callback, filesave); - gtk_quit_add (1, (GtkFunction) gtk_widget_destroy, filesave); + gtk_quit_add_destroy (1, GTK_OBJECT (filesave)); } else { diff --git a/app/gui/tips-dialog.c b/app/gui/tips-dialog.c index 9771ff873e..4d5afdd7b7 100644 --- a/app/gui/tips-dialog.c +++ b/app/gui/tips-dialog.c @@ -58,7 +58,7 @@ tips_dialog_create () gtk_signal_connect (GTK_OBJECT (tips_dialog), "delete_event", GTK_SIGNAL_FUNC (tips_dialog_hide), NULL); /* destroy the tips window if the mainlevel gtk_main() function is left */ - gtk_quit_add (1, (GtkFunction) gtk_widget_destroy, tips_dialog); + gtk_quit_add_destroy (1, GTK_OBJECT (tips_dialog)); vbox = gtk_vbox_new (FALSE, 0); gtk_container_add (GTK_CONTAINER (tips_dialog), vbox); diff --git a/app/indexed_palette.c b/app/indexed_palette.c index bbdd552a9a..3a2663f998 100644 --- a/app/indexed_palette.c +++ b/app/indexed_palette.c @@ -137,7 +137,7 @@ indexed_palette_create (int gimage_id) gtk_signal_connect (GTK_OBJECT (indexedP->shell), "delete_event", GTK_SIGNAL_FUNC (gtk_widget_hide_on_delete), NULL); - gtk_quit_add (1, (GtkFunction) gtk_widget_destroy, indexedP->shell); + gtk_quit_add_destroy (1, GTK_OBJECT (indexedP->shell)); indexedP->vbox = vbox = gtk_vbox_new (FALSE, 1); gtk_container_border_width (GTK_CONTAINER (vbox), 1); diff --git a/app/tips_dialog.c b/app/tips_dialog.c index 9771ff873e..4d5afdd7b7 100644 --- a/app/tips_dialog.c +++ b/app/tips_dialog.c @@ -58,7 +58,7 @@ tips_dialog_create () gtk_signal_connect (GTK_OBJECT (tips_dialog), "delete_event", GTK_SIGNAL_FUNC (tips_dialog_hide), NULL); /* destroy the tips window if the mainlevel gtk_main() function is left */ - gtk_quit_add (1, (GtkFunction) gtk_widget_destroy, tips_dialog); + gtk_quit_add_destroy (1, GTK_OBJECT (tips_dialog)); vbox = gtk_vbox_new (FALSE, 0); gtk_container_add (GTK_CONTAINER (tips_dialog), vbox); diff --git a/plug-ins/AlienMap/AlienMap.c b/plug-ins/AlienMap/AlienMap.c index 4e02ea0bf6..2dda8d34e6 100644 --- a/plug-ins/AlienMap/AlienMap.c +++ b/plug-ins/AlienMap/AlienMap.c @@ -104,7 +104,7 @@ static void dialog_ok_callback(GtkWidget *widget, gpointer data); static void dialog_cancel_callback(GtkWidget *widget, gpointer data); static void alienmap_toggle_update (GtkWidget *widget, gpointer data); -GtkWidget * alienmap_logo_dialog(void); +void alienmap_logo_dialog (void); @@ -601,28 +601,6 @@ build_preview_source_image(void) } /* build_preview_source_image */ -static void -alienmap_logo_ok_callback(GtkWidget *widget, gpointer data) -{ - gtk_widget_set_sensitive (maindlg, TRUE); - gtk_widget_destroy(logodlg); -} - -static void -alienmap_close_callback(GtkWidget *widget, gpointer data) -{ - gtk_main_quit(); -} - - - -static void -alienmap_about_callback(GtkWidget *widget, gpointer data) -{ - gtk_widget_set_sensitive (maindlg, FALSE); - alienmap_logo_dialog(); -} - static void set_tooltip (GtkTooltips *tooltips, GtkWidget *widget, const char *desc) { @@ -679,7 +657,7 @@ alienmap_dialog(void) build_preview_source_image(); dialog = maindlg = gtk_dialog_new(); - gtk_window_set_title(GTK_WINDOW(dialog), "alienmap"); + gtk_window_set_title(GTK_WINDOW(dialog), "AlienMap"); gtk_window_position(GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE); gtk_container_border_width(GTK_CONTAINER(dialog), 0); gtk_signal_connect(GTK_OBJECT(dialog), "destroy", @@ -896,7 +874,8 @@ gtk_container_border_width(GTK_CONTAINER(GTK_DIALOG(dialog)->action_area), 6); button = gtk_button_new_with_label("About..."); GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); gtk_signal_connect(GTK_OBJECT(button), "clicked", - (GtkSignalFunc)alienmap_about_callback,button); + GTK_SIGNAL_FUNC (alienmap_logo_dialog), + NULL); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->action_area), button, TRUE, TRUE, 0); gtk_widget_show(button); @@ -1145,10 +1124,9 @@ alienmap_toggle_update (GtkWidget *widget, } -GtkWidget * +void alienmap_logo_dialog() { - GtkWidget *xdlg; GtkWidget *xlabel; GtkWidget *xbutton; GtkWidget *xlogo_box; @@ -1160,82 +1138,93 @@ alienmap_logo_dialog() guchar *temp,*temp2; guchar *datapointer; gint y,x; - xdlg = logodlg = gtk_dialog_new(); - gtk_window_set_title(GTK_WINDOW(xdlg), "About"); - gtk_window_position(GTK_WINDOW(xdlg), GTK_WIN_POS_MOUSE); - gtk_signal_connect(GTK_OBJECT(xdlg), "destroy", - (GtkSignalFunc)alienmap_close_callback, - NULL); - xbutton = gtk_button_new_with_label("OK"); - GTK_WIDGET_SET_FLAGS(xbutton, GTK_CAN_DEFAULT); - gtk_signal_connect(GTK_OBJECT(xbutton), "clicked", - (GtkSignalFunc)alienmap_logo_ok_callback, - xdlg); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(xdlg)->action_area), - xbutton, TRUE, TRUE, 0); - gtk_widget_grab_default(xbutton); - gtk_widget_show(xbutton); - set_tooltip(tips,xbutton,"This closes the information box"); - - xframe = gtk_frame_new(NULL); - gtk_frame_set_shadow_type(GTK_FRAME(xframe), GTK_SHADOW_ETCHED_IN); - gtk_container_border_width(GTK_CONTAINER(xframe), 10); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(xdlg)->vbox), xframe, TRUE, TRUE, 0); - xvbox = gtk_vbox_new(FALSE, 5); - gtk_container_border_width(GTK_CONTAINER(xvbox), 10); - gtk_container_add(GTK_CONTAINER(xframe), xvbox); - - /* The logo frame & drawing area */ - xhbox = gtk_hbox_new (FALSE, 5); - gtk_box_pack_start (GTK_BOX (xvbox), xhbox, FALSE, TRUE, 0); - - xlogo_box = gtk_vbox_new (FALSE, 0); - gtk_box_pack_start (GTK_BOX (xhbox), xlogo_box, FALSE, FALSE, 0); - - xframe2 = gtk_frame_new (NULL); - gtk_frame_set_shadow_type (GTK_FRAME (xframe2), GTK_SHADOW_IN); - gtk_box_pack_start (GTK_BOX (xlogo_box), xframe2, FALSE, FALSE, 0); - - xpreview = gtk_preview_new (GTK_PREVIEW_COLOR); - gtk_preview_size (GTK_PREVIEW (xpreview), logo_width, logo_height); - temp = g_malloc((logo_width+10)*3); - datapointer=header_data+logo_width*logo_height-1; - for (y = 0; y < logo_height; y++){ - temp2=temp; - for (x = 0; x< logo_width; x++) { - HEADER_PIXEL(datapointer,temp2); temp2+=3;} - gtk_preview_draw_row (GTK_PREVIEW (xpreview), - temp, - 0, y, logo_width); - } - g_free(temp); - gtk_container_add (GTK_CONTAINER (xframe2), xpreview); - gtk_widget_show (xpreview); - gtk_widget_show (xframe2); - gtk_widget_show (xlogo_box); - gtk_widget_show (xhbox); - - xhbox = gtk_hbox_new(FALSE, 5); - gtk_box_pack_start(GTK_BOX(xvbox), xhbox, TRUE, TRUE, 0); - text = "\nCotting Software Productions\n" - "Bahnhofstrasse 31\n" - "CH-3066 Stettlen (Switzerland)\n\n" - "cotting@mygale.org\n" - "http://www.mygale.org/~cotting\n\n" - "AlienMap Plug-In for the GIMP\n" - "Version 1.01\n"; - xlabel = gtk_label_new(text); - gtk_box_pack_start(GTK_BOX(xhbox), xlabel, TRUE, FALSE, 0); - gtk_widget_show(xlabel); - - gtk_widget_show(xhbox); - - gtk_widget_show(xvbox); - gtk_widget_show(xframe); - gtk_widget_show(xdlg); - - gtk_main(); - gdk_flush(); - return xdlg; + if (!logodlg) + { + logodlg = gtk_dialog_new(); + gtk_window_set_title(GTK_WINDOW(logodlg), "About Alien Map"); + gtk_window_position(GTK_WINDOW(logodlg), GTK_WIN_POS_MOUSE); + gtk_signal_connect(GTK_OBJECT(logodlg), + "destroy", + GTK_SIGNAL_FUNC (gtk_widget_destroyed), + &logodlg); + gtk_quit_add_destroy (1, GTK_OBJECT (logodlg)); + gtk_signal_connect(GTK_OBJECT(logodlg), + "delete_event", + GTK_SIGNAL_FUNC (gtk_widget_hide_on_delete), + &logodlg); + + xbutton = gtk_button_new_with_label("OK"); + GTK_WIDGET_SET_FLAGS(xbutton, GTK_CAN_DEFAULT); + gtk_signal_connect_object (GTK_OBJECT(xbutton), "clicked", + GTK_SIGNAL_FUNC (gtk_widget_hide), + logodlg); + gtk_box_pack_start(GTK_BOX(GTK_DIALOG(logodlg)->action_area), + xbutton, TRUE, TRUE, 0); + gtk_widget_grab_default(xbutton); + gtk_widget_show(xbutton); + set_tooltip(tips,xbutton,"This closes the information box"); + + xframe = gtk_frame_new(NULL); + gtk_frame_set_shadow_type(GTK_FRAME(xframe), GTK_SHADOW_ETCHED_IN); + gtk_container_border_width(GTK_CONTAINER(xframe), 10); + gtk_box_pack_start(GTK_BOX(GTK_DIALOG(logodlg)->vbox), xframe, TRUE, TRUE, 0); + xvbox = gtk_vbox_new(FALSE, 5); + gtk_container_border_width(GTK_CONTAINER(xvbox), 10); + gtk_container_add(GTK_CONTAINER(xframe), xvbox); + + /* The logo frame & drawing area */ + xhbox = gtk_hbox_new (FALSE, 5); + gtk_box_pack_start (GTK_BOX (xvbox), xhbox, FALSE, TRUE, 0); + + xlogo_box = gtk_vbox_new (FALSE, 0); + gtk_box_pack_start (GTK_BOX (xhbox), xlogo_box, FALSE, FALSE, 0); + + xframe2 = gtk_frame_new (NULL); + gtk_frame_set_shadow_type (GTK_FRAME (xframe2), GTK_SHADOW_IN); + gtk_box_pack_start (GTK_BOX (xlogo_box), xframe2, FALSE, FALSE, 0); + + xpreview = gtk_preview_new (GTK_PREVIEW_COLOR); + gtk_preview_size (GTK_PREVIEW (xpreview), logo_width, logo_height); + temp = g_malloc((logo_width+10)*3); + datapointer=header_data+logo_width*logo_height-1; + for (y = 0; y < logo_height; y++){ + temp2=temp; + for (x = 0; x< logo_width; x++) { + HEADER_PIXEL(datapointer,temp2); temp2+=3;} + gtk_preview_draw_row (GTK_PREVIEW (xpreview), + temp, + 0, y, logo_width); + } + g_free(temp); + gtk_container_add (GTK_CONTAINER (xframe2), xpreview); + gtk_widget_show (xpreview); + gtk_widget_show (xframe2); + gtk_widget_show (xlogo_box); + gtk_widget_show (xhbox); + + xhbox = gtk_hbox_new(FALSE, 5); + gtk_box_pack_start(GTK_BOX(xvbox), xhbox, TRUE, TRUE, 0); + text = "\nCotting Software Productions\n" + "Bahnhofstrasse 31\n" + "CH-3066 Stettlen (Switzerland)\n\n" + "cotting@mygale.org\n" + "http://www.mygale.org/~cotting\n\n" + "AlienMap Plug-In for the GIMP\n" + "Version 1.01\n"; + xlabel = gtk_label_new(text); + gtk_box_pack_start(GTK_BOX(xhbox), xlabel, TRUE, FALSE, 0); + gtk_widget_show(xlabel); + + gtk_widget_show(xhbox); + + gtk_widget_show(xvbox); + gtk_widget_show(xframe); + gtk_widget_show(logodlg); + } + else + { + gtk_widget_show (logodlg); + gdk_window_raise (logodlg->window); + } } diff --git a/plug-ins/common/exchange.c b/plug-ins/common/exchange.c index 876f48c467..af216f3f8c 100644 --- a/plug-ins/common/exchange.c +++ b/plug-ins/common/exchange.c @@ -57,7 +57,6 @@ static void exchange(GDrawable *); static void doLabelAndScale(char *, GtkWidget *, guchar *); static void ok_callback(GtkWidget *, gpointer); -static void close_callback(GtkWidget *, gpointer); static void scale_callback(GtkAdjustment *, gpointer); /* some global variables */ @@ -316,7 +315,7 @@ int doDialog() gtk_window_set_title(GTK_WINDOW(dialog), "Color Exchange"); gtk_window_position(GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE); gtk_signal_connect(GTK_OBJECT(dialog), "destroy", - (GtkSignalFunc) close_callback, + (GtkSignalFunc) gtk_main_quit, NULL); /* lets create some buttons */ @@ -332,9 +331,9 @@ int doDialog() button = gtk_button_new_with_label("Cancel"); GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); - gtk_signal_connect(GTK_OBJECT(button), "clicked", - (GtkSignalFunc) close_callback, - dialog); + gtk_signal_connect_object (GTK_OBJECT(button), "clicked", + (GtkSignalFunc) gtk_widget_destroy, + dialog); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->action_area), button, TRUE, TRUE, 0); gtk_widget_show(button); @@ -414,12 +413,6 @@ void ok_callback(GtkWidget *widget, gpointer data) gtk_widget_destroy(GTK_WIDGET(data)); } -static -void close_callback(GtkWidget *widget, gpointer data) -{ - gtk_main_quit(); -} - static void scale_callback(GtkAdjustment *adj, gpointer data) { diff --git a/plug-ins/exchange/exchange.c b/plug-ins/exchange/exchange.c index 876f48c467..af216f3f8c 100644 --- a/plug-ins/exchange/exchange.c +++ b/plug-ins/exchange/exchange.c @@ -57,7 +57,6 @@ static void exchange(GDrawable *); static void doLabelAndScale(char *, GtkWidget *, guchar *); static void ok_callback(GtkWidget *, gpointer); -static void close_callback(GtkWidget *, gpointer); static void scale_callback(GtkAdjustment *, gpointer); /* some global variables */ @@ -316,7 +315,7 @@ int doDialog() gtk_window_set_title(GTK_WINDOW(dialog), "Color Exchange"); gtk_window_position(GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE); gtk_signal_connect(GTK_OBJECT(dialog), "destroy", - (GtkSignalFunc) close_callback, + (GtkSignalFunc) gtk_main_quit, NULL); /* lets create some buttons */ @@ -332,9 +331,9 @@ int doDialog() button = gtk_button_new_with_label("Cancel"); GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); - gtk_signal_connect(GTK_OBJECT(button), "clicked", - (GtkSignalFunc) close_callback, - dialog); + gtk_signal_connect_object (GTK_OBJECT(button), "clicked", + (GtkSignalFunc) gtk_widget_destroy, + dialog); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->action_area), button, TRUE, TRUE, 0); gtk_widget_show(button); @@ -414,12 +413,6 @@ void ok_callback(GtkWidget *widget, gpointer data) gtk_widget_destroy(GTK_WIDGET(data)); } -static -void close_callback(GtkWidget *widget, gpointer data) -{ - gtk_main_quit(); -} - static void scale_callback(GtkAdjustment *adj, gpointer data) { diff --git a/plug-ins/flame/flame.c b/plug-ins/flame/flame.c index b9ff650b59..a0b9e112ad 100644 --- a/plug-ins/flame/flame.c +++ b/plug-ins/flame/flame.c @@ -394,7 +394,7 @@ make_file_dlg() { "delete_event", (GtkSignalFunc) gtk_widget_hide_on_delete, NULL); - gtk_quit_add (1, gtk_widget_destroy, file_dlg); + gtk_quit_add_destroy (1, GTK_OBJECT (file_dlg)); gtk_signal_connect(GTK_OBJECT (GTK_FILE_SELECTION (file_dlg)->cancel_button), "clicked", (GtkSignalFunc) file_cancel_callback, file_dlg); gtk_signal_connect(GTK_OBJECT (GTK_FILE_SELECTION (file_dlg)->ok_button), @@ -525,7 +525,7 @@ edit_callback(GtkWidget * widget, gpointer data) { gtk_window_position(GTK_WINDOW(edit_dlg), GTK_WIN_POS_MOUSE); gtk_signal_connect(GTK_OBJECT(edit_dlg), "destroy", (GtkSignalFunc) edit_close_callback, NULL); - gtk_quit_add (1, gtk_widget_destroy, edit_dlg); + gtk_quit_add_destroy (1, GTK_OBJECT (edit_dlg)); gtk_signal_connect(GTK_OBJECT(edit_dlg), "delete_event", (GtkSignalFunc) gtk_widget_hide_on_delete, NULL);