[gnome-control-center/wip/background-new-ui] background: implement new UI design from Jakub Steiner
- From: Thomas Wood <thos src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center/wip/background-new-ui] background: implement new UI design from Jakub Steiner
- Date: Sun, 22 Aug 2010 21:47:55 +0000 (UTC)
commit 1702af9e0a3a1a6a74d4105ba082d4c7bf113eff
Author: Thomas Wood <thos gnome org>
Date: Sun Aug 22 19:58:29 2010 +0100
background: implement new UI design from Jakub Steiner
panels/background/Makefile.am | 4 +-
panels/background/background.ui | 88 +++++++++++++------------------
panels/background/cc-background-panel.c | 67 ++++++++++++++++++-----
panels/background/gloss.png | Bin 0 -> 5854 bytes
panels/background/video-display.png | Bin 0 -> 24708 bytes
5 files changed, 92 insertions(+), 67 deletions(-)
---
diff --git a/panels/background/Makefile.am b/panels/background/Makefile.am
index 82d3c07..80444a5 100644
--- a/panels/background/Makefile.am
+++ b/panels/background/Makefile.am
@@ -3,7 +3,9 @@ cappletname = background
uidir = $(pkgdatadir)/ui/background
dist_ui_DATA = \
- background.ui
+ background.ui \
+ video-display.png \
+ gloss.png
INCLUDES = \
diff --git a/panels/background/background.ui b/panels/background/background.ui
index 85a575c..ebd978a 100644
--- a/panels/background/background.ui
+++ b/panels/background/background.ui
@@ -58,52 +58,33 @@
<column type="gpointer"/>
</columns>
</object>
- <object class="GtkVBox" id="background-panel">
+ <object class="GtkHBox" id="background-panel">
<property name="visible">True</property>
- <property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
- <object class="GtkHBox" id="pictures-vbox">
+ <object class="GtkVBox" id="vbox2">
<property name="visible">True</property>
- <property name="spacing">12</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
<child>
- <object class="GtkScrolledWindow" id="scrolledwindow1">
- <property name="width_request">150</property>
+ <object class="GtkComboBox" id="sources-combobox">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">automatic</property>
- <property name="vscrollbar_policy">automatic</property>
- <property name="shadow_type">in</property>
+ <property name="model">sources-liststore</property>
+ <property name="active">0</property>
<child>
- <object class="GtkTreeView" id="sources-treeview">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="model">sources-liststore</property>
- <property name="headers_visible">False</property>
- <property name="headers_clickable">False</property>
- <property name="search_column">0</property>
- <child>
- <object class="GtkTreeViewColumn" id="treeviewcolumn1">
- <property name="title">Sources</property>
- <child>
- <object class="GtkCellRendererText" id="cellrenderertext2"/>
- <attributes>
- <attribute name="text">0</attribute>
- </attributes>
- </child>
- </object>
- </child>
- </object>
+ <object class="GtkCellRendererText" id="cellrenderertext2"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
</child>
</object>
<packing>
- <property name="expand">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow" id="scrolledwindow2">
- <property name="width_request">400</property>
+ <property name="width_request">300</property>
<property name="height_request">300</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -132,29 +113,25 @@
</child>
</object>
<packing>
+ <property name="expand">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkHBox" id="details-box">
- <property name="width_request">175</property>
+ <object class="GtkVBox" id="vbox3">
<property name="visible">True</property>
- <property name="spacing">12</property>
+ <property name="orientation">vertical</property>
<child>
<object class="GtkDrawingArea" id="preview-area">
- <property name="width_request">200</property>
<property name="visible">True</property>
</object>
<packing>
- <property name="expand">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkVBox" id="vbox1">
+ <object class="GtkHBox" id="hbox1">
<property name="visible">True</property>
- <property name="orientation">vertical</property>
- <property name="spacing">12</property>
<child>
<object class="GtkLabel" id="background-label">
<property name="visible">True</property>
@@ -169,6 +146,18 @@
<property name="visible">True</property>
<property name="spacing">12</property>
<child>
+ <object class="GtkColorButton" id="style-color">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="color">#000000000000</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
<object class="GtkComboBox" id="style-combobox">
<property name="visible">True</property>
<property name="model">style-liststore</property>
@@ -182,18 +171,6 @@
</object>
<packing>
<property name="expand">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkColorButton" id="style-color">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="color">#000000000000</property>
- </object>
- <packing>
- <property name="expand">False</property>
<property name="position">1</property>
</packing>
</child>
@@ -205,14 +182,21 @@
</child>
</object>
<packing>
+ <property name="expand">False</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
- <property name="expand">False</property>
<property name="position">1</property>
</packing>
</child>
</object>
+ <object class="GtkSizeGroup" id="sizegroup">
+ <property name="mode">vertical</property>
+ <widgets>
+ <widget name="background-label"/>
+ <widget name="edit-hbox"/>
+ </widgets>
+ </object>
</interface>
diff --git a/panels/background/cc-background-panel.c b/panels/background/cc-background-panel.c
index 99ffc1a..e752771 100644
--- a/panels/background/cc-background-panel.c
+++ b/panels/background/cc-background-panel.c
@@ -63,6 +63,9 @@ struct _CcBackgroundPanelPrivate
GCancellable *copy_cancellable;
GtkWidget *spinner;
+
+ GdkPixbuf *screen;
+ GdkPixbuf *gloss;
};
enum
@@ -164,6 +167,18 @@ cc_background_panel_dispose (GObject *object)
priv->thumb_factory = NULL;
}
+ if (priv->screen)
+ {
+ g_object_unref (priv->screen);
+ priv->screen = NULL;
+ }
+
+ if (priv->gloss)
+ {
+ g_object_unref (priv->gloss);
+ priv->gloss = NULL;
+ }
+
G_OBJECT_CLASS (cc_background_panel_parent_class)->dispose (object);
}
@@ -201,7 +216,7 @@ cc_background_panel_class_finalize (CcBackgroundPanelClass *klass)
}
static void
-source_changed_cb (GtkTreeSelection *selection,
+source_changed_cb (GtkComboBox *combo,
CcBackgroundPanelPrivate *priv)
{
GtkTreeIter iter;
@@ -210,7 +225,8 @@ source_changed_cb (GtkTreeSelection *selection,
guint type;
BgSource *source;
- gtk_tree_selection_get_selected (selection, &model, &iter);
+ gtk_combo_box_get_active_iter (combo, &iter);
+ model = gtk_combo_box_get_model (combo);
gtk_tree_model_get (model, &iter,
1, &type,
3, &source, -1);
@@ -315,7 +331,6 @@ backgrounds_changed_cb (GtkIconView *icon_view,
GConfChangeSet *cs;
gchar *pcolor, *scolor;
CcBackgroundPanelPrivate *priv = panel->priv;
- GtkTreeSelection *selection;
list = gtk_icon_view_get_selected_items (icon_view);
@@ -324,9 +339,9 @@ backgrounds_changed_cb (GtkIconView *icon_view,
/* check if the current source is read only, i.e. the image placement and
* color is predefined */
- selection = gtk_tree_view_get_selection (WID ("sources-treeview"));
- model = gtk_tree_view_get_model (WID ("sources-treeview"));
- gtk_tree_selection_get_selected (selection, &model, &iter);
+ model = gtk_combo_box_get_model (GTK_COMBO_BOX (WID ("sources-combobox")));
+ gtk_combo_box_get_active_iter (GTK_COMBO_BOX (WID ("sources-combobox")),
+ &iter);
gtk_tree_model_get (model, &iter, 2, &priv->current_source_readonly, -1);
@@ -455,28 +470,52 @@ preview_expose_cb (GtkWidget *widget,
GtkAllocation allocation;
CcBackgroundPanelPrivate *priv = panel->priv;
GdkPixbuf *pixbuf = NULL;
+ gint offset_x;
+ gint offset_y;
+ const gint preview_width = 208;
+ const gint preview_height = 124;
+ const gint preview_x = 24;
+ const gint preview_y = 44;
cr = gdk_cairo_create (gtk_widget_get_window (widget));
gtk_widget_get_allocation (widget, &allocation);
+ offset_x = (allocation.width / 2) - (256 / 2);
+ offset_y = (allocation.height / 2) - (256 / 2);
+
if (priv->current_background)
{
pixbuf = gnome_wp_item_get_thumbnail (priv->current_background,
priv->thumb_factory,
- allocation.width,
- allocation.height);
+ preview_width,
+ preview_height);
+ }
+
+ if (priv->screen)
+ {
+ gdk_cairo_set_source_pixbuf (cr, priv->screen, offset_x, offset_y);
+ cairo_paint (cr);
}
if (pixbuf)
{
- gdk_cairo_set_source_pixbuf (cr, pixbuf, 0, 0);
+ gdk_cairo_set_source_pixbuf (cr, pixbuf, offset_x + preview_x,
+ offset_y + preview_y);
cairo_paint (cr);
g_object_unref (pixbuf);
}
+
+ if (priv->gloss)
+ {
+ gdk_cairo_set_source_pixbuf (cr, priv->gloss, offset_x + preview_x,
+ offset_y + preview_y);
+ cairo_paint (cr);
+ }
+
cairo_destroy (cr);
return TRUE;
@@ -542,10 +581,9 @@ cc_background_panel_init (CcBackgroundPanel *self)
{
CcBackgroundPanelPrivate *priv;
gchar *objects[] = { "backgrounds-liststore", "style-liststore",
- "sources-liststore", "background-panel", NULL };
+ "sources-liststore", "background-panel", "sizegroup", NULL };
GError *err = NULL;
GtkWidget *widget;
- GtkTreeSelection *selection;
gint width, height;
GtkListStore *store;
gchar *filename;
@@ -613,9 +651,8 @@ cc_background_panel_init (CcBackgroundPanel *self)
gtk_widget_show_all (GTK_WIDGET (self));
/* connect to source change signal */
- widget = WID ("sources-treeview");
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget));
- g_signal_connect (selection, "changed", G_CALLBACK (source_changed_cb), priv);
+ widget = WID ("sources-combobox");
+ g_signal_connect (widget, "changed", G_CALLBACK (source_changed_cb), priv);
/* connect to the background iconview change signal */
widget = WID ("backgrounds-iconview");
@@ -628,6 +665,8 @@ cc_background_panel_init (CcBackgroundPanel *self)
g_signal_connect (widget, "expose-event", G_CALLBACK (preview_expose_cb),
self);
+ priv->screen = gdk_pixbuf_new_from_file (DATADIR "/video-display.png", NULL);
+ priv->gloss = gdk_pixbuf_new_from_file (DATADIR "/gloss.png", NULL);
width = 150;
height = width * ((double) gdk_screen_get_height (gdk_screen_get_default ()) /
diff --git a/panels/background/gloss.png b/panels/background/gloss.png
new file mode 100644
index 0000000..f30f6d2
Binary files /dev/null and b/panels/background/gloss.png differ
diff --git a/panels/background/video-display.png b/panels/background/video-display.png
new file mode 100644
index 0000000..08d72dc
Binary files /dev/null and b/panels/background/video-display.png differ
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]