diff options
author | Havoc Pennington <hp@redhat.com> | 2000-11-06 16:44:01 +0000 |
---|---|---|
committer | Havoc Pennington <hp@src.gnome.org> | 2000-11-06 16:44:01 +0000 |
commit | 69f42512fa819749e1a2ca9f27a1b940ca8fc0d6 (patch) | |
tree | 72d241f6e17b304a567ea61309b8518227f55266 /gtk/gtkdialog.c | |
parent | 8aef169f86a3267070214c94372c513a9495ec89 (diff) | |
download | gdk-pixbuf-69f42512fa819749e1a2ca9f27a1b940ca8fc0d6.tar.gz |
Derive from GtkDialog, and use stock buttons. Should be 100% source
2000-11-02 Havoc Pennington <hp@redhat.com>
* gtk/gtkfilesel.h, gtk/gtkfilesel.c: Derive from GtkDialog, and
use stock buttons. Should be 100% source compatible, appropriate
filesel fields now point to dialog->vbox and dialog->action_area.
On the bizarre side, dialog->action_area and filesel->action_area
are not the same widget.
(gtk_file_selection_init): Put some padding around the selection
entry, so it isn't touching the GtkDialog separator.
* gtk/gtkfontsel.h, gtk/gtkfontsel.c: Derive from GtkDialog,
use stock buttons, etc. Should also be source compatible.
Set the dialog default title in _init not _new().
* gtk/gtkcolorseldialog.c (gtk_color_selection_dialog_init):
Use stock buttons; don't put a button box inside the existing
dialog button box. Don't bother with push/pop colormap anymore.
* gtk/gtkdialog.h (GtkResponseType): Add a bunch of more
specific GTK_RESPONSE_* values. This is clearer than ACCEPT/REJECT
for message dialog, and necessary for the font selection and color
selection with help and apply buttons.
* gtk/gtkdialog.c (gtk_dialog_add_button): Return a pointer
to the created button widget. Set GTK_CAN_DEFAULT on the button.
(gtk_dialog_init): Default to GTK_BUTTONBOX_END, put less spacing
between buttons, put less padding around the action area.
(gtk_dialog_run): Exit on unmap rather than on destroy.
This will also exit the loop if the widget is hidden.
(gtk_dialog_delete_event_handler): Use GTK_RESPONSE_DELETE_EVENT
instead of GTK_RESPONSE_NONE; since we're already adding a bunch
of GTK_RESPONSE_* stuff, this seems cleaner, and lets you
special-case delete event.
* gtk/gtktexttagtable.c, gtk/gtktextview.c: Fix doc comment
formatting
Diffstat (limited to 'gtk/gtkdialog.c')
-rw-r--r-- | gtk/gtkdialog.c | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/gtk/gtkdialog.c b/gtk/gtkdialog.c index d21be69c2..2b7ef7307 100644 --- a/gtk/gtkdialog.c +++ b/gtk/gtkdialog.c @@ -129,9 +129,11 @@ gtk_dialog_init (GtkDialog *dialog) dialog->action_area = gtk_hbutton_box_new (); gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog->action_area), - GTK_BUTTONBOX_SPREAD); + GTK_BUTTONBOX_END); + + gtk_button_box_set_spacing (GTK_BUTTON_BOX (dialog->action_area), 5); - gtk_container_set_border_width (GTK_CONTAINER (dialog->action_area), 10); + gtk_container_set_border_width (GTK_CONTAINER (dialog->action_area), 5); gtk_box_pack_end (GTK_BOX (dialog->vbox), dialog->action_area, FALSE, TRUE, 0); gtk_widget_show (dialog->action_area); @@ -147,7 +149,7 @@ gtk_dialog_delete_event_handler (GtkWidget *widget, gpointer user_data) { /* emit response signal */ - gtk_dialog_response (GTK_DIALOG (widget), GTK_RESPONSE_NONE); + gtk_dialog_response (GTK_DIALOG (widget), GTK_RESPONSE_DELETE_EVENT); /* Do the destroy by default */ return FALSE; @@ -244,7 +246,7 @@ gtk_dialog_new_empty (const gchar *title, * GTK_STOCK_BUTTON_OK, * GTK_RESPONSE_ACCEPT, * GTK_STOCK_BUTTON_CANCEL, - * GTK_RESPONSE_NONE, + * GTK_RESPONSE_REJECT, * NULL); * </programlisting> * @@ -373,10 +375,12 @@ gtk_dialog_add_action_widget (GtkDialog *dialog, * Adds a button with the given text (or a stock button, if @button_text is a * stock ID) and sets things up so that clicking the button will emit the * "response" signal with the given @response_id. The button is appended to the - * end of the dialog's action area. - * + * end of the dialog's action area. The button widget is returned, but usually + * you don't need it. + * + * Return value: the button widget that was added **/ -void +GtkWidget* gtk_dialog_add_button (GtkDialog *dialog, const gchar *button_text, gint response_id) @@ -389,11 +393,15 @@ gtk_dialog_add_button (GtkDialog *dialog, button = gtk_button_new_stock (button_text, gtk_window_get_default_accel_group (GTK_WINDOW (dialog))); + GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); + gtk_widget_show (button); gtk_dialog_add_action_widget (dialog, button, response_id); + + return button; } static void @@ -491,7 +499,7 @@ shutdown_loop (RunInfo *ri) } static void -run_destroy_handler (GtkDialog *dialog, gpointer data) +run_unmap_handler (GtkDialog *dialog, gpointer data) { RunInfo *ri = data; @@ -542,7 +550,7 @@ run_delete_handler (GtkDialog *dialog, * During gtk_dialog_run(), the default behavior of "delete_event" is * disabled; if the dialog receives "delete_event", it will not be * destroyed as windows usually are, and gtk_dialog_run() will return - * GTK_RESPONSE_NONE. Also, during gtk_dialog_run() the dialog will be + * GTK_RESPONSE_DELETE_EVENT. Also, during gtk_dialog_run() the dialog will be * modal. You can force gtk_dialog_run() to return at any time by * calling gtk_dialog_response() to emit the "response" * signal. Destroying the dialog during gtk_dialog_run() is a very bad @@ -597,8 +605,8 @@ gtk_dialog_run (GtkDialog *dialog) destroy_handler = gtk_signal_connect (GTK_OBJECT (dialog), - "destroy", - GTK_SIGNAL_FUNC (run_destroy_handler), + "unmap", + GTK_SIGNAL_FUNC (run_unmap_handler), &ri); delete_handler = |