summaryrefslogtreecommitdiff
path: root/gtk/gtkcolorchooserdialog.c
diff options
context:
space:
mode:
authorWilliam Jon McCann <william.jon.mccann@gmail.com>2013-12-08 15:13:25 +0100
committerMatthias Clasen <mclasen@redhat.com>2014-01-17 17:52:08 -0500
commit9c443b4a3cbff984efa1f353a09bde3e3fe9deeb (patch)
treeccdfc6332504eb07f35c389bae533f852ca0991a /gtk/gtkcolorchooserdialog.c
parent3eb2430a9880e804d87d9b9de1badbc0dbaf5bee (diff)
downloadgtk+-9c443b4a3cbff984efa1f353a09bde3e3fe9deeb.tar.gz
color chooser: Use headerbar
Make GtkColorChooserDialog use a headerbar when desired. https://bugzilla.gnome.org/show_bug.cgi?id=720059
Diffstat (limited to 'gtk/gtkcolorchooserdialog.c')
-rw-r--r--gtk/gtkcolorchooserdialog.c32
1 files changed, 23 insertions, 9 deletions
diff --git a/gtk/gtkcolorchooserdialog.c b/gtk/gtkcolorchooserdialog.c
index 1998cbd030..f9316b1e34 100644
--- a/gtk/gtkcolorchooserdialog.c
+++ b/gtk/gtkcolorchooserdialog.c
@@ -18,10 +18,12 @@
#include "config.h"
#include "gtkdialog.h"
+#include "gtkdialogprivate.h"
#include "gtkbutton.h"
#include "gtkbox.h"
#include "gtkprivate.h"
#include "gtkintl.h"
+#include "gtksettings.h"
#include "gtkcolorchooserprivate.h"
#include "gtkcolorchooserdialog.h"
@@ -42,9 +44,6 @@
struct _GtkColorChooserDialogPrivate
{
GtkWidget *chooser;
-
- GtkWidget *select_button;
- GtkWidget *cancel_button;
};
enum
@@ -92,10 +91,12 @@ color_activated_cb (GtkColorChooser *chooser,
}
static void
-selected_cb (GtkButton *button,
- GtkDialog *dialog)
+gtk_color_chooser_dialog_response (GtkDialog *dialog,
+ gint response_id,
+ gpointer user_data)
{
- save_color (GTK_COLOR_CHOOSER_DIALOG (dialog));
+ if (response_id == GTK_RESPONSE_OK)
+ save_color (GTK_COLOR_CHOOSER_DIALOG (dialog));
}
static void
@@ -104,6 +105,22 @@ gtk_color_chooser_dialog_init (GtkColorChooserDialog *cc)
cc->priv = gtk_color_chooser_dialog_get_instance_private (cc);
gtk_widget_init_template (GTK_WIDGET (cc));
+ gtk_dialog_set_use_header_bar_from_setting (GTK_DIALOG (cc));
+ gtk_dialog_add_buttons (GTK_DIALOG (cc),
+ _("_Cancel"), GTK_RESPONSE_CANCEL,
+ _("_Select"), GTK_RESPONSE_OK,
+ NULL);
+ gtk_dialog_set_default_response (GTK_DIALOG (cc), GTK_RESPONSE_OK);
+
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+ gtk_dialog_set_alternative_button_order (GTK_DIALOG (cc),
+ GTK_RESPONSE_OK,
+ GTK_RESPONSE_CANCEL,
+ -1);
+G_GNUC_END_IGNORE_DEPRECATIONS
+
+ g_signal_connect (cc, "response",
+ G_CALLBACK (gtk_color_chooser_dialog_response), NULL);
}
static void
@@ -203,9 +220,6 @@ gtk_color_chooser_dialog_class_init (GtkColorChooserDialogClass *class)
gtk_widget_class_set_template_from_resource (widget_class,
"/org/gtk/libgtk/gtkcolorchooserdialog.ui");
gtk_widget_class_bind_template_child_private (widget_class, GtkColorChooserDialog, chooser);
- gtk_widget_class_bind_template_child_private (widget_class, GtkColorChooserDialog, cancel_button);
- gtk_widget_class_bind_template_child_private (widget_class, GtkColorChooserDialog, select_button);
- gtk_widget_class_bind_template_callback (widget_class, selected_cb);
gtk_widget_class_bind_template_callback (widget_class, propagate_notify);
gtk_widget_class_bind_template_callback (widget_class, color_activated_cb);
}