From d433a606111d89727530f71d7b956ba40655bcbf Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Thu, 2 Sep 2010 09:11:23 -0400 Subject: [PATCH] Remove separators from dialogs It seems more reasonable to remove this feature than to keep fighting off every separator that pops up by accident in a dialog. --- gtk/gtk.symbols | 2 - gtk/gtkaboutdialog.c | 3 - gtk/gtkcolorseldialog.c | 3 - gtk/gtkcustompaperunixdialog.c | 1 - gtk/gtkdialog.c | 162 +-------------------------------- gtk/gtkdialog.h | 11 +-- gtk/gtkfilechooserdialog.c | 1 - gtk/gtkfontsel.c | 3 - gtk/gtkmessagedialog.c | 32 +------ gtk/gtkmountoperation.c | 2 - gtk/gtkpagesetupunixdialog.c | 1 - gtk/gtkprintbackend.c | 1 - gtk/gtkprintunixdialog.c | 1 - gtk/gtkrecentchooserdialog.c | 1 - 14 files changed, 6 insertions(+), 218 deletions(-) diff --git a/gtk/gtk.symbols b/gtk/gtk.symbols index 300aa4d0bd..c6f75ff3fa 100644 --- a/gtk/gtk.symbols +++ b/gtk/gtk.symbols @@ -910,7 +910,6 @@ gtk_dialog_add_button gtk_dialog_add_buttons G_GNUC_NULL_TERMINATED gtk_dialog_get_action_area gtk_dialog_get_content_area -gtk_dialog_get_has_separator gtk_dialog_get_widget_for_response gtk_dialog_get_response_for_widget gtk_dialog_get_type G_GNUC_CONST @@ -922,7 +921,6 @@ gtk_alternative_dialog_button_order gtk_dialog_set_alternative_button_order gtk_dialog_set_alternative_button_order_from_array gtk_dialog_set_default_response -gtk_dialog_set_has_separator gtk_dialog_set_response_sensitive #endif #endif diff --git a/gtk/gtkaboutdialog.c b/gtk/gtkaboutdialog.c index 388b69abe1..6a5925f551 100644 --- a/gtk/gtkaboutdialog.c +++ b/gtk/gtkaboutdialog.c @@ -631,7 +631,6 @@ gtk_about_dialog_init (GtkAboutDialog *about) content_area = gtk_dialog_get_content_area (dialog); action_area = gtk_dialog_get_action_area (dialog); - gtk_dialog_set_has_separator (dialog, FALSE); gtk_container_set_border_width (GTK_CONTAINER (dialog), 5); gtk_box_set_spacing (GTK_BOX (content_area), 2); /* 2 * 5 + 2 = 12 */ gtk_container_set_border_width (GTK_CONTAINER (action_area), 5); @@ -2219,7 +2218,6 @@ display_credits_dialog (GtkWidget *button, content_area = gtk_dialog_get_content_area (credits_dialog); action_area = gtk_dialog_get_action_area (credits_dialog); - gtk_dialog_set_has_separator (credits_dialog, FALSE); gtk_container_set_border_width (GTK_CONTAINER (credits_dialog), 5); gtk_box_set_spacing (GTK_BOX (content_area), 2); /* 2 * 5 + 2 = 12 */ gtk_container_set_border_width (GTK_CONTAINER (action_area), 5); @@ -2302,7 +2300,6 @@ display_license_dialog (GtkWidget *button, content_area = gtk_dialog_get_content_area (license_dialog); action_area = gtk_dialog_get_action_area (license_dialog); - gtk_dialog_set_has_separator (license_dialog, FALSE); gtk_container_set_border_width (GTK_CONTAINER (license_dialog), 5); gtk_box_set_spacing (GTK_BOX (content_area), 2); /* 2 * 5 + 2 = 12 */ gtk_container_set_border_width (GTK_CONTAINER (action_area), 5); diff --git a/gtk/gtkcolorseldialog.c b/gtk/gtkcolorseldialog.c index d225ef1517..8f4d746b6b 100644 --- a/gtk/gtkcolorseldialog.c +++ b/gtk/gtkcolorseldialog.c @@ -151,7 +151,6 @@ gtk_color_selection_dialog_init (GtkColorSelectionDialog *colorseldiag) content_area = gtk_dialog_get_content_area (dialog); action_area = gtk_dialog_get_action_area (dialog); - gtk_dialog_set_has_separator (dialog, FALSE); gtk_container_set_border_width (GTK_CONTAINER (dialog), 5); gtk_box_set_spacing (GTK_BOX (content_area), 2); /* 2 * 5 + 2 = 12 */ gtk_container_set_border_width (GTK_CONTAINER (action_area), 5); @@ -188,8 +187,6 @@ gtk_color_selection_dialog_init (GtkColorSelectionDialog *colorseldiag) gtk_window_set_title (GTK_WINDOW (colorseldiag), _("Color Selection")); - - _gtk_dialog_set_ignore_separator (dialog, TRUE); } GtkWidget* diff --git a/gtk/gtkcustompaperunixdialog.c b/gtk/gtkcustompaperunixdialog.c index ffd23e8d31..79bc61086d 100644 --- a/gtk/gtkcustompaperunixdialog.c +++ b/gtk/gtkcustompaperunixdialog.c @@ -976,7 +976,6 @@ populate_dialog (GtkCustomPaperUnixDialog *dialog) content_area = gtk_dialog_get_content_area (cpu_dialog); action_area = gtk_dialog_get_action_area (cpu_dialog); - gtk_dialog_set_has_separator (cpu_dialog, FALSE); gtk_container_set_border_width (GTK_CONTAINER (dialog), 5); gtk_box_set_spacing (GTK_BOX (content_area), 2); /* 2 * 5 + 2 = 12 */ gtk_container_set_border_width (GTK_CONTAINER (action_area), 5); diff --git a/gtk/gtkdialog.c b/gtk/gtkdialog.c index fd8180bdfe..6517eff02b 100644 --- a/gtk/gtkdialog.c +++ b/gtk/gtkdialog.c @@ -31,7 +31,6 @@ #include "gtkdialog.h" #include "gtkhbbox.h" #include "gtklabel.h" -#include "gtkhseparator.h" #include "gtkmarshalers.h" #include "gtkvbox.h" #include "gdkkeysyms.h" @@ -46,10 +45,6 @@ struct _GtkDialogPrivate { GtkWidget *vbox; GtkWidget *action_area; - - GtkWidget *separator; - - guint ignore_separator : 1; }; typedef struct _ResponseData ResponseData; @@ -66,15 +61,6 @@ static void gtk_dialog_add_buttons_valist (GtkDialog *dialog, static gboolean gtk_dialog_delete_event_handler (GtkWidget *widget, GdkEventAny *event, gpointer user_data); - -static void gtk_dialog_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec); -static void gtk_dialog_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec); static void gtk_dialog_style_set (GtkWidget *widget, GtkStyle *prev_style); static void gtk_dialog_map (GtkWidget *widget); @@ -124,32 +110,16 @@ gtk_dialog_class_init (GtkDialogClass *class) GObjectClass *gobject_class; GtkWidgetClass *widget_class; GtkBindingSet *binding_set; - + gobject_class = G_OBJECT_CLASS (class); widget_class = GTK_WIDGET_CLASS (class); - - gobject_class->set_property = gtk_dialog_set_property; - gobject_class->get_property = gtk_dialog_get_property; - + widget_class->map = gtk_dialog_map; widget_class->style_set = gtk_dialog_style_set; class->close = gtk_dialog_close; - - g_type_class_add_private (gobject_class, sizeof (GtkDialogPrivate)); - /** - * GtkDialog:has-separator: - * - * When %TRUE, the dialog has a separator bar above its buttons. - */ - g_object_class_install_property (gobject_class, - PROP_HAS_SEPARATOR, - g_param_spec_boolean ("has-separator", - P_("Has separator"), - P_("The dialog has a separator bar above its buttons"), - TRUE, - GTK_PARAM_READWRITE)); + g_type_class_add_private (gobject_class, sizeof (GtkDialogPrivate)); /** * GtkDialog::response: @@ -278,8 +248,6 @@ gtk_dialog_init (GtkDialog *dialog) GtkDialogPrivate); priv = dialog->priv; - priv->ignore_separator = FALSE; - /* To avoid breaking old code that prevents destroy on delete event * by connecting a handler, we have to have the FIRST signal * connection on the dialog. @@ -303,10 +271,6 @@ gtk_dialog_init (GtkDialog *dialog) FALSE, TRUE, 0); gtk_widget_show (priv->action_area); - priv->separator = gtk_hseparator_new (); - gtk_box_pack_end (GTK_BOX (priv->vbox), priv->separator, FALSE, TRUE, 0); - gtk_widget_show (priv->separator); - gtk_window_set_type_hint (GTK_WINDOW (dialog), GDK_WINDOW_TYPE_HINT_DIALOG); gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER_ON_PARENT); @@ -340,49 +304,6 @@ gtk_dialog_buildable_get_internal_child (GtkBuildable *buildable, childname); } -static void -gtk_dialog_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - GtkDialog *dialog; - - dialog = GTK_DIALOG (object); - - switch (prop_id) - { - case PROP_HAS_SEPARATOR: - gtk_dialog_set_has_separator (dialog, g_value_get_boolean (value)); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -gtk_dialog_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - GtkDialog *dialog = GTK_DIALOG (object); - GtkDialogPrivate *priv = dialog->priv; - - switch (prop_id) - { - case PROP_HAS_SEPARATOR: - g_value_set_boolean (value, priv->separator != NULL); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - static gboolean gtk_dialog_delete_event_handler (GtkWidget *widget, GdkEventAny *event, @@ -534,13 +455,10 @@ gtk_dialog_new_empty (const gchar *title, if (flags & GTK_DIALOG_MODAL) gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); - + if (flags & GTK_DIALOG_DESTROY_WITH_PARENT) gtk_window_set_destroy_with_parent (GTK_WINDOW (dialog), TRUE); - if (flags & GTK_DIALOG_NO_SEPARATOR) - gtk_dialog_set_has_separator (dialog, FALSE); - return GTK_WIDGET (dialog); } @@ -872,69 +790,6 @@ gtk_dialog_set_default_response (GtkDialog *dialog, g_list_free (children); } -/** - * gtk_dialog_set_has_separator: - * @dialog: a #GtkDialog - * @setting: %TRUE to have a separator - * - * Sets whether the dialog has a separator above the buttons. - * %TRUE by default. - **/ -void -gtk_dialog_set_has_separator (GtkDialog *dialog, - gboolean setting) -{ - GtkDialogPrivate *priv; - - g_return_if_fail (GTK_IS_DIALOG (dialog)); - - priv = dialog->priv; - - /* this might fail if we get called before _init() somehow */ - g_assert (priv->vbox != NULL); - - if (priv->ignore_separator) - { - g_warning ("Ignoring the separator setting"); - return; - } - - if (setting && priv->separator == NULL) - { - priv->separator = gtk_hseparator_new (); - gtk_box_pack_end (GTK_BOX (priv->vbox), priv->separator, FALSE, TRUE, 0); - - /* The app programmer could screw this up, but, their own fault. - * Moves the separator just above the action area. - */ - gtk_box_reorder_child (GTK_BOX (priv->vbox), priv->separator, 1); - gtk_widget_show (priv->separator); - } - else if (!setting && priv->separator != NULL) - { - gtk_widget_destroy (priv->separator); - priv->separator = NULL; - } - - g_object_notify (G_OBJECT (dialog), "has-separator"); -} - -/** - * gtk_dialog_get_has_separator: - * @dialog: a #GtkDialog - * - * Accessor for whether the dialog has a separator. - * - * Return value: %TRUE if the dialog has a separator - **/ -gboolean -gtk_dialog_get_has_separator (GtkDialog *dialog) -{ - g_return_val_if_fail (GTK_IS_DIALOG (dialog), FALSE); - - return dialog->priv->separator != NULL; -} - /** * gtk_dialog_response: * @dialog: a #GtkDialog @@ -1136,15 +991,6 @@ gtk_dialog_run (GtkDialog *dialog) return ri.response_id; } -void -_gtk_dialog_set_ignore_separator (GtkDialog *dialog, - gboolean ignore_separator) -{ - GtkDialogPrivate *priv = dialog->priv; - - priv->ignore_separator = ignore_separator; -} - /** * gtk_dialog_get_widget_for_response: * @dialog: a #GtkDialog diff --git a/gtk/gtkdialog.h b/gtk/gtkdialog.h index 5394209aa0..9069d22fc8 100644 --- a/gtk/gtkdialog.h +++ b/gtk/gtkdialog.h @@ -41,8 +41,7 @@ G_BEGIN_DECLS typedef enum { GTK_DIALOG_MODAL = 1 << 0, /* call gtk_window_set_modal (win, TRUE) */ - GTK_DIALOG_DESTROY_WITH_PARENT = 1 << 1, /* call gtk_window_set_destroy_with_parent () */ - GTK_DIALOG_NO_SEPARATOR = 1 << 2 /* no separator bar above buttons */ + GTK_DIALOG_DESTROY_WITH_PARENT = 1 << 1 /* call gtk_window_set_destroy_with_parent () */ } GtkDialogFlags; /* Convenience enum to use for response_id's. Positive values are @@ -150,10 +149,6 @@ GtkWidget* gtk_dialog_get_widget_for_response (GtkDialog *dialog, gint gtk_dialog_get_response_for_widget (GtkDialog *dialog, GtkWidget *widget); -void gtk_dialog_set_has_separator (GtkDialog *dialog, - gboolean setting); -gboolean gtk_dialog_get_has_separator (GtkDialog *dialog); - gboolean gtk_alternative_dialog_button_order (GdkScreen *screen); void gtk_dialog_set_alternative_button_order (GtkDialog *dialog, gint first_response_id, @@ -172,10 +167,6 @@ gint gtk_dialog_run (GtkDialog *dialog); GtkWidget * gtk_dialog_get_action_area (GtkDialog *dialog); GtkWidget * gtk_dialog_get_content_area (GtkDialog *dialog); -/* For private use only */ -void _gtk_dialog_set_ignore_separator (GtkDialog *dialog, - gboolean ignore_separator); - G_END_DECLS #endif /* __GTK_DIALOG_H__ */ diff --git a/gtk/gtkfilechooserdialog.c b/gtk/gtkfilechooserdialog.c index 246f10310d..06818c8c09 100644 --- a/gtk/gtkfilechooserdialog.c +++ b/gtk/gtkfilechooserdialog.c @@ -92,7 +92,6 @@ gtk_file_chooser_dialog_init (GtkFileChooserDialog *dialog) content_area = gtk_dialog_get_content_area (fc_dialog); action_area = gtk_dialog_get_action_area (fc_dialog); - gtk_dialog_set_has_separator (fc_dialog, FALSE); gtk_container_set_border_width (GTK_CONTAINER (fc_dialog), 5); gtk_box_set_spacing (GTK_BOX (content_area), 2); /* 2 * 5 + 2 = 12 */ gtk_container_set_border_width (GTK_CONTAINER (action_area), 5); diff --git a/gtk/gtkfontsel.c b/gtk/gtkfontsel.c index f1a509cab1..24331b557c 100644 --- a/gtk/gtkfontsel.c +++ b/gtk/gtkfontsel.c @@ -1618,7 +1618,6 @@ gtk_font_selection_dialog_init (GtkFontSelectionDialog *fontseldiag) content_area = gtk_dialog_get_content_area (dialog); action_area = gtk_dialog_get_action_area (dialog); - gtk_dialog_set_has_separator (dialog, FALSE); gtk_container_set_border_width (GTK_CONTAINER (dialog), 5); gtk_box_set_spacing (GTK_BOX (content_area), 2); /* 2 * 5 + 2 = 12 */ gtk_container_set_border_width (GTK_CONTAINER (action_area), 5); @@ -1660,8 +1659,6 @@ gtk_font_selection_dialog_init (GtkFontSelectionDialog *fontseldiag) _("Font Selection")); gtk_widget_pop_composite_child (); - - _gtk_dialog_set_ignore_separator (dialog, TRUE); } /** diff --git a/gtk/gtkmessagedialog.c b/gtk/gtkmessagedialog.c index 5458bd54f1..62bbe070cb 100644 --- a/gtk/gtkmessagedialog.c +++ b/gtk/gtkmessagedialog.c @@ -187,20 +187,7 @@ gtk_message_dialog_class_init (GtkMessageDialogClass *class) G_MAXINT, 12, GTK_PARAM_READABLE)); - /** - * GtkMessageDialog:use-separator: - * - * Whether to draw a separator line between the message label and the buttons - * in the dialog. - * - * Since: 2.4 - */ - gtk_widget_class_install_style_property (widget_class, - g_param_spec_boolean ("use-separator", - P_("Use separator"), - P_("Whether to put a separator between the message dialog's text and the buttons"), - FALSE, - GTK_PARAM_READABLE)); + /** * GtkMessageDialog:message-type: * @@ -386,8 +373,6 @@ gtk_message_dialog_init (GtkMessageDialog *dialog) gtk_box_set_spacing (GTK_BOX (action_area), 6); gtk_widget_show_all (hbox); - - _gtk_dialog_set_ignore_separator (GTK_DIALOG (dialog), TRUE); } static void @@ -616,12 +601,6 @@ gtk_message_dialog_new (GtkWindow *parent, NULL); dialog = GTK_DIALOG (widget); - if (flags & GTK_DIALOG_NO_SEPARATOR) - { - g_warning ("The GTK_DIALOG_NO_SEPARATOR flag cannot be used for GtkMessageDialog"); - flags &= ~GTK_DIALOG_NO_SEPARATOR; - } - if (message_format) { va_start (args, message_format); @@ -1001,7 +980,6 @@ gtk_message_dialog_style_set (GtkWidget *widget, GtkStyle *prev_style) { GtkMessageDialog *dialog = GTK_MESSAGE_DIALOG (widget); - gboolean use_separator; GtkWidget *parent; gint border_width; @@ -1016,14 +994,6 @@ gtk_message_dialog_style_set (GtkWidget *widget, MAX (0, border_width - 7)); } - gtk_widget_style_get (widget, - "use-separator", &use_separator, - NULL); - - _gtk_dialog_set_ignore_separator (GTK_DIALOG (widget), FALSE); - gtk_dialog_set_has_separator (GTK_DIALOG (widget), use_separator); - _gtk_dialog_set_ignore_separator (GTK_DIALOG (widget), TRUE); - setup_primary_label_font (dialog); GTK_WIDGET_CLASS (gtk_message_dialog_parent_class)->style_set (widget, prev_style); diff --git a/gtk/gtkmountoperation.c b/gtk/gtkmountoperation.c index c2489ce59d..f3e1cca24a 100644 --- a/gtk/gtkmountoperation.c +++ b/gtk/gtkmountoperation.c @@ -477,7 +477,6 @@ gtk_mount_operation_ask_password (GMountOperation *mount_op, action_area = gtk_dialog_get_action_area (dialog); /* Set the dialog up with HIG properties */ - gtk_dialog_set_has_separator (dialog, FALSE); gtk_container_set_border_width (GTK_CONTAINER (dialog), 5); gtk_box_set_spacing (GTK_BOX (content_area), 2); /* 2 * 5 + 2 = 12 */ gtk_container_set_border_width (GTK_CONTAINER (action_area), 5); @@ -1217,7 +1216,6 @@ create_show_processes_dialog (GMountOperation *op, if (priv->parent_window != NULL) gtk_window_set_transient_for (GTK_WINDOW (dialog), priv->parent_window); gtk_window_set_title (GTK_WINDOW (dialog), ""); - gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE); content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); vbox = gtk_vbox_new (FALSE, 12); diff --git a/gtk/gtkpagesetupunixdialog.c b/gtk/gtkpagesetupunixdialog.c index 49a24d3dbd..a7c75b5094 100644 --- a/gtk/gtkpagesetupunixdialog.c +++ b/gtk/gtkpagesetupunixdialog.c @@ -894,7 +894,6 @@ populate_dialog (GtkPageSetupUnixDialog *ps_dialog) content_area = gtk_dialog_get_content_area (dialog); action_area = gtk_dialog_get_action_area (dialog); - gtk_dialog_set_has_separator (dialog, FALSE); gtk_container_set_border_width (GTK_CONTAINER (dialog), 5); gtk_box_set_spacing (GTK_BOX (content_area), 2); /* 2 * 5 + 2 = 12 */ gtk_container_set_border_width (GTK_CONTAINER (action_area), 5); diff --git a/gtk/gtkprintbackend.c b/gtk/gtkprintbackend.c index 79a829a1e1..c212bece8d 100644 --- a/gtk/gtkprintbackend.c +++ b/gtk/gtkprintbackend.c @@ -748,7 +748,6 @@ request_password (GtkPrintBackend *backend, NULL); gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); - gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE); main_box = gtk_hbox_new (FALSE, 0); diff --git a/gtk/gtkprintunixdialog.c b/gtk/gtkprintunixdialog.c index f4ce65620a..d0cdae8c8c 100644 --- a/gtk/gtkprintunixdialog.c +++ b/gtk/gtkprintunixdialog.c @@ -3796,7 +3796,6 @@ populate_dialog (GtkPrintUnixDialog *print_dialog) content_area = gtk_dialog_get_content_area (dialog); action_area = gtk_dialog_get_action_area (dialog); - gtk_dialog_set_has_separator (dialog, FALSE); gtk_container_set_border_width (GTK_CONTAINER (dialog), 5); gtk_box_set_spacing (GTK_BOX (content_area), 2); /* 2 * 5 + 2 = 12 */ gtk_container_set_border_width (GTK_CONTAINER (action_area), 5); diff --git a/gtk/gtkrecentchooserdialog.c b/gtk/gtkrecentchooserdialog.c index 03de36c406..9825ac8ca2 100644 --- a/gtk/gtkrecentchooserdialog.c +++ b/gtk/gtkrecentchooserdialog.c @@ -143,7 +143,6 @@ gtk_recent_chooser_dialog_init (GtkRecentChooserDialog *dialog) content_area = gtk_dialog_get_content_area (rc_dialog); action_area = gtk_dialog_get_action_area (rc_dialog); - gtk_dialog_set_has_separator (rc_dialog, FALSE); gtk_container_set_border_width (GTK_CONTAINER (rc_dialog), 5); gtk_box_set_spacing (GTK_BOX (content_area), 2); /* 2 * 5 + 2 = 12 */ gtk_container_set_border_width (GTK_CONTAINER (action_area), 5);