[gnome-control-center/T20818: 8/54] panels: adapt to small screen sizes



commit 7fe04772cef3c021ac48c968fc9f613080d86e35
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Tue Dec 15 15:29:07 2015 -0200

    panels: adapt to small screen sizes
    
    This commit adapts some panels to small screen sizes, either
    by changing spacements, margins and borders, remaking the layout
    of the panels or even adding scrollbars when the screen is small.
    
    [endlessm/eos-shell#6133]

 panels/datetime/datetime.ui            |    4 ++--
 panels/mouse/cc-mouse-panel.c          |    9 +++++++--
 panels/mouse/gnome-mouse-properties.ui |    1 +
 panels/privacy/cc-privacy-panel.c      |    1 +
 panels/search/search.ui                |    2 +-
 panels/sound/cc-sound-panel.c          |   26 ++++++++++++++++++++++++++
 panels/universal-access/cc-ua-panel.c  |    2 +-
 panels/user-accounts/um-user-panel.c   |   20 ++++++++++++++++++++
 8 files changed, 59 insertions(+), 6 deletions(-)
---
diff --git a/panels/datetime/datetime.ui b/panels/datetime/datetime.ui
index 5240d4b..17a4e6b 100644
--- a/panels/datetime/datetime.ui
+++ b/panels/datetime/datetime.ui
@@ -260,8 +260,8 @@
   <object class="GtkBox" id="vbox_datetime">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
-    <property name="margin_start">134</property>
-    <property name="margin_end">134</property>
+    <property name="margin_start">80</property>
+    <property name="margin_end">80</property>
     <property name="margin_top">32</property>
     <property name="margin_bottom">32</property>
     <property name="orientation">vertical</property>
diff --git a/panels/mouse/cc-mouse-panel.c b/panels/mouse/cc-mouse-panel.c
index c365480..e603938 100644
--- a/panels/mouse/cc-mouse-panel.c
+++ b/panels/mouse/cc-mouse-panel.c
@@ -71,7 +71,7 @@ static void
 cc_mouse_panel_constructed (GObject *object)
 {
   CcMousePanel *self = CC_MOUSE_PANEL (object);
-  GtkWidget *button;
+  GtkWidget *button, *label;
   CcShell *shell;
 
   G_OBJECT_CLASS (cc_mouse_panel_parent_class)->constructed (object);
@@ -79,7 +79,12 @@ cc_mouse_panel_constructed (GObject *object)
   /* Add test area button to shell header. */
   shell = cc_panel_get_shell (CC_PANEL (self));
 
-  button = gtk_toggle_button_new_with_mnemonic (_("Test Your _Settings"));
+  label = gtk_label_new_with_mnemonic (_("Test Your _Settings"));
+  gtk_label_set_ellipsize (GTK_LABEL (label), PANGO_ELLIPSIZE_END);
+  gtk_widget_show (label);
+
+  button = gtk_toggle_button_new ();
+  gtk_container_add (GTK_CONTAINER (button), label);
   gtk_style_context_add_class (gtk_widget_get_style_context (button),
                                "text-button");
   gtk_widget_set_valign (button, GTK_ALIGN_CENTER);
diff --git a/panels/mouse/gnome-mouse-properties.ui b/panels/mouse/gnome-mouse-properties.ui
index 018b374..f8e68ae 100644
--- a/panels/mouse/gnome-mouse-properties.ui
+++ b/panels/mouse/gnome-mouse-properties.ui
@@ -236,6 +236,7 @@
                                 <child internal-child="accessible">
                                   <object class="AtkObject" id="mouse_speed_scale-atkobject">
                                     <property name="AtkObject::accessible-description" 
translatable="yes">Double-click timeout</property>
+
                                   </object>
                                 </child>
                               </object>
diff --git a/panels/privacy/cc-privacy-panel.c b/panels/privacy/cc-privacy-panel.c
index fe2e5c7..125c5f6 100644
--- a/panels/privacy/cc-privacy-panel.c
+++ b/panels/privacy/cc-privacy-panel.c
@@ -293,6 +293,7 @@ add_row (CcPrivacyPanel *self,
   gtk_container_add (GTK_CONTAINER (self->priv->list_box), row);
 
   w = gtk_label_new (label);
+  gtk_label_set_line_wrap (GTK_LABEL (w), TRUE);
   gtk_widget_set_halign (w, GTK_ALIGN_START);
   gtk_widget_set_margin_start (w, 20);
   gtk_widget_set_margin_end (w, 20);
diff --git a/panels/search/search.ui b/panels/search/search.ui
index dea20f8..553cf52 100644
--- a/panels/search/search.ui
+++ b/panels/search/search.ui
@@ -4,7 +4,7 @@
   <object class="GtkScrolledWindow" id="search_vbox">
     <property name="visible">True</property>
     <property name="hscrollbar_policy">never</property>
-    <property name="min_content_height">450</property>
+    <property name="min_content_height">350</property>
     <child>
       <object class="GtkBox">
         <property name="visible">True</property>
diff --git a/panels/sound/cc-sound-panel.c b/panels/sound/cc-sound-panel.c
index 88d5b3f..94ad9ae 100644
--- a/panels/sound/cc-sound-panel.c
+++ b/panels/sound/cc-sound-panel.c
@@ -67,6 +67,31 @@ cc_sound_panel_set_property (GObject      *object,
         }
 }
 
+static void
+cc_sound_panel_constructed (GObject *object)
+{
+        CcSoundPanel *self = CC_SOUND_PANEL (object);
+        CcShell *shell;
+
+        shell = cc_panel_get_shell (CC_PANEL (self));
+
+        G_OBJECT_CLASS (cc_sound_panel_parent_class)->constructed (object);
+
+        if (cc_shell_is_small_screen (shell)) {
+                GtkWidget *sw;
+
+                sw = gtk_scrolled_window_new (NULL, NULL);
+                gtk_scrolled_window_set_min_content_height (GTK_SCROLLED_WINDOW (sw), 400);
+                gtk_widget_show (sw);
+
+                g_object_ref (self->dialog);
+                gtk_container_remove (GTK_CONTAINER (self), GTK_WIDGET (self->dialog));
+                gtk_container_add (GTK_CONTAINER (sw), GTK_WIDGET (self->dialog));
+                gtk_container_add (GTK_CONTAINER (self), sw);
+                g_object_unref (self->dialog);
+        }
+}
+
 static const char *
 cc_sound_panel_get_help_uri (CcPanel *panel)
 {
@@ -83,6 +108,7 @@ cc_sound_panel_class_init (CcSoundPanelClass *klass)
 
         object_class->finalize = cc_sound_panel_finalize;
         object_class->set_property = cc_sound_panel_set_property;
+        object_class->constructed = cc_sound_panel_constructed;
 
         g_object_class_override_property (object_class, PROP_PARAMETERS, "parameters");
 }
diff --git a/panels/universal-access/cc-ua-panel.c b/panels/universal-access/cc-ua-panel.c
index f092855..1cf56fe 100644
--- a/panels/universal-access/cc-ua-panel.c
+++ b/panels/universal-access/cc-ua-panel.c
@@ -97,7 +97,7 @@
 #define GSD_MOUSE_SETTINGS           "org.gnome.settings-daemon.peripherals.mouse"
 #define KEY_DOUBLE_CLICK_DELAY       "double-click"
 
-#define SCROLL_HEIGHT 490
+#define SCROLL_HEIGHT 400
 
 CC_PANEL_REGISTER (CcUaPanel, cc_ua_panel)
 
diff --git a/panels/user-accounts/um-user-panel.c b/panels/user-accounts/um-user-panel.c
index 24d69ae..384084a 100644
--- a/panels/user-accounts/um-user-panel.c
+++ b/panels/user-accounts/um-user-panel.c
@@ -1438,6 +1438,26 @@ cc_user_panel_constructed (GObject *object)
 
         button = get_widget (d, "lock-button");
         gtk_lock_button_set_permission (GTK_LOCK_BUTTON (button), d->permission);
+
+        shell = cc_panel_get_shell (CC_PANEL (object));
+
+        /* Add scrollbars when screen is too small */
+        if (cc_shell_is_small_screen (shell)) {
+                GtkWidget *main_user_vbox, *hbox2, *sw;
+
+                sw = gtk_scrolled_window_new (NULL, NULL);
+                gtk_scrolled_window_set_min_content_width (GTK_SCROLLED_WINDOW (sw), 400);
+                gtk_widget_show (sw);
+
+                main_user_vbox = get_widget (self->priv, "main-user-vbox");
+                hbox2 = get_widget (self->priv, "hbox2");
+
+                g_object_ref (main_user_vbox);
+                gtk_container_remove (GTK_CONTAINER (hbox2), main_user_vbox);
+                gtk_container_add (GTK_CONTAINER (sw), main_user_vbox);
+                gtk_container_add (GTK_CONTAINER (hbox2), sw);
+                g_object_unref (main_user_vbox);
+        }
 }
 
 static void


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