[gnome-control-center] region: Use GtkTemplate for format chooser dialog



commit 0f60dd1b7195876b34c7eaaf8630438410145054
Author: Robert Ancell <robert ancell canonical com>
Date:   Fri Jun 29 12:36:21 2018 +1200

    region: Use GtkTemplate for format chooser dialog

 panels/region/cc-format-chooser.c                  | 271 ++++++++++-----------
 panels/region/cc-format-chooser.h                  |  19 +-
 .../{format-chooser.ui => cc-format-chooser.ui}    |  51 ++--
 panels/region/cc-region-panel.c                    |  15 +-
 panels/region/meson.build                          |   2 +-
 panels/region/region.gresource.xml                 |   2 +-
 po/POTFILES.in                                     |   2 +-
 7 files changed, 175 insertions(+), 187 deletions(-)
---
diff --git a/panels/region/cc-format-chooser.c b/panels/region/cc-format-chooser.c
index c673e6f96..59520e1e8 100644
--- a/panels/region/cc-format-chooser.c
+++ b/panels/region/cc-format-chooser.c
@@ -34,26 +34,27 @@
 #define GNOME_DESKTOP_USE_UNSTABLE_API
 #include <libgnome-desktop/gnome-languages.h>
 
+struct _CcFormatChooser {
+        GtkDialog parent_instance;
 
-typedef struct {
         GtkWidget *done_button;
         GtkWidget *no_results;
         GtkListBoxRow *more_item;
-        GtkWidget *filter_entry;
-        GtkWidget *list;
-        GtkWidget *date;
-        GtkWidget *time;
-        GtkWidget *date_time;
-        GtkWidget *number;
-        GtkWidget *measurement;
-        GtkWidget *paper;
+        GtkWidget *region_filter_entry;
+        GtkWidget *region_listbox;
+        GtkWidget *date_format_label;
+        GtkWidget *time_format_label;
+        GtkWidget *date_time_format_label;
+        GtkWidget *number_format_label;
+        GtkWidget *measurement_format_label;
+        GtkWidget *paper_format_label;
         gboolean adding;
         gboolean showing_extra;
         gchar *region;
         gchar **filter_words;
-} CcFormatChooserPrivate;
+};
 
-#define GET_PRIVATE(chooser) ((CcFormatChooserPrivate *) g_object_get_data (G_OBJECT (chooser), "private"))
+G_DEFINE_TYPE (CcFormatChooser, cc_format_chooser, GTK_TYPE_DIALOG)
 
 static void
 display_date (GtkWidget *label, GDateTime *dt, const gchar *format)
@@ -63,9 +64,8 @@ display_date (GtkWidget *label, GDateTime *dt, const gchar *format)
 }
 
 static void
-update_format_examples (GtkDialog *chooser)
+update_format_examples (CcFormatChooser *chooser)
 {
-        CcFormatChooserPrivate *priv = GET_PRIVATE (chooser);
         g_autofree gchar *time_locale = NULL;
         g_autofree gchar *numeric_locale = NULL;
         g_autofree gchar *monetary_locale = NULL;
@@ -77,67 +77,66 @@ update_format_examples (GtkDialog *chooser)
         g_autoptr(GtkPaperSize) paper = NULL;
 
         time_locale = g_strdup (setlocale (LC_TIME, NULL));
-        setlocale (LC_TIME, priv->region);
+        setlocale (LC_TIME, chooser->region);
 
         dt = g_date_time_new_now_local ();
-        display_date (priv->date, dt, "%x");
-        display_date (priv->time, dt, "%X");
-        display_date (priv->date_time, dt, "%c");
+        display_date (chooser->date_format_label, dt, "%x");
+        display_date (chooser->time_format_label, dt, "%X");
+        display_date (chooser->date_time_format_label, dt, "%c");
 
         setlocale (LC_TIME, time_locale);
 
         numeric_locale = g_strdup (setlocale (LC_NUMERIC, NULL));
-        setlocale (LC_NUMERIC, priv->region);
+        setlocale (LC_NUMERIC, chooser->region);
 
         s = g_strdup_printf ("%'.2f", 123456789.00);
-        gtk_label_set_text (GTK_LABEL (priv->number), s);
+        gtk_label_set_text (GTK_LABEL (chooser->number_format_label), s);
 
         setlocale (LC_NUMERIC, numeric_locale);
 
 #if 0
         monetary_locale = g_strdup (setlocale (LC_MONETARY, NULL));
-        setlocale (LC_MONETARY, priv->region);
+        setlocale (LC_MONETARY, chooser->region);
 
         num_info = localeconv ();
         if (num_info != NULL)
-                gtk_label_set_text (GTK_LABEL (priv->currency), num_info->currency_symbol);
+                gtk_label_set_text (GTK_LABEL (chooser->currency_format_label), num_info->currency_symbol);
 
         setlocale (LC_MONETARY, monetary_locale);
 #endif
 
 #ifdef LC_MEASUREMENT
         measurement_locale = g_strdup (setlocale (LC_MEASUREMENT, NULL));
-        setlocale (LC_MEASUREMENT, priv->region);
+        setlocale (LC_MEASUREMENT, chooser->region);
 
         fmt = nl_langinfo (_NL_MEASUREMENT_MEASUREMENT);
         if (fmt && *fmt == 2)
-                gtk_label_set_text (GTK_LABEL (priv->measurement), C_("measurement format", "Imperial"));
+                gtk_label_set_text (GTK_LABEL (chooser->measurement_format_label), C_("measurement format", 
"Imperial"));
         else
-                gtk_label_set_text (GTK_LABEL (priv->measurement), C_("measurement format", "Metric"));
+                gtk_label_set_text (GTK_LABEL (chooser->measurement_format_label), C_("measurement format", 
"Metric"));
 
         setlocale (LC_MEASUREMENT, measurement_locale);
 #endif
 
 #ifdef LC_PAPER
         paper_locale = g_strdup (setlocale (LC_PAPER, NULL));
-        setlocale (LC_PAPER, priv->region);
+        setlocale (LC_PAPER, chooser->region);
 
         paper = gtk_paper_size_new (gtk_paper_size_get_default ());
-        gtk_label_set_text (GTK_LABEL (priv->paper), gtk_paper_size_get_display_name (paper));
+        gtk_label_set_text (GTK_LABEL (chooser->paper_format_label), gtk_paper_size_get_display_name 
(paper));
 
         setlocale (LC_PAPER, paper_locale);
 #endif
 }
 
 static void
-set_locale_id (GtkDialog   *chooser,
-               const gchar *locale_id)
+set_locale_id (CcFormatChooser *chooser,
+               const gchar     *locale_id)
 {
-        CcFormatChooserPrivate *priv = GET_PRIVATE (chooser);
         g_autoptr(GList) children = NULL;
         GList *l;
 
-        children = gtk_container_get_children (GTK_CONTAINER (priv->list));
+        children = gtk_container_get_children (GTK_CONTAINER (chooser->region_listbox));
         for (l = children; l; l = l->next) {
                 GtkWidget *row = l->data;
                 GtkWidget *check = g_object_get_data (G_OBJECT (row), "check");
@@ -153,9 +152,9 @@ set_locale_id (GtkDialog   *chooser,
 
                         /* make sure this row is shown */
                         is_extra = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (row), "is-extra"));
-                        if (!priv->showing_extra && is_extra) {
+                        if (!chooser->showing_extra && is_extra) {
                                 g_object_set_data (G_OBJECT (row), "is-extra", GINT_TO_POINTER (FALSE));
-                                gtk_list_box_invalidate_filter (GTK_LIST_BOX (priv->list));
+                                gtk_list_box_invalidate_filter (GTK_LIST_BOX (chooser->region_listbox));
                         }
 
                 } else {
@@ -164,8 +163,8 @@ set_locale_id (GtkDialog   *chooser,
                 }
         }
 
-        g_free (priv->region);
-        priv->region = g_strdup (locale_id);
+        g_free (chooser->region);
+        chooser->region = g_strdup (locale_id);
 
         update_format_examples (chooser);
 }
@@ -281,13 +280,11 @@ no_results_widget_new (void)
 }
 
 static void
-add_regions (GtkDialog   *chooser,
-             gchar      **locale_ids,
-             GHashTable  *initial)
+add_regions (CcFormatChooser *chooser,
+             gchar          **locale_ids,
+             GHashTable      *initial)
 {
-        CcFormatChooserPrivate *priv = GET_PRIVATE (chooser);
-
-        priv->adding = TRUE;
+        chooser->adding = TRUE;
 
         while (*locale_ids) {
                 gchar *locale_id;
@@ -305,18 +302,18 @@ add_regions (GtkDialog   *chooser,
                 if (!widget)
                   continue;
 
-                gtk_container_add (GTK_CONTAINER (priv->list), widget);
+                gtk_container_add (GTK_CONTAINER (chooser->region_listbox), widget);
         }
 
-        gtk_container_add (GTK_CONTAINER (priv->list), GTK_WIDGET (priv->more_item));
+        gtk_container_add (GTK_CONTAINER (chooser->region_listbox), GTK_WIDGET (chooser->more_item));
 
-        gtk_widget_show_all (priv->list);
+        gtk_widget_show_all (chooser->region_listbox);
 
-        priv->adding = FALSE;
+        chooser->adding = FALSE;
 }
 
 static void
-add_all_regions (GtkDialog *chooser)
+add_all_regions (CcFormatChooser *chooser)
 {
         g_auto(GStrv) locale_ids = NULL;
         g_autoptr(GHashTable) initial = NULL;
@@ -343,110 +340,105 @@ static gboolean
 region_visible (GtkListBoxRow *row,
                 gpointer   user_data)
 {
-        GtkDialog *chooser = user_data;
-        CcFormatChooserPrivate *priv = GET_PRIVATE (chooser);
+        CcFormatChooser *chooser = user_data;
         g_autofree gchar *locale_name = NULL;
         g_autofree gchar *locale_current_name = NULL;
         g_autofree gchar *locale_untranslated_name = NULL;
         gboolean is_extra;
 
-        if (row == priv->more_item)
-                return !priv->showing_extra;
+        if (row == chooser->more_item)
+                return !chooser->showing_extra;
 
         is_extra = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (row), "is-extra"));
 
-        if (!priv->showing_extra && is_extra)
+        if (!chooser->showing_extra && is_extra)
                 return FALSE;
 
-        if (!priv->filter_words)
+        if (!chooser->filter_words)
                 return TRUE;
 
         locale_name =
                 cc_util_normalize_casefold_and_unaccent (g_object_get_data (G_OBJECT (row), "locale-name"));
-        if (match_all (priv->filter_words, locale_name))
+        if (match_all (chooser->filter_words, locale_name))
                  return TRUE;
 
         locale_current_name =
                 cc_util_normalize_casefold_and_unaccent (g_object_get_data (G_OBJECT (row), 
"locale-current-name"));
-        if (match_all (priv->filter_words, locale_current_name))
+        if (match_all (chooser->filter_words, locale_current_name))
                  return TRUE;
 
         locale_untranslated_name =
                 cc_util_normalize_casefold_and_unaccent (g_object_get_data (G_OBJECT (row), 
"locale-untranslated-name"));
-        return match_all (priv->filter_words, locale_untranslated_name);
+        return match_all (chooser->filter_words, locale_untranslated_name);
 }
 
 static void
-filter_changed (GtkDialog *chooser)
+filter_changed (CcFormatChooser *chooser)
 {
-        CcFormatChooserPrivate *priv = GET_PRIVATE (chooser);
         g_autofree gchar *filter_contents = NULL;
 
-        g_clear_pointer (&priv->filter_words, g_strfreev);
+        g_clear_pointer (&chooser->filter_words, g_strfreev);
 
         filter_contents =
-                cc_util_normalize_casefold_and_unaccent (gtk_entry_get_text (GTK_ENTRY 
(priv->filter_entry)));
+                cc_util_normalize_casefold_and_unaccent (gtk_entry_get_text (GTK_ENTRY 
(chooser->region_filter_entry)));
         if (!filter_contents) {
-                gtk_list_box_invalidate_filter (GTK_LIST_BOX (priv->list));
-                gtk_list_box_set_placeholder (GTK_LIST_BOX (priv->list), NULL);
+                gtk_list_box_invalidate_filter (GTK_LIST_BOX (chooser->region_listbox));
+                gtk_list_box_set_placeholder (GTK_LIST_BOX (chooser->region_listbox), NULL);
                 return;
         }
-        priv->filter_words = g_strsplit_set (g_strstrip (filter_contents), " ", 0);
-        gtk_list_box_set_placeholder (GTK_LIST_BOX (priv->list), GTK_WIDGET (priv->no_results));
-        gtk_list_box_invalidate_filter (GTK_LIST_BOX (priv->list));
+        chooser->filter_words = g_strsplit_set (g_strstrip (filter_contents), " ", 0);
+        gtk_list_box_set_placeholder (GTK_LIST_BOX (chooser->region_listbox), GTK_WIDGET 
(chooser->no_results));
+        gtk_list_box_invalidate_filter (GTK_LIST_BOX (chooser->region_listbox));
 }
 
 static void
-show_more (GtkDialog *chooser)
+show_more (CcFormatChooser *chooser)
 {
-        CcFormatChooserPrivate *priv = GET_PRIVATE (chooser);
         gint width, height;
 
         gtk_window_get_size (GTK_WINDOW (chooser), &width, &height);
         gtk_widget_set_size_request (GTK_WIDGET (chooser), width, height);
         gtk_window_set_resizable (GTK_WINDOW (chooser), TRUE);
 
-        gtk_widget_show (priv->filter_entry);
-        gtk_widget_grab_focus (priv->filter_entry);
+        gtk_widget_show (chooser->region_filter_entry);
+        gtk_widget_grab_focus (chooser->region_filter_entry);
 
-        priv->showing_extra = TRUE;
+        chooser->showing_extra = TRUE;
 
-        gtk_list_box_invalidate_filter (GTK_LIST_BOX (priv->list));
+        gtk_list_box_invalidate_filter (GTK_LIST_BOX (chooser->region_listbox));
 }
 
 static void
-row_activated (GtkListBox  *box,
-               GtkListBoxRow *row,
-               GtkDialog   *chooser)
+row_activated (GtkListBox      *box,
+               GtkListBoxRow   *row,
+               CcFormatChooser *chooser)
 {
-        CcFormatChooserPrivate *priv = GET_PRIVATE (chooser);
         const gchar *new_locale_id;
 
-        if (priv->adding)
+        if (chooser->adding)
                 return;
 
         if (row == NULL)
                 return;
 
-        if (row == priv->more_item) {
+        if (row == chooser->more_item) {
                 show_more (chooser);
                 return;
         }
         new_locale_id = g_object_get_data (G_OBJECT (row), "locale-id");
-        if (g_strcmp0 (new_locale_id, priv->region) == 0) {
+        if (g_strcmp0 (new_locale_id, chooser->region) == 0) {
                 gtk_dialog_response (GTK_DIALOG (chooser),
                                      gtk_dialog_get_response_for_widget (GTK_DIALOG (chooser),
-                                                                         priv->done_button));
+                                                                         chooser->done_button));
         } else {
                 set_locale_id (chooser, new_locale_id);
         }
 }
 
 static void
-activate_default (GtkWindow *window,
-                  GtkDialog *chooser)
+activate_default (GtkWindow       *window,
+                  CcFormatChooser *chooser)
 {
-        CcFormatChooserPrivate *priv = GET_PRIVATE (chooser);
         GtkWidget *focus;
         const gchar *locale_id;
 
@@ -455,7 +447,7 @@ activate_default (GtkWindow *window,
                 return;
 
         locale_id = g_object_get_data (G_OBJECT (focus), "locale-id");
-        if (g_strcmp0 (locale_id, priv->region) == 0)
+        if (g_strcmp0 (locale_id, chooser->region) == 0)
                 return;
 
         g_signal_stop_emission_by_name (window, "activate-default");
@@ -463,98 +455,97 @@ activate_default (GtkWindow *window,
 }
 
 static void
-cc_format_chooser_private_free (gpointer data)
+cc_format_chooser_dispose (GObject *object)
 {
-        CcFormatChooserPrivate *priv = data;
+        CcFormatChooser *chooser = CC_FORMAT_CHOOSER (object);
 
-        g_clear_object (&priv->no_results);
-        g_strfreev (priv->filter_words);
-        g_free (priv->region);
-        g_free (priv);
-}
+        g_clear_object (&chooser->no_results);
+        g_clear_pointer (&chooser->filter_words, g_strfreev);
+        g_clear_pointer (&chooser->region, g_free);
 
-#define WID(name) ((GtkWidget *) gtk_builder_get_object (builder, name))
+        G_OBJECT_CLASS (cc_format_chooser_parent_class)->dispose (object);
+}
 
-GtkWidget *
-cc_format_chooser_new (GtkWidget *parent)
+void
+cc_format_chooser_class_init (CcFormatChooserClass *klass)
 {
-        g_autoptr(GtkBuilder) builder = NULL;
-        GtkWidget *chooser;
-        CcFormatChooserPrivate *priv;
-        g_autoptr(GError) error = NULL;
-
-        builder = gtk_builder_new ();
-        if (gtk_builder_add_from_resource (builder, "/org/gnome/control-center/region/format-chooser.ui", 
&error) == 0) {
-                g_warning ("failed to load format chooser: %s", error->message);
-                return NULL;
-        }
+        GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
+        GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+        object_class->dispose = cc_format_chooser_dispose;
+
+        gtk_widget_class_set_template_from_resource (widget_class, 
"/org/gnome/control-center/region/cc-format-chooser.ui");
+
+        gtk_widget_class_bind_template_child (widget_class, CcFormatChooser, done_button);
+        gtk_widget_class_bind_template_child (widget_class, CcFormatChooser, region_filter_entry);
+        gtk_widget_class_bind_template_child (widget_class, CcFormatChooser, region_listbox);
+        gtk_widget_class_bind_template_child (widget_class, CcFormatChooser, date_format_label);
+        gtk_widget_class_bind_template_child (widget_class, CcFormatChooser, time_format_label);
+        gtk_widget_class_bind_template_child (widget_class, CcFormatChooser, date_time_format_label);
+        gtk_widget_class_bind_template_child (widget_class, CcFormatChooser, number_format_label);
+        gtk_widget_class_bind_template_child (widget_class, CcFormatChooser, measurement_format_label);
+        gtk_widget_class_bind_template_child (widget_class, CcFormatChooser, paper_format_label);
+}
 
-        chooser = WID ("dialog");
-        priv = g_new0 (CcFormatChooserPrivate, 1);
-        g_object_set_data_full (G_OBJECT (chooser), "private", priv, cc_format_chooser_private_free);
-        g_object_set_data_full (G_OBJECT (chooser), "builder", g_object_ref (builder), g_object_unref);
+void
+cc_format_chooser_init (CcFormatChooser *chooser)
+{
+        gtk_widget_init_template (GTK_WIDGET (chooser));
 
-        priv->done_button = WID ("ok-button");
-        priv->filter_entry = WID ("region-filter-entry");
-        priv->list = WID ("region-list");
-        priv->more_item = more_widget_new ();
+        chooser->more_item = more_widget_new ();
         /* We ref-sink here so we can reuse this widget multiple times */
-        priv->no_results = g_object_ref_sink (no_results_widget_new ());
-        gtk_widget_show_all (priv->no_results);
-
-        priv->date = WID ("date-format");
-        priv->time = WID ("time-format");
-        priv->date_time = WID ("date-time-format");
-        priv->number = WID ("number-format");
-        priv->measurement = WID ("measurement-format");
-        priv->paper = WID ("paper-format");
+        chooser->no_results = g_object_ref_sink (no_results_widget_new ());
+        gtk_widget_show_all (chooser->no_results);
 
-        gtk_list_box_set_sort_func (GTK_LIST_BOX (priv->list),
+        gtk_list_box_set_sort_func (GTK_LIST_BOX (chooser->region_listbox),
                                     (GtkListBoxSortFunc)sort_regions, chooser, NULL);
-        gtk_list_box_set_filter_func (GTK_LIST_BOX (priv->list),
+        gtk_list_box_set_filter_func (GTK_LIST_BOX (chooser->region_listbox),
                                       region_visible, chooser, NULL);
-        gtk_list_box_set_selection_mode (GTK_LIST_BOX (priv->list),
+        gtk_list_box_set_selection_mode (GTK_LIST_BOX (chooser->region_listbox),
                                          GTK_SELECTION_NONE);
-        gtk_list_box_set_header_func (GTK_LIST_BOX (priv->list),
+        gtk_list_box_set_header_func (GTK_LIST_BOX (chooser->region_listbox),
                                       cc_list_box_update_header_func, NULL, NULL);
 
-        add_all_regions (GTK_DIALOG (chooser));
+        add_all_regions (chooser);
 
-        g_signal_connect_swapped (priv->filter_entry, "search-changed",
+        g_signal_connect_swapped (chooser->region_filter_entry, "search-changed",
                                   G_CALLBACK (filter_changed), chooser);
 
-        g_signal_connect (priv->list, "row-activated",
+        g_signal_connect (chooser->region_listbox, "row-activated",
                           G_CALLBACK (row_activated), chooser);
 
-        gtk_list_box_invalidate_filter (GTK_LIST_BOX (priv->list));
-
-        gtk_window_set_transient_for (GTK_WINDOW (chooser), GTK_WINDOW (parent));
+        gtk_list_box_invalidate_filter (GTK_LIST_BOX (chooser->region_listbox));
 
         g_signal_connect (chooser, "activate-default",
                           G_CALLBACK (activate_default), chooser);
+}
 
-        return chooser;
+CcFormatChooser *
+cc_format_chooser_new (void)
+{
+        return CC_FORMAT_CHOOSER (g_object_new (CC_TYPE_FORMAT_CHOOSER,
+                                                "use-header-bar", 1,
+                                                NULL));
 }
 
 void
-cc_format_chooser_clear_filter (GtkWidget *chooser)
+cc_format_chooser_clear_filter (CcFormatChooser *chooser)
 {
-        CcFormatChooserPrivate *priv = GET_PRIVATE (chooser);
-
-        gtk_entry_set_text (GTK_ENTRY (priv->filter_entry), "");
+        g_return_if_fail (CC_IS_FORMAT_CHOOSER (chooser));
+        gtk_entry_set_text (GTK_ENTRY (chooser->region_filter_entry), "");
 }
 
 const gchar *
-cc_format_chooser_get_region (GtkWidget *chooser)
+cc_format_chooser_get_region (CcFormatChooser *chooser)
 {
-        CcFormatChooserPrivate *priv = GET_PRIVATE (chooser);
-
-        return priv->region;
+        g_return_val_if_fail (CC_IS_FORMAT_CHOOSER (chooser), NULL);
+        return chooser->region;
 }
 
 void
-cc_format_chooser_set_region (GtkWidget   *chooser,
-                              const gchar *region)
+cc_format_chooser_set_region (CcFormatChooser *chooser,
+                              const gchar     *region)
 {
-        set_locale_id (GTK_DIALOG (chooser), region);
+        g_return_if_fail (CC_IS_FORMAT_CHOOSER (chooser));
+        set_locale_id (chooser, region);
 }
diff --git a/panels/region/cc-format-chooser.h b/panels/region/cc-format-chooser.h
index b08afa107..0248338b3 100644
--- a/panels/region/cc-format-chooser.h
+++ b/panels/region/cc-format-chooser.h
@@ -18,20 +18,19 @@
  *     Matthias Clasen
  */
 
-#ifndef __CC_FORMAT_CHOOSER_H__
-#define __CC_FORMAT_CHOOSER_H__
+#pragma once
 
 #include <gtk/gtk.h>
-#include <glib-object.h>
 
 G_BEGIN_DECLS
 
-GtkWidget   *cc_format_chooser_new          (GtkWidget   *parent);
-void         cc_format_chooser_clear_filter (GtkWidget   *chooser);
-const gchar *cc_format_chooser_get_region   (GtkWidget   *chooser);
-void         cc_format_chooser_set_region   (GtkWidget   *chooser,
-                                             const gchar *region);
+#define CC_TYPE_FORMAT_CHOOSER (cc_format_chooser_get_type ())
+G_DECLARE_FINAL_TYPE (CcFormatChooser, cc_format_chooser, CC, FORMAT_CHOOSER, GtkDialog)
 
-G_END_DECLS
+CcFormatChooser *cc_format_chooser_new          (void);
+void             cc_format_chooser_clear_filter (CcFormatChooser *chooser);
+const gchar     *cc_format_chooser_get_region   (CcFormatChooser *chooser);
+void             cc_format_chooser_set_region   (CcFormatChooser *chooser,
+                                                 const gchar     *region);
 
-#endif /* __CC_FORMAT_CHOOSER_H__ */
+G_END_DECLS
diff --git a/panels/region/format-chooser.ui b/panels/region/cc-format-chooser.ui
similarity index 90%
rename from panels/region/format-chooser.ui
rename to panels/region/cc-format-chooser.ui
index fc574a87e..7e915f0e6 100644
--- a/panels/region/format-chooser.ui
+++ b/panels/region/cc-format-chooser.ui
@@ -1,16 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <interface>
   <!-- interface-requires gtk+ 3.0 -->
-  <object class="GtkDialog" id="dialog">
+  <template class="CcFormatChooser" parent="GtkDialog">
     <property name="can_focus">False</property>
     <property name="border_width">5</property>
     <property name="title" translatable="yes">Formats</property>
     <property name="type_hint">dialog</property>
     <property name="resizable">False</property>
     <property name="modal">True</property>
-    <property name="use_header_bar">1</property>
     <child type="action">
-      <object class="GtkButton" id="ok-button">
+      <object class="GtkButton" id="done_button">
         <property name="label" translatable="yes">_Done</property>
         <property name="visible">True</property>
         <property name="can_focus">True</property>
@@ -21,7 +20,7 @@
       </object>
     </child>
     <child type="action">
-      <object class="GtkButton" id="cancel-button">
+      <object class="GtkButton" id="cancel_button">
         <property name="label" translatable="yes">_Cancel</property>
         <property name="visible">True</property>
         <property name="can_focus">True</property>
@@ -45,14 +44,14 @@
             <property name="hexpand">True</property>
             <property name="spacing">20</property>
             <child>
-              <object class="GtkBox" id="box2">
+              <object class="GtkBox">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
                 <property name="vexpand">True</property>
                 <property name="orientation">vertical</property>
                 <property name="spacing">6</property>
                 <child>
-                  <object class="GtkScrolledWindow" id="region-scrolledwindow">
+                  <object class="GtkScrolledWindow">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="vexpand">True</property>
@@ -61,11 +60,11 @@
                     <property name="propagate-natural-height">True</property>
                     <property name="shadow_type">in</property>
                     <child>
-                      <object class="GtkViewport" id="viewport1">
+                      <object class="GtkViewport">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <child>
-                          <object class="GtkListBox" id="region-list">
+                          <object class="GtkListBox" id="region_listbox">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="vexpand">True</property>
@@ -83,7 +82,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkSearchEntry" id="region-filter-entry">
+                  <object class="GtkSearchEntry" id="region_filter_entry">
                     <property name="visible">False</property>
                     <property name="hexpand">True</property>
                     <property name="can_focus">True</property>
@@ -102,7 +101,7 @@
               </packing>
             </child>
             <child>
-              <object class="GtkGrid" id="grid1">
+              <object class="GtkGrid">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
                 <property name="halign">start</property>
@@ -112,7 +111,7 @@
                 <property name="row_spacing">6</property>
                 <property name="column_spacing">6</property>
                 <child>
-                  <object class="GtkLabel" id="label2">
+                  <object class="GtkLabel">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="margin_bottom">6</property>
@@ -131,7 +130,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="label3">
+                  <object class="GtkLabel">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="xalign">1</property>
@@ -148,7 +147,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="date-format">
+                  <object class="GtkLabel" id="date_format_label">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="xalign">0</property>
@@ -162,7 +161,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="label1">
+                  <object class="GtkLabel">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="xalign">1</property>
@@ -179,7 +178,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="time-format">
+                  <object class="GtkLabel" id="time_format_label">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="xalign">0</property>
@@ -193,7 +192,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="label4">
+                  <object class="GtkLabel">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="xalign">1</property>
@@ -210,7 +209,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="date-time-format">
+                  <object class="GtkLabel" id="date_time_format_label">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="xalign">0</property>
@@ -224,7 +223,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="label5">
+                  <object class="GtkLabel">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="xalign">1</property>
@@ -241,7 +240,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="label6">
+                  <object class="GtkLabel">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="xalign">1</property>
@@ -258,7 +257,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="label7">
+                  <object class="GtkLabel">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="xalign">1</property>
@@ -275,7 +274,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="number-format">
+                  <object class="GtkLabel" id="number_format_label">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="xalign">0</property>
@@ -289,7 +288,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="measurement-format">
+                  <object class="GtkLabel" id="measurement_format_label">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="xalign">0</property>
@@ -303,7 +302,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="paper-format">
+                  <object class="GtkLabel" id="paper_format_label">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="xalign">0</property>
@@ -333,8 +332,8 @@
       </object>
     </child>
     <action-widgets>
-      <action-widget response="-5" default="true">ok-button</action-widget>
-      <action-widget response="-6">cancel-button</action-widget>
+      <action-widget response="-5" default="true">done_button</action-widget>
+      <action-widget response="-6">cancel_button</action-widget>
     </action-widgets>
-  </object>
+  </template>
 </interface>
diff --git a/panels/region/cc-region-panel.c b/panels/region/cc-region-panel.c
index 5795d1663..7a58e84cc 100644
--- a/panels/region/cc-region-panel.c
+++ b/panels/region/cc-region-panel.c
@@ -389,14 +389,14 @@ update_region (CcRegionPanel *self,
 }
 
 static void
-format_response (GtkDialog *chooser,
-                 gint       response_id,
-                 CcRegionPanel *self)
+format_response (CcFormatChooser *chooser,
+                 gint             response_id,
+                 CcRegionPanel   *self)
 {
         const gchar *region;
 
         if (response_id == GTK_RESPONSE_OK) {
-                region = cc_format_chooser_get_region (GTK_WIDGET (chooser));
+                region = cc_format_chooser_get_region (chooser);
                 update_region (self, region);
         }
 
@@ -448,11 +448,10 @@ get_effective_region (CcRegionPanel *self)
 static void
 show_region_chooser (CcRegionPanel *self)
 {
-        GtkWidget *toplevel;
-        GtkWidget *chooser;
+        CcFormatChooser *chooser;
 
-        toplevel = gtk_widget_get_toplevel (GTK_WIDGET (self));
-        chooser = cc_format_chooser_new (toplevel);
+        chooser = cc_format_chooser_new ();
+        gtk_window_set_transient_for (GTK_WINDOW (chooser), GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET 
(self))));
         cc_format_chooser_set_region (chooser, get_effective_region (self));
         g_signal_connect (chooser, "response",
                           G_CALLBACK (format_response), self);
diff --git a/panels/region/meson.build b/panels/region/meson.build
index 3bdfffd14..5c0a6f5db 100644
--- a/panels/region/meson.build
+++ b/panels/region/meson.build
@@ -26,7 +26,7 @@ sources = files(
 )
 
 resource_data = files(
-  'format-chooser.ui',
+  'cc-format-chooser.ui',
   'input-chooser.ui',
   'input-options.ui',
   'region.ui'
diff --git a/panels/region/region.gresource.xml b/panels/region/region.gresource.xml
index 497278387..73ce4c167 100644
--- a/panels/region/region.gresource.xml
+++ b/panels/region/region.gresource.xml
@@ -2,7 +2,7 @@
 <gresources>
   <gresource prefix="/org/gnome/control-center/region">
     <file preprocess="xml-stripblanks">region.ui</file>
-    <file preprocess="xml-stripblanks">format-chooser.ui</file>
+    <file preprocess="xml-stripblanks">cc-format-chooser.ui</file>
     <file preprocess="xml-stripblanks">input-options.ui</file>
     <file preprocess="xml-stripblanks">input-chooser.ui</file>
   </gresource>
diff --git a/po/POTFILES.in b/po/POTFILES.in
index e608448a3..619fd143c 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -156,9 +156,9 @@ panels/privacy/cc-privacy-panel.c
 panels/privacy/gnome-privacy-panel.desktop.in.in
 panels/privacy/privacy.ui
 panels/region/cc-format-chooser.c
+panels/region/cc-format-chooser.ui
 panels/region/cc-input-chooser.c
 panels/region/cc-region-panel.c
-panels/region/format-chooser.ui
 panels/region/gnome-region-panel.desktop.in.in
 panels/region/input-chooser.ui
 panels/region/input-options.ui


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]