[PATCH 3/4] Add a topbar design to SpokeWindows. (#1045250)

Máirín Duffy duffy at redhat.com
Wed Feb 5 21:46:58 UTC 2014


This adds a topbar design to the SpokeWindows to complement the
sidebar on the StandaloneWindows and the HubWindows. The style
is set in the anaconda-gtk.css file.
---
 data/anaconda-gtk.css     | 37 ++++++++++++++++++++++++++-----------
 widgets/src/BaseWindow.c  |  3 ++-
 widgets/src/SpokeWindow.c | 34 ----------------------------------
 3 files changed, 28 insertions(+), 46 deletions(-)

diff --git a/data/anaconda-gtk.css b/data/anaconda-gtk.css
index a56ddf6..af51e45 100644
--- a/data/anaconda-gtk.css
+++ b/data/anaconda-gtk.css
@@ -1,32 +1,47 @@
 /* vendor-specific colors/images */
 
- at define-color sidebar_redhat #41413e;
- at define-color sidebar_fedora #006eb4;
+ at define-color redhat #41413e;
+ at define-color fedora #006eb4;
 
 /* logo and sidebar classes for RHEL */
+
+.sidebar {
+    background-image: url('/usr/share/anaconda/pixmaps/sidebar-bg.png');
+    background-color: @redhat;
+}
+
 .logo {
-    background-image: url('/usr/share/anaconda/pixmaps/redhat-logo.png');
+    background-image: url('/usr/share/anaconda/pixmaps/sidebar-logo.png');
     background-position: 50% 20px;
     background-repeat: no-repeat;
     background-color: transparent;
 }
 
-.sidebar {
-    background-image: url('/usr/share/anaconda/pixmaps/redhat-bg.png');
-    background-color: @sidebar_redhat;
+AnacondaSpokeWindow #nav-box {
+    background-color: @redhat;
+    background-image: url('/usr/share/anaconda/pixmaps/topbar-bg.png');
+    background-repeat: repeat;
+    color: white;
+}
+
+AnacondaSpokeWindow #layout-indicator {
+    color: black;
 }
 
 /* swap these into logo & sidebar classes for Fedora */
 /*
-.logo-fedora {
-    background-image: url('/usr/share/anaconda/pixmaps/fedora-logo.png');
+.logo{
+    background-image: url('/usr/share/anaconda/pixmaps/logo.png');
     background-position: 50% 20px;
     background-repeat: no-repeat;
     background-color: transparent;
 }
 
-.sidebar-fedora {
-    background-image: url('/usr/share/anaconda/pixmaps/noise-texture.png');
-    background-color: @sidebar_fedora;
+.sidebar {
+    background-color: @fedora;
+}
+
+AnacondaSpokeWindow #nav-box {
+    background-color: @fedora;
 }
 */
diff --git a/widgets/src/BaseWindow.c b/widgets/src/BaseWindow.c
index 0fcf4e8..c9080c4 100644
--- a/widgets/src/BaseWindow.c
+++ b/widgets/src/BaseWindow.c
@@ -221,7 +221,7 @@ static void anaconda_base_window_init(AnacondaBaseWindow *win) {
      */
 
     win->priv->nav_box = gtk_event_box_new();
-    gtk_widget_set_app_paintable(win->priv->nav_box, TRUE);
+    gtk_widget_set_name(win->priv->nav_box, "nav-box");
     gtk_box_pack_start(GTK_BOX(win->priv->main_box), win->priv->nav_box, FALSE, FALSE, 0);
 
     win->priv->nav_area = gtk_grid_new();
@@ -281,6 +281,7 @@ static void anaconda_base_window_init(AnacondaBaseWindow *win) {
     win->priv->layout_indicator = anaconda_layout_indicator_new();
     anaconda_layout_indicator_set_label_width(ANACONDA_LAYOUT_INDICATOR(win->priv->layout_indicator),
                                               LAYOUT_INDICATOR_LABEL_WIDTH);
+    gtk_widget_set_name(win->priv->layout_indicator, "layout-indicator");
     gtk_widget_set_halign(win->priv->layout_indicator, GTK_ALIGN_START);
     gtk_widget_set_hexpand(win->priv->layout_indicator, FALSE);
     gtk_widget_set_margin_top(win->priv->layout_indicator, 6);
diff --git a/widgets/src/SpokeWindow.c b/widgets/src/SpokeWindow.c
index 93f1b30..dc32915 100644
--- a/widgets/src/SpokeWindow.c
+++ b/widgets/src/SpokeWindow.c
@@ -165,44 +165,10 @@ static void anaconda_spoke_window_init(AnacondaSpokeWindow *win) {
 }
 
 static void anaconda_spoke_window_realize(GtkWidget *widget, gpointer user_data) {
-    GtkWidget *nav_box;
     GtkAccelGroup *accel_group;
-    GError *error;
-    GdkPixbuf *pixbuf;
-    cairo_pattern_t *pattern;
-    cairo_surface_t *surface;
-    cairo_t *cr;
 
     AnacondaSpokeWindow *window = ANACONDA_SPOKE_WINDOW(widget);
 
-    /* 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;
-    nav_box = anaconda_base_window_get_nav_area_background_window(ANACONDA_BASE_WINDOW(window));
-    pixbuf = gdk_pixbuf_new_from_file_at_scale("/usr/share/anaconda/pixmaps/anaconda_spoke_header.png",
-                                               -1, gdk_window_get_height(gtk_widget_get_window(nav_box)),
-                                               FALSE, &error);
-
-    if (!pixbuf) {
-        fprintf(stderr, "could not load header background: %s\n", error->message);
-        g_error_free(error);
-    } else {
-        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);
-    }
-
     /* Pressing F12 should send you back to the hub, similar to how the old UI worked. */
     accel_group = gtk_accel_group_new();
     gtk_window_add_accel_group(GTK_WINDOW(window), accel_group);
-- 
1.8.4.2



More information about the anaconda-patches mailing list