[gnome-control-center/wip/exalm/appearance: 3/7] background: Redo the layout to match the new mockups
- From: Alexander Mikhaylenko <alexm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center/wip/exalm/appearance: 3/7] background: Redo the layout to match the new mockups
- Date: Mon, 20 Dec 2021 17:17:57 +0000 (UTC)
commit 54fe68fce7c6a6347f999ad00604724a94172fba
Author: Alexander Mikhaylenko <alexm gnome org>
Date: Sun Dec 12 21:07:18 2021 +0500
background: Redo the layout to match the new mockups
panels/background/cc-background-chooser.ui | 105 ++++++++--------------
panels/background/cc-background-panel.c | 17 ----
panels/background/cc-background-panel.ui | 134 +++++++++++++++++++++++------
panels/background/cc-background-preview.c | 7 +-
4 files changed, 149 insertions(+), 114 deletions(-)
---
diff --git a/panels/background/cc-background-chooser.ui b/panels/background/cc-background-chooser.ui
index 1609d4cab..204e7176c 100644
--- a/panels/background/cc-background-chooser.ui
+++ b/panels/background/cc-background-chooser.ui
@@ -3,81 +3,52 @@
<template class="CcBackgroundChooser" parent="GtkBox">
<property name="orientation">vertical</property>
+ <!-- Recent -->
<child>
- <object class="GtkSeparator">
- </object>
- </child>
+ <object class="GtkBox" id="recent_box">
+ <property name="orientation">vertical</property>
+ <property name="halign">center</property>
- <child>
- <object class="GtkScrolledWindow">
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="hscrollbar-policy">never</property>
- <property name="vscrollbar-policy">automatic</property>
<child>
- <object class="GtkBox">
- <property name="orientation">vertical</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <style>
- <class name="view" />
- </style>
-
- <!-- Recent -->
- <child>
- <object class="GtkBox" id="recent_box">
- <property name="orientation">vertical</property>
- <property name="halign">center</property>
-
- <child>
- <object class="GtkFlowBox" id="recent_flowbox">
- <property name="margin-start">12</property>
- <property name="margin-end">12</property>
- <property name="margin-top">12</property>
- <property name="margin-bottom">12</property>
- <property name="column-spacing">12</property>
- <property name="row-spacing">12</property>
- <property name="homogeneous">True</property>
- <property name="halign">center</property>
- <property name="min-children-per-line">1</property>
- <property name="max-children-per-line">8</property>
- <property name="activate-on-single-click">True</property>
- <property name="selection-mode">single</property>
- <signal name="child-activated" handler="on_item_activated_cb"
object="CcBackgroundChooser" swapped="no" />
- </object>
- </child>
-
- <child>
- <object class="GtkSeparator">
- <property name="margin-top">12</property>
- <property name="margin-bottom">12</property>
- </object>
- </child>
-
- </object>
- </child>
+ <object class="GtkFlowBox" id="recent_flowbox">
+ <property name="margin-top">12</property>
+ <property name="margin-bottom">12</property>
+ <property name="column-spacing">12</property>
+ <property name="row-spacing">12</property>
+ <property name="homogeneous">True</property>
+ <property name="halign">center</property>
+ <property name="min-children-per-line">1</property>
+ <property name="max-children-per-line">8</property>
+ <property name="activate-on-single-click">True</property>
+ <property name="selection-mode">single</property>
+ <signal name="child-activated" handler="on_item_activated_cb" object="CcBackgroundChooser"
swapped="no" />
+ </object>
+ </child>
- <child>
- <object class="GtkFlowBox" id="flowbox">
- <property name="margin-start">12</property>
- <property name="margin-end">12</property>
- <property name="margin-top">12</property>
- <property name="margin-bottom">12</property>
- <property name="column-spacing">12</property>
- <property name="row-spacing">12</property>
- <property name="homogeneous">True</property>
- <property name="halign">center</property>
- <property name="min-children-per-line">1</property>
- <property name="max-children-per-line">8</property>
- <property name="activate-on-single-click">True</property>
- <property name="selection-mode">single</property>
- <signal name="child-activated" handler="on_item_activated_cb" object="CcBackgroundChooser"
swapped="no" />
- </object>
- </child>
+ <child>
+ <object class="GtkSeparator">
+ <property name="margin-top">12</property>
+ <property name="margin-bottom">12</property>
</object>
</child>
</object>
</child>
+ <child>
+ <object class="GtkFlowBox" id="flowbox">
+ <property name="margin-top">12</property>
+ <property name="margin-bottom">12</property>
+ <property name="column-spacing">12</property>
+ <property name="row-spacing">12</property>
+ <property name="homogeneous">True</property>
+ <property name="halign">center</property>
+ <property name="min-children-per-line">1</property>
+ <property name="max-children-per-line">8</property>
+ <property name="activate-on-single-click">True</property>
+ <property name="selection-mode">single</property>
+ <signal name="child-activated" handler="on_item_activated_cb" object="CcBackgroundChooser"
swapped="no" />
+ </object>
+ </child>
+
</template>
</interface>
diff --git a/panels/background/cc-background-panel.c b/panels/background/cc-background-panel.c
index 3e50f506b..efeb7fea0 100644
--- a/panels/background/cc-background-panel.c
+++ b/panels/background/cc-background-panel.c
@@ -57,7 +57,6 @@ struct _CcBackgroundPanel
CcBackgroundItem *current_background;
CcBackgroundChooser *background_chooser;
- GtkButton *add_picture_button;
CcBackgroundPreview *desktop_preview;
};
@@ -217,20 +216,6 @@ cc_background_panel_get_help_uri (CcPanel *panel)
return "help:gnome-help/look-background";
}
-static void
-cc_background_panel_constructed (GObject *object)
-{
- CcBackgroundPanel *self;
- CcShell *shell;
-
- self = CC_BACKGROUND_PANEL (object);
- shell = cc_panel_get_shell (CC_PANEL (self));
-
- cc_shell_embed_widget_in_header (shell, GTK_WIDGET (self->add_picture_button), GTK_POS_RIGHT);
-
- G_OBJECT_CLASS (cc_background_panel_parent_class)->constructed (object);
-}
-
static void
cc_background_panel_dispose (GObject *object)
{
@@ -265,13 +250,11 @@ cc_background_panel_class_init (CcBackgroundPanelClass *klass)
panel_class->get_help_uri = cc_background_panel_get_help_uri;
- object_class->constructed = cc_background_panel_constructed;
object_class->dispose = cc_background_panel_dispose;
object_class->finalize = cc_background_panel_finalize;
gtk_widget_class_set_template_from_resource (widget_class,
"/org/gnome/control-center/background/cc-background-panel.ui");
- gtk_widget_class_bind_template_child (widget_class, CcBackgroundPanel, add_picture_button);
gtk_widget_class_bind_template_child (widget_class, CcBackgroundPanel, background_chooser);
gtk_widget_class_bind_template_child (widget_class, CcBackgroundPanel, desktop_preview);
diff --git a/panels/background/cc-background-panel.ui b/panels/background/cc-background-panel.ui
index 392decb12..6d50deb62 100644
--- a/panels/background/cc-background-panel.ui
+++ b/panels/background/cc-background-panel.ui
@@ -3,46 +3,124 @@
<!-- interface-requires gtk+ 3.0 -->
<template class="CcBackgroundPanel" parent="CcPanel">
<child>
- <object class="GtkBox">
- <property name="orientation">vertical</property>
+ <object class="GtkScrolledWindow">
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="hscrollbar-policy">never</property>
<child>
- <object class="AdwClamp">
- <property name="visible">1</property>
- <property name="maximum_size">300</property>
- <property name="tightening_threshold">200</property>
+ <object class="GtkViewport">
+ <property name="scroll-to-focus">True</property>
+
<child>
- <object class="GtkBox">
- <property name="spacing">24</property>
- <property name="margin-start">12</property>
- <property name="margin-end">12</property>
- <property name="margin-top">18</property>
- <property name="margin-bottom">18</property>
- <property name="hexpand">True</property>
+ <object class="AdwClamp">
+
<child>
- <object class="CcBackgroundPreview" id="desktop_preview">
- <property name="valign">center</property>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">24</property>
+ <property name="margin-top">24</property>
+ <property name="margin-bottom">24</property>
+ <property name="margin-start">12</property>
+ <property name="margin-end">12</property>
+
+ <child>
+ <object class="AdwPreferencesGroup">
+
+ <child>
+ <object class="AdwPreferencesRow">
+ <property name="activatable">False</property>
+ <child>
+ <object class="AdwClamp">
+ <property name="visible">1</property>
+ <property name="maximum_size">300</property>
+ <property name="tightening_threshold">200</property>
+ <child>
+ <object class="GtkBox">
+ <property name="spacing">24</property>
+ <property name="margin-start">12</property>
+ <property name="margin-end">12</property>
+ <property name="margin-top">18</property>
+ <property name="margin-bottom">18</property>
+ <property name="hexpand">True</property>
+ <child>
+ <object class="CcBackgroundPreview" id="desktop_preview">
+ <property name="valign">center</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+
+ </object>
+ </child>
+
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkBox">
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="yes">Background</property>
+ <property name="hexpand">True</property>
+ <property name="xalign">0</property>
+ <property name="ellipsize">end</property>
+ <style>
+ <class name="heading"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton">
+ <child>
+ <object class="AdwButtonContent">
+ <property name="icon-name">list-add-symbolic</property>
+ <property name="label" translatable="yes">Add Picture…</property>
+ </object>
+ </child>
+ <signal name="clicked" handler="on_add_picture_button_clicked_cb"
object="CcBackgroundPanel" swapped="yes" />
+ <style>
+ <class name="flat"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ </child>
+
+ <child>
+ <object class="AdwBin">
+ <style>
+ <class name="card"/>
+ </style>
+ <child>
+ <object class="CcBackgroundChooser" id="background_chooser">
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <signal name="background-chosen" handler="on_chooser_background_chosen_cb"
object="CcBackgroundPanel" swapped="yes" />
+ </object>
+ </child>
+ </object>
+ </child>
+
+ </object>
+ </child>
+
</object>
</child>
+
</object>
</child>
- </object>
- </child>
- <child>
- <object class="CcBackgroundChooser" id="background_chooser">
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <signal name="background-chosen" handler="on_chooser_background_chosen_cb"
object="CcBackgroundPanel" swapped="yes" />
</object>
</child>
+
</object>
</child>
</template>
-
- <!-- Header button -->
- <object class="GtkButton" id="add_picture_button">
- <property name="label" translatable="yes">Add Picture…</property>
- <signal name="clicked" handler="on_add_picture_button_clicked_cb" object="CcBackgroundPanel"
swapped="yes" />
- </object>
</interface>
diff --git a/panels/background/cc-background-preview.c b/panels/background/cc-background-preview.c
index 6e5052c0e..b9985db5b 100644
--- a/panels/background/cc-background-preview.c
+++ b/panels/background/cc-background-preview.c
@@ -315,8 +315,6 @@ cc_background_preview_measure (GtkWidget *widget,
&child_nat,
NULL, NULL);
- *minimum = child_min;
-
if (orientation == GTK_ORIENTATION_HORIZONTAL)
*natural = width;
else if (for_size < 0)
@@ -325,6 +323,11 @@ cc_background_preview_measure (GtkWidget *widget,
*natural = floor ((double) MIN (for_size, width) / width * height);
*natural = MAX (*natural, child_nat);
+
+ if (orientation == GTK_ORIENTATION_VERTICAL)
+ *minimum = *natural;
+ else
+ *minimum = 0;
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]