[gnome-control-center/T20818: 21/54] region: adapt dialogs to small screen
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center/T20818: 21/54] region: adapt dialogs to small screen
- Date: Tue, 23 Jan 2018 21:31:48 +0000 (UTC)
commit a87b48f77680ac762c3a7540481a3e5ce35f9c47
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Thu Jan 7 13:34:49 2016 -0200
region: adapt dialogs to small screen
This commit adapts the three available dialogs
to small screen sizes, mostly by propagating
CcShell's small-screen property.
[endlessm/eos-shell#6133]
panels/common/cc-language-chooser.c | 18 ++++++++++++++++++
panels/common/cc-language-chooser.h | 2 ++
panels/region/cc-format-chooser.c | 26 +++++++++++++++++++++-----
panels/region/cc-format-chooser.h | 2 ++
panels/region/cc-input-chooser.c | 18 ++++++++++++++++++
panels/region/cc-input-chooser.h | 2 ++
panels/region/cc-region-panel.c | 9 +++++++++
panels/region/format-chooser.ui | 2 +-
panels/region/region.ui | 1 +
9 files changed, 74 insertions(+), 6 deletions(-)
---
diff --git a/panels/common/cc-language-chooser.c b/panels/common/cc-language-chooser.c
index 961df5a..baf1362 100644
--- a/panels/common/cc-language-chooser.c
+++ b/panels/common/cc-language-chooser.c
@@ -482,3 +482,21 @@ cc_language_chooser_set_language (GtkWidget *chooser,
{
set_locale_id (GTK_DIALOG (chooser), language);
}
+
+void
+cc_language_chooser_set_is_small_screen (GtkWidget *chooser,
+ gboolean is_small_screen)
+{
+ CcLanguageChooserPrivate *priv = GET_PRIVATE (chooser);
+
+ if (is_small_screen) {
+ gint width, height;
+
+ gtk_window_get_size (gtk_window_get_transient_for (GTK_WINDOW (chooser)), &width, &height);
+ gtk_widget_set_size_request (GTK_WIDGET (chooser), width, height);
+
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (priv->scrolledwindow),
+ GTK_POLICY_AUTOMATIC,
+ GTK_POLICY_AUTOMATIC);
+ }
+}
diff --git a/panels/common/cc-language-chooser.h b/panels/common/cc-language-chooser.h
index 5329e8b..0398955 100644
--- a/panels/common/cc-language-chooser.h
+++ b/panels/common/cc-language-chooser.h
@@ -31,6 +31,8 @@ void cc_language_chooser_clear_filter (GtkWidget *chooser);
const gchar *cc_language_chooser_get_language (GtkWidget *chooser);
void cc_language_chooser_set_language (GtkWidget *chooser,
const gchar *language);
+void cc_language_chooser_set_is_small_screen (GtkWidget *chooser,
+ gboolean is_small_screen);
G_END_DECLS
diff --git a/panels/region/cc-format-chooser.c b/panels/region/cc-format-chooser.c
index 4998de9..9171475 100644
--- a/panels/region/cc-format-chooser.c
+++ b/panels/region/cc-format-chooser.c
@@ -197,7 +197,7 @@ sort_regions (gconstpointer a,
}
static GtkWidget *
-padded_label_new (char *text, gboolean narrow)
+padded_label_new (char *text)
{
GtkWidget *widget;
@@ -205,8 +205,6 @@ padded_label_new (char *text, gboolean narrow)
gtk_widget_set_halign (widget, GTK_ALIGN_CENTER);
gtk_widget_set_margin_top (widget, 10);
gtk_widget_set_margin_bottom (widget, 10);
- gtk_widget_set_margin_start (widget, narrow ? 10 : 80);
- gtk_widget_set_margin_end (widget, narrow ? 10 : 80);
gtk_box_pack_start (GTK_BOX (widget), gtk_label_new (text), FALSE, FALSE, 0);
return widget;
@@ -230,7 +228,7 @@ region_widget_new (const gchar *locale_id,
locale_untranslated_name = gnome_get_country_from_locale (locale_id, "C");
row = gtk_list_box_row_new ();
- box = padded_label_new (locale_name, is_extra);
+ box = padded_label_new (locale_name);
gtk_container_add (GTK_CONTAINER (row), box);
/* We add a check on each side of the label to keep it centered. */
@@ -282,7 +280,7 @@ no_results_widget_new (void)
{
GtkWidget *widget;
- widget = padded_label_new (_("No regions found"), TRUE);
+ widget = padded_label_new (_("No regions found"));
gtk_widget_set_sensitive (widget, FALSE);
return widget;
}
@@ -591,3 +589,21 @@ cc_format_chooser_set_region (GtkWidget *chooser,
{
set_locale_id (GTK_DIALOG (chooser), region);
}
+
+void
+cc_format_chooser_set_is_small_screen (GtkWidget *chooser,
+ gboolean is_small_screen)
+{
+ CcFormatChooserPrivate *priv = GET_PRIVATE (chooser);
+
+ if (is_small_screen) {
+ gint width, height;
+
+ gtk_window_get_size (gtk_window_get_transient_for (GTK_WINDOW (chooser)), &width, &height);
+ gtk_widget_set_size_request (GTK_WIDGET (chooser), width, height);
+
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (priv->scrolledwindow),
+ GTK_POLICY_NEVER,
+ GTK_POLICY_AUTOMATIC);
+ }
+}
diff --git a/panels/region/cc-format-chooser.h b/panels/region/cc-format-chooser.h
index b08afa1..c27774d 100644
--- a/panels/region/cc-format-chooser.h
+++ b/panels/region/cc-format-chooser.h
@@ -31,6 +31,8 @@ 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);
+void cc_format_chooser_set_is_small_screen (GtkWidget *chooser,
+ gboolean is_small_screen);
G_END_DECLS
diff --git a/panels/region/cc-input-chooser.c b/panels/region/cc-input-chooser.c
index b995786..cb2b163 100644
--- a/panels/region/cc-input-chooser.c
+++ b/panels/region/cc-input-chooser.c
@@ -1179,3 +1179,21 @@ cc_input_chooser_reset (GtkWidget *chooser)
g_clear_pointer (&priv->filter_words, g_strfreev);
show_locale_rows (chooser);
}
+
+void
+cc_input_chooser_set_is_small_screen (GtkWidget *chooser,
+ gboolean is_small_screen)
+{
+ CcInputChooserPrivate *priv = GET_PRIVATE (chooser);
+
+ if (is_small_screen) {
+ gint width, height;
+
+ gtk_window_get_size (gtk_window_get_transient_for (GTK_WINDOW (chooser)), &width, &height);
+ gtk_widget_set_size_request (GTK_WIDGET (chooser), width * MAIN_WINDOW_WIDTH_RATIO, height);
+
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (priv->scrolledwindow),
+ GTK_POLICY_AUTOMATIC,
+ GTK_POLICY_AUTOMATIC);
+ }
+}
diff --git a/panels/region/cc-input-chooser.h b/panels/region/cc-input-chooser.h
index f4fbdc7..17e77eb 100644
--- a/panels/region/cc-input-chooser.h
+++ b/panels/region/cc-input-chooser.h
@@ -38,6 +38,8 @@ gboolean cc_input_chooser_get_selected (GtkWidget *chooser,
gchar **name);
void cc_input_chooser_reset (GtkWidget *chooser);
+void cc_input_chooser_set_is_small_screen (GtkWidget *chooser,
+ gboolean is_small_screen);
G_END_DECLS
diff --git a/panels/region/cc-region-panel.c b/panels/region/cc-region-panel.c
index d8c0794..0dd2b73 100644
--- a/panels/region/cc-region-panel.c
+++ b/panels/region/cc-region-panel.c
@@ -448,10 +448,13 @@ show_language_chooser (CcRegionPanel *self)
{
GtkWidget *toplevel;
GtkWidget *chooser;
+ CcShell *shell;
+ shell = cc_panel_get_shell (CC_PANEL (self));
toplevel = gtk_widget_get_toplevel (GTK_WIDGET (self));
chooser = cc_language_chooser_new (toplevel);
cc_language_chooser_set_language (chooser, get_effective_language (self));
+ cc_language_chooser_set_is_small_screen (chooser, cc_shell_is_small_screen (shell));
g_signal_connect (chooser, "response",
G_CALLBACK (language_response), self);
gtk_window_present (GTK_WINDOW (chooser));
@@ -482,10 +485,13 @@ show_region_chooser (CcRegionPanel *self)
{
GtkWidget *toplevel;
GtkWidget *chooser;
+ CcShell *shell;
+ shell = cc_panel_get_shell (CC_PANEL (self));
toplevel = gtk_widget_get_toplevel (GTK_WIDGET (self));
chooser = cc_format_chooser_new (toplevel);
cc_format_chooser_set_region (chooser, get_effective_region (self));
+ cc_format_chooser_set_is_small_screen (chooser, cc_shell_is_small_screen (shell));
g_signal_connect (chooser, "response",
G_CALLBACK (format_response), self);
gtk_window_present (GTK_WINDOW (chooser));
@@ -1129,10 +1135,12 @@ show_input_chooser (CcRegionPanel *self)
CcRegionPanelPrivate *priv = self->priv;
GtkWidget *chooser;
GtkWidget *toplevel;
+ CcShell *shell;
chooser = g_object_get_data (G_OBJECT (self), "input-chooser");
if (!chooser) {
+ shell = cc_panel_get_shell (CC_PANEL (self));
toplevel = gtk_widget_get_toplevel (GTK_WIDGET (self));
chooser = cc_input_chooser_new (GTK_WINDOW (toplevel),
priv->login,
@@ -1143,6 +1151,7 @@ show_input_chooser (CcRegionPanel *self)
NULL
#endif
);
+ cc_input_chooser_set_is_small_screen (chooser, cc_shell_is_small_screen (shell));
g_object_ref (chooser);
g_object_set_data_full (G_OBJECT (self), "input-chooser",
chooser, g_object_unref);
diff --git a/panels/region/format-chooser.ui b/panels/region/format-chooser.ui
index 363dc84..3844b51 100644
--- a/panels/region/format-chooser.ui
+++ b/panels/region/format-chooser.ui
@@ -43,7 +43,7 @@
<property name="margin_top">6</property>
<property name="margin_bottom">6</property>
<property name="hexpand">True</property>
- <property name="spacing">20</property>
+ <property name="spacing">12</property>
<child>
<object class="GtkBox" id="box2">
<property name="visible">True</property>
diff --git a/panels/region/region.ui b/panels/region/region.ui
index 0d67233..719e103 100644
--- a/panels/region/region.ui
+++ b/panels/region/region.ui
@@ -573,6 +573,7 @@
<property name="hexpand">True</property>
<property name="label" translatable="yes">Login settings are used by all users when logging into
the system</property>
<property name="margin_bottom">12</property>
+ <property name="wrap">True</property>
<style>
<class name="dim-label"/>
</style>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]