diff options
Diffstat (limited to 'e-util')
-rw-r--r-- | e-util/ChangeLog | 10 | ||||
-rw-r--r-- | e-util/e-dialog-utils.c | 42 | ||||
-rw-r--r-- | e-util/e-dialog-utils.h | 18 |
3 files changed, 66 insertions, 4 deletions
diff --git a/e-util/ChangeLog b/e-util/ChangeLog index 178ec7aa8b..2bcb5f8820 100644 --- a/e-util/ChangeLog +++ b/e-util/ChangeLog @@ -1,3 +1,13 @@ +2002-01-02 JP Rosevear <jpr@ximian.com> + + * e-dialog-utils.c (e_gnome_dialog_set_parent): util function + moved from mail-callbacks, also destroys the dialog if the parent + is destroyed + (e_gnome_warning_dialog_parented): similarly + (e_gnome_ok_cancel_dialog_parented): ditto + + * e-dialog-utils.h: new protos + 2001-12-17 JP Rosevear <jpr@ximian.com> * e-pilot-map.c (e_pilot_map_clear): clear all info from the map diff --git a/e-util/e-dialog-utils.c b/e-util/e-dialog-utils.c index 45a57d42fc..f155b83145 100644 --- a/e-util/e-dialog-utils.c +++ b/e-util/e-dialog-utils.c @@ -32,6 +32,8 @@ #include <gtk/gtksignal.h> +#include <libgnomeui/gnome-dialog-util.h> + #include <bonobo/bonobo-control.h> #include <bonobo/bonobo-property-bag.h> @@ -162,3 +164,43 @@ e_set_dialog_parent_from_xid (GtkWindow *dialog, set_transient_for_gdk (dialog, gdk_window_foreign_new (xid)); } + +static void +e_gnome_dialog_parent_destroyed (GtkWidget *parent, GtkWidget *dialog) +{ + gnome_dialog_close (GNOME_DIALOG (dialog)); +} + +void +e_gnome_dialog_set_parent (GnomeDialog *dialog, GtkWindow *parent) +{ + gnome_dialog_set_parent (dialog, parent); + gtk_signal_connect_while_alive (GTK_OBJECT (parent), "destroy", + e_gnome_dialog_parent_destroyed, + dialog, GTK_OBJECT (dialog)); +} + +GtkWidget * +e_gnome_warning_dialog_parented (const char *warning, GtkWindow *parent) +{ + GtkWidget *dialog; + + dialog = gnome_warning_dialog_parented (warning, parent); + gtk_signal_connect (GTK_OBJECT (parent), "destroy", + e_gnome_dialog_parent_destroyed, dialog); + + return dialog; +} + +GtkWidget * +e_gnome_ok_cancel_dialog_parented (const char *message, GnomeReplyCallback callback, + gpointer data, GtkWindow *parent) +{ + GtkWidget *dialog; + + dialog = gnome_ok_cancel_dialog_parented (message, callback, data, parent); + gtk_signal_connect (GTK_OBJECT (parent), "destroy", + e_gnome_dialog_parent_destroyed, dialog); + + return dialog; +} diff --git a/e-util/e-dialog-utils.h b/e-util/e-dialog-utils.h index a00ab75d21..1e1b8af22f 100644 --- a/e-util/e-dialog-utils.h +++ b/e-util/e-dialog-utils.h @@ -25,12 +25,22 @@ #include <gtk/gtkwindow.h> #include <gtk/gtkwidget.h> +#include <libgnomeui/gnome-types.h> +#include <libgnomeui/gnome-dialog.h> #include <X11/Xlib.h> /* Window */ -void e_set_dialog_parent (GtkWindow *dialog, - GtkWidget *parent_widget); -void e_set_dialog_parent_from_xid (GtkWindow *dialog, - Window xid); +void e_set_dialog_parent (GtkWindow *dialog, + GtkWidget *parent_widget); +void e_set_dialog_parent_from_xid (GtkWindow *dialog, + Window xid); +void e_gnome_dialog_set_parent (GnomeDialog *dialog, + GtkWindow *parent); +GtkWidget *e_gnome_warning_dialog_parented (const char *warning, + GtkWindow *parent); +GtkWidget *e_gnome_ok_cancel_dialog_parented (const char *message, + GnomeReplyCallback callback, + gpointer data, + GtkWindow *parent); #endif |