summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lumens <clumens@redhat.com>2012-12-11 17:07:04 -0500
committerChris Lumens <clumens@redhat.com>2012-12-12 10:14:50 -0500
commit801fe3e280e170c90f0c8f2bf4f7cfeea4d52160 (patch)
tree1a6aada1f4dc883d4bdac3156a34e89ab6f6011b
parent7c75486cb60b1c766b15b0ad8dc0708999e6baf2 (diff)
downloadanaconda-801fe3e280e170c90f0c8f2bf4f7cfeea4d52160.tar.gz
anaconda-801fe3e280e170c90f0c8f2bf4f7cfeea4d52160.tar.xz
anaconda-801fe3e280e170c90f0c8f2bf4f7cfeea4d52160.zip
Add a gradient background to spoke headers (mizmo, clumens).
The idea here is that by adding a gradient up top, the "Done" button looks more like it belongs with the header than with the widgets down in the spoke. It also subtly makes the spoke look like a subpart of the hub. Adding this required adding an additional internal widget, which means also changing all existing glade files to include this internal widget. Make sure to build new glade support and install locally (or use the proper makefile targets) before editing.
-rw-r--r--data/pixmaps/anaconda_spoke_header.pngbin0 -> 185 bytes
-rw-r--r--pyanaconda/ui/gui/hubs/progress.glade14
-rw-r--r--pyanaconda/ui/gui/hubs/summary.glade14
-rw-r--r--pyanaconda/ui/gui/spokes/custom.glade28
-rw-r--r--pyanaconda/ui/gui/spokes/datetime_spoke.glade20
-rw-r--r--pyanaconda/ui/gui/spokes/keyboard.glade10
-rw-r--r--pyanaconda/ui/gui/spokes/network.glade30
-rw-r--r--pyanaconda/ui/gui/spokes/password.glade16
-rw-r--r--pyanaconda/ui/gui/spokes/software.glade10
-rw-r--r--pyanaconda/ui/gui/spokes/source.glade10
-rw-r--r--pyanaconda/ui/gui/spokes/storage.glade10
-rw-r--r--pyanaconda/ui/gui/spokes/welcome.glade44
-rwxr-xr-xscripts/makeupdates2
-rw-r--r--widgets/glade/AnacondaWidgets.xml12
-rw-r--r--widgets/src/BaseWindow.c26
-rw-r--r--widgets/src/BaseWindow.h1
-rw-r--r--widgets/src/SpokeWindow.c35
17 files changed, 199 insertions, 83 deletions
diff --git a/data/pixmaps/anaconda_spoke_header.png b/data/pixmaps/anaconda_spoke_header.png
new file mode 100644
index 000000000..f1feefc06
--- /dev/null
+++ b/data/pixmaps/anaconda_spoke_header.png
Binary files differ
diff --git a/pyanaconda/ui/gui/hubs/progress.glade b/pyanaconda/ui/gui/hubs/progress.glade
index 37bd0bb39..11e29f550 100644
--- a/pyanaconda/ui/gui/hubs/progress.glade
+++ b/pyanaconda/ui/gui/hubs/progress.glade
@@ -11,11 +11,15 @@
<object class="GtkBox" id="AnacondaHubWindow-main_box1">
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
- <child internal-child="nav_area">
- <object class="GtkGrid" id="AnacondaHubWindow-nav_area1">
- <property name="can_focus">False</property>
- <child>
- <placeholder/>
+ <child internal-child="nav_box">
+ <object class="GtkEventBox" id="AnacondaHubWindow-nav_box1">
+ <child internal-child="nav_area">
+ <object class="GtkGrid" id="AnacondaHubWindow-nav_area1">
+ <property name="can_focus">False</property>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
</child>
</object>
<packing>
diff --git a/pyanaconda/ui/gui/hubs/summary.glade b/pyanaconda/ui/gui/hubs/summary.glade
index 2fd406563..36b7aef34 100644
--- a/pyanaconda/ui/gui/hubs/summary.glade
+++ b/pyanaconda/ui/gui/hubs/summary.glade
@@ -13,11 +13,15 @@
<object class="GtkBox" id="AnacondaHubWindow-main_box1">
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
- <child internal-child="nav_area">
- <object class="GtkGrid" id="AnacondaHubWindow-nav_area1">
- <property name="can_focus">False</property>
- <child>
- <placeholder/>
+ <child internal-child="nav_box">
+ <object class="GtkEventBox" id="AnacondaHubWindow-nav_box1">
+ <child internal-child="nav_area">
+ <object class="GtkGrid" id="AnacondaHubWindow-nav_area1">
+ <property name="can_focus">False</property>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
</child>
</object>
<packing>
diff --git a/pyanaconda/ui/gui/spokes/custom.glade b/pyanaconda/ui/gui/spokes/custom.glade
index 67f41e5e6..9bf53d5da 100644
--- a/pyanaconda/ui/gui/spokes/custom.glade
+++ b/pyanaconda/ui/gui/spokes/custom.glade
@@ -326,18 +326,22 @@ use. Try something else?</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
- <child internal-child="nav_area">
- <object class="GtkGrid" id="AnacondaSpokeWindow-nav_area1">
- <property name="can_focus">False</property>
- <property name="margin_left">6</property>
- <property name="margin_right">6</property>
- <property name="margin_top">6</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
+ <child internal-child="nav_box">
+ <object class="GtkEventBox" id="AnacondaSpokeWindow-nav_box1">
+ <child internal-child="nav_area">
+ <object class="GtkGrid" id="AnacondaSpokeWindow-nav_area1">
+ <property name="can_focus">False</property>
+ <property name="margin_left">6</property>
+ <property name="margin_right">6</property>
+ <property name="margin_top">6</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
</child>
<child internal-child="alignment">
<object class="GtkAlignment" id="AnacondaSpokeWindow-alignment1">
diff --git a/pyanaconda/ui/gui/spokes/datetime_spoke.glade b/pyanaconda/ui/gui/spokes/datetime_spoke.glade
index ecff05120..d30264518 100644
--- a/pyanaconda/ui/gui/spokes/datetime_spoke.glade
+++ b/pyanaconda/ui/gui/spokes/datetime_spoke.glade
@@ -35,14 +35,18 @@
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
- <child internal-child="nav_area">
- <object class="GtkGrid" id="AnacondaSpokeWindow-nav_area1">
- <property name="can_focus">False</property>
- <property name="margin_left">6</property>
- <property name="margin_right">6</property>
- <property name="margin_top">6</property>
- <property name="n_rows">2</property>
- <property name="n_columns">2</property>
+ <child internal-child="nav_box">
+ <object class="GtkEventBox" id="AnacondaSpokeWindow-nav_box1">
+ <child internal-child="nav_area">
+ <object class="GtkGrid" id="AnacondaSpokeWindow-nav_area1">
+ <property name="can_focus">False</property>
+ <property name="margin_left">6</property>
+ <property name="margin_right">6</property>
+ <property name="margin_top">6</property>
+ <property name="n_rows">2</property>
+ <property name="n_columns">2</property>
+ </object>
+ </child>
</object>
<packing>
<property name="expand">False</property>
diff --git a/pyanaconda/ui/gui/spokes/keyboard.glade b/pyanaconda/ui/gui/spokes/keyboard.glade
index 9ca9aaf5e..6f63d8dbb 100644
--- a/pyanaconda/ui/gui/spokes/keyboard.glade
+++ b/pyanaconda/ui/gui/spokes/keyboard.glade
@@ -185,9 +185,13 @@
<object class="GtkBox" id="AnacondaSpokeWindow-main_box1">
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
- <child internal-child="nav_area">
- <object class="GtkGrid" id="AnacondaSpokeWindow-nav_area1">
- <property name="can_focus">False</property>
+ <child internal-child="nav_box">
+ <object class="GtkEventBox" id="AnacondaSpokeWindow-nav_box1">
+ <child internal-child="nav_area">
+ <object class="GtkGrid" id="AnacondaSpokeWindow-nav_area1">
+ <property name="can_focus">False</property>
+ </object>
+ </child>
</object>
<packing>
<property name="expand">False</property>
diff --git a/pyanaconda/ui/gui/spokes/network.glade b/pyanaconda/ui/gui/spokes/network.glade
index 27afea80a..5fc0613e1 100644
--- a/pyanaconda/ui/gui/spokes/network.glade
+++ b/pyanaconda/ui/gui/spokes/network.glade
@@ -41,14 +41,18 @@
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
- <child internal-child="nav_area">
- <object class="GtkGrid" id="AnacondaStandaloneWindow-nav_area5">
- <property name="can_focus">False</property>
- <property name="margin_left">6</property>
- <property name="margin_right">6</property>
- <property name="margin_top">6</property>
- <child>
- <placeholder/>
+ <child internal-child="nav_box">
+ <object class="GtkEventBox" id="AnacondaStandaloneWindow-nav_box5">
+ <child internal-child="nav_area">
+ <object class="GtkGrid" id="AnacondaStandaloneWindow-nav_area5">
+ <property name="can_focus">False</property>
+ <property name="margin_left">6</property>
+ <property name="margin_right">6</property>
+ <property name="margin_top">6</property>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
</child>
</object>
<packing>
@@ -109,9 +113,13 @@ updates available for you.</property>
<object class="GtkBox" id="AnacondaSpokeWindow-main_box1">
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
- <child internal-child="nav_area">
- <object class="GtkGrid" id="AnacondaSpokeWindow-nav_area1">
- <property name="can_focus">False</property>
+ <child internal-child="nav_box">
+ <object class="GtkEventBox" id="AnacondaSpokeWindow-nav_box1">
+ <child internal-child="nav_area">
+ <object class="GtkGrid" id="AnacondaSpokeWindow-nav_area1">
+ <property name="can_focus">False</property>
+ </object>
+ </child>
</object>
<packing>
<property name="expand">False</property>
diff --git a/pyanaconda/ui/gui/spokes/password.glade b/pyanaconda/ui/gui/spokes/password.glade
index 31f07406b..043f0ada1 100644
--- a/pyanaconda/ui/gui/spokes/password.glade
+++ b/pyanaconda/ui/gui/spokes/password.glade
@@ -13,12 +13,16 @@
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
- <child internal-child="nav_area">
- <object class="GtkGrid" id="AnacondaSpokeWindow-nav_area1">
- <property name="can_focus">False</property>
- <property name="margin_left">6</property>
- <property name="margin_right">6</property>
- <property name="margin_top">6</property>
+ <child internal-child="nav_box">
+ <object class="GtkEventBox" id="AnacondaSpokeWindow-nav_box1">
+ <child internal-child="nav_area">
+ <object class="GtkGrid" id="AnacondaSpokeWindow-nav_area1">
+ <property name="can_focus">False</property>
+ <property name="margin_left">6</property>
+ <property name="margin_right">6</property>
+ <property name="margin_top">6</property>
+ </object>
+ </child>
</object>
<packing>
<property name="expand">False</property>
diff --git a/pyanaconda/ui/gui/spokes/software.glade b/pyanaconda/ui/gui/spokes/software.glade
index 4f049fb8b..676c14d77 100644
--- a/pyanaconda/ui/gui/spokes/software.glade
+++ b/pyanaconda/ui/gui/spokes/software.glade
@@ -37,9 +37,13 @@
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
- <child internal-child="nav_area">
- <object class="GtkGrid" id="AnacondaSpokeWindow-nav_area1">
- <property name="can_focus">False</property>
+ <child internal-child="nav_box">
+ <object class="GtkEventBox" id="AnacondaSpokeWindow-nav_box1">
+ <child internal-child="nav_area">
+ <object class="GtkGrid" id="AnacondaSpokeWindow-nav_area1">
+ <property name="can_focus">False</property>
+ </object>
+ </child>
</object>
<packing>
<property name="expand">False</property>
diff --git a/pyanaconda/ui/gui/spokes/source.glade b/pyanaconda/ui/gui/spokes/source.glade
index f80f2f8a5..07fc23d5c 100644
--- a/pyanaconda/ui/gui/spokes/source.glade
+++ b/pyanaconda/ui/gui/spokes/source.glade
@@ -830,9 +830,13 @@ TeXlive 2012 repository</col>
<object class="GtkBox" id="AnacondaSpokeWindow-main_box1">
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
- <child internal-child="nav_area">
- <object class="GtkGrid" id="AnacondaSpokeWindow-nav_area1">
- <property name="can_focus">False</property>
+ <child internal-child="nav_box">
+ <object class="GtkEventBox" id="AnacondaSpokeWindow-nav_box1">
+ <child internal-child="nav_area">
+ <object class="GtkGrid" id="AnacondaSpokeWindow-nav_area1">
+ <property name="can_focus">False</property>
+ </object>
+ </child>
</object>
<packing>
<property name="expand">False</property>
diff --git a/pyanaconda/ui/gui/spokes/storage.glade b/pyanaconda/ui/gui/spokes/storage.glade
index 68461f76c..8d7c47081 100644
--- a/pyanaconda/ui/gui/spokes/storage.glade
+++ b/pyanaconda/ui/gui/spokes/storage.glade
@@ -851,9 +851,13 @@
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
- <child internal-child="nav_area">
- <object class="GtkGrid" id="AnacondaSpokeWindow-nav_area1">
- <property name="can_focus">False</property>
+ <child internal-child="nav_box">
+ <object class="GtkEventBox" id="AnacondaSpokeWindow-nav_box1">
+ <child internal-child="nav_area">
+ <object class="GtkGrid" id="AnacondaSpokeWindow-nav_area1">
+ <property name="can_focus">False</property>
+ </object>
+ </child>
</object>
<packing>
<property name="expand">False</property>
diff --git a/pyanaconda/ui/gui/spokes/welcome.glade b/pyanaconda/ui/gui/spokes/welcome.glade
index 3a3135b2e..a10c136d2 100644
--- a/pyanaconda/ui/gui/spokes/welcome.glade
+++ b/pyanaconda/ui/gui/spokes/welcome.glade
@@ -136,12 +136,16 @@
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
- <child internal-child="nav_area">
- <object class="GtkGrid" id="AnacondaSpokeWindow-nav_area1">
- <property name="can_focus">False</property>
- <property name="margin_left">6</property>
- <property name="margin_right">6</property>
- <property name="margin_top">6</property>
+ <child internal-child="nav_box">
+ <object class="GtkEventBox" id="AnacondaSpokeWindow-nav_box1">
+ <child internal-child="nav_area">
+ <object class="GtkGrid" id="AnacondaSpokeWindow-nav_area1">
+ <property name="can_focus">False</property>
+ <property name="margin_left">6</property>
+ <property name="margin_right">6</property>
+ <property name="margin_top">6</property>
+ </object>
+ </child>
</object>
<packing>
<property name="expand">False</property>
@@ -205,18 +209,22 @@
<object class="GtkBox" id="AnacondaStandaloneWindow-main_box1">
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
- <child internal-child="nav_area">
- <object class="GtkGrid" id="AnacondaStandaloneWindow-nav_area1">
- <property name="can_focus">False</property>
- <child>
- <placeholder/>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
+ <child internal-child="nav_box">
+ <object class="GtkEventBox" id="AnacondaStandaloneWindow-nav_box1">
+ <child internal-child="nav_area">
+ <object class="GtkGrid" id="AnacondaStandaloneWindow-nav_area1">
+ <property name="can_focus">False</property>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
</child>
<child internal-child="alignment">
<object class="GtkAlignment" id="AnacondaStandaloneWindow-alignment1">
diff --git a/scripts/makeupdates b/scripts/makeupdates
index 1c482a4f0..c69cd0a22 100755
--- a/scripts/makeupdates
+++ b/scripts/makeupdates
@@ -165,6 +165,8 @@ def copyUpdatedFiles(tag, updates, cwd):
install_to_dir(file, "usr/sbin")
elif file == "data/70-anaconda.rules":
install_to_dir(file, "lib/udev/rules.d")
+ elif file.startswith("data/pixmaps"):
+ install_to_dir(file, "usr/share/anaconda/pixmaps")
elif file.startswith("data/ui/"):
install_to_dir(file, "usr/share/anaconda/ui")
elif file.startswith("data/post-scripts/"):
diff --git a/widgets/glade/AnacondaWidgets.xml b/widgets/glade/AnacondaWidgets.xml
index e0074cfba..1ede27520 100644
--- a/widgets/glade/AnacondaWidgets.xml
+++ b/widgets/glade/AnacondaWidgets.xml
@@ -38,7 +38,9 @@
<internal-children>
<object name="main_box">
- <object name="nav_area" />
+ <object name="nav_box">
+ <object name="nav_area" />
+ </object>
<object name="alignment">
<object name="action_area" />
</object>
@@ -58,7 +60,9 @@
<internal-children>
<object name="main_box">
- <object name="nav_area" />
+ <object name="nav_box">
+ <object name="nav_area" />
+ </object>
<object name="alignment">
<object name="action_area">
<object name="scrolled_window" />
@@ -80,7 +84,9 @@
<internal-children>
<object name="main_box">
- <object name="nav_area" />
+ <object name="nav_box">
+ <object name="nav_area" />
+ </object>
<object name="alignment">
<object name="action_area" />
</object>
diff --git a/widgets/src/BaseWindow.c b/widgets/src/BaseWindow.c
index 510572249..23b9998e1 100644
--- a/widgets/src/BaseWindow.c
+++ b/widgets/src/BaseWindow.c
@@ -90,7 +90,7 @@ struct _AnacondaBaseWindowPrivate {
gboolean is_beta, info_shown;
GtkWidget *main_box, *event_box, *info_bar;
GtkWidget *alignment;
- GtkWidget *nav_area, *action_area;
+ GtkWidget *nav_box, *nav_area, *action_area;
GtkWidget *name_label, *distro_label, *beta_label;
/* Untranslated versions of various things. */
@@ -209,13 +209,19 @@ static void anaconda_base_window_init(AnacondaBaseWindow *win) {
/* Then the navigation area that sits as the first item in the main box
* for every Window class.
*/
+
+ win->priv->nav_box = gtk_event_box_new();
+ gtk_widget_set_app_paintable(win->priv->nav_box, TRUE);
+ gtk_box_pack_start(GTK_BOX(win->priv->main_box), win->priv->nav_box, FALSE, FALSE, 0);
+
win->priv->nav_area = gtk_grid_new();
gtk_grid_set_row_homogeneous(GTK_GRID(win->priv->nav_area), FALSE);
gtk_grid_set_column_homogeneous(GTK_GRID(win->priv->nav_area), FALSE);
gtk_widget_set_margin_left(win->priv->nav_area, 6);
gtk_widget_set_margin_right(win->priv->nav_area, 6);
gtk_widget_set_margin_top(win->priv->nav_area, 6);
- gtk_box_pack_start(GTK_BOX(win->priv->main_box), win->priv->nav_area, FALSE, FALSE, 0);
+
+ gtk_container_add(GTK_CONTAINER(win->priv->nav_box), win->priv->nav_area);
/* Second in the main box is an alignment, because we want to be able
* to control the amount of space the Window's content takes up on the
@@ -375,6 +381,20 @@ GtkWidget *anaconda_base_window_get_nav_area(AnacondaBaseWindow *win) {
}
/**
+ * anaconda_base_window_get_nav_area_background_window:
+ * @win: a #AnacondaBaseWindow
+ *
+ * Returns the event box that houses background window of the navigation area of @win.
+ *
+ * Returns: (transfer none): The event box
+ *
+ * Since: 1.0
+ */
+GtkWidget *anaconda_base_window_get_nav_area_background_window(AnacondaBaseWindow *win) {
+ return win->priv->nav_box;
+}
+
+/**
* anaconda_base_window_get_main_box:
* @win: a #AnacondaBaseWindow
*
@@ -576,6 +596,8 @@ anaconda_base_window_buildable_get_internal_child (GtkBuildable *buildable,
return G_OBJECT(anaconda_base_window_get_main_box(ANACONDA_BASE_WINDOW(buildable)));
else if (!strcmp(childname, "nav_area"))
return G_OBJECT(ANACONDA_BASE_WINDOW(buildable)->priv->nav_area);
+ else if (!strcmp(childname, "nav_box"))
+ return G_OBJECT(ANACONDA_BASE_WINDOW(buildable)->priv->nav_box);
else if (!strcmp(childname, "alignment"))
return G_OBJECT(ANACONDA_BASE_WINDOW(buildable)->priv->alignment);
else if (!strcmp(childname, "action_area"))
diff --git a/widgets/src/BaseWindow.h b/widgets/src/BaseWindow.h
index ef9c21068..6c08ee8c4 100644
--- a/widgets/src/BaseWindow.h
+++ b/widgets/src/BaseWindow.h
@@ -80,6 +80,7 @@ GtkWidget *anaconda_base_window_get_action_area (AnacondaBaseWindow *win);
GtkWidget *anaconda_base_window_get_alignment (AnacondaBaseWindow *win);
GtkWidget *anaconda_base_window_get_main_box (AnacondaBaseWindow *win);
GtkWidget *anaconda_base_window_get_nav_area (AnacondaBaseWindow *win);
+GtkWidget *anaconda_base_window_get_nav_area_background_window (AnacondaBaseWindow *win);
G_END_DECLS
diff --git a/widgets/src/SpokeWindow.c b/widgets/src/SpokeWindow.c
index bafc5ab1f..16ce3f87a 100644
--- a/widgets/src/SpokeWindow.c
+++ b/widgets/src/SpokeWindow.c
@@ -124,12 +124,45 @@ GtkWidget *anaconda_spoke_window_new() {
}
static void anaconda_spoke_window_init(AnacondaSpokeWindow *win) {
- GtkWidget *nav_area;
+ GError *error;
+ GtkWidget *nav_area, *nav_box;
+ GdkPixbuf *pixbuf;
+ cairo_pattern_t *pattern;
+ cairo_surface_t *surface;
+ cairo_t *cr;
win->priv = G_TYPE_INSTANCE_GET_PRIVATE(win,
ANACONDA_TYPE_SPOKE_WINDOW,
AnacondaSpokeWindowPrivate);
+ /* Set the background gradient in the header. If we fail to load the
+ * background for any reason, just print an error message and display the
+ * header without an image.
+ */
+ error = NULL;
+ pixbuf = gdk_pixbuf_new_from_file("/usr/share/anaconda/pixmaps/anaconda_spoke_header.png", &error);
+ if (!pixbuf) {
+ fprintf(stderr, "could not load header background: %s\n", error->message);
+ g_error_free(error);
+ } else {
+ nav_box = anaconda_base_window_get_nav_area_background_window(ANACONDA_BASE_WINDOW(win));
+ gtk_widget_set_size_request(nav_box, -1, gdk_pixbuf_get_height (pixbuf));
+ gtk_widget_realize(nav_box);
+
+ surface = gdk_window_create_similar_surface(gtk_widget_get_window(nav_box), CAIRO_CONTENT_COLOR_ALPHA,
+ gdk_pixbuf_get_width(pixbuf), gdk_pixbuf_get_height(pixbuf));
+ cr = cairo_create(surface);
+
+ gdk_cairo_set_source_pixbuf(cr, pixbuf, 0, 0);
+ cairo_paint(cr);
+ cairo_destroy(cr);
+ pattern = cairo_pattern_create_for_surface(surface);
+ cairo_surface_destroy(surface);
+
+ cairo_pattern_set_extend(pattern, CAIRO_EXTEND_REPEAT);
+ gdk_window_set_background_pattern(gtk_widget_get_window(nav_box), pattern);
+ }
+
/* Set some default properties. */
gtk_window_set_modal(GTK_WINDOW(win), TRUE);