[gnome-boxes] Use the standard osd look for the fullscreen toolbar
- From: Alexander Larsson <alexl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-boxes] Use the standard osd look for the fullscreen toolbar
- Date: Thu, 24 Jan 2013 09:14:20 +0000 (UTC)
commit b9d713530c00a9c3edd0361f1954e8acea555764
Author: Alexander Larsson <alexl redhat com>
Date: Wed Jan 23 14:26:37 2013 +0100
Use the standard osd look for the fullscreen toolbar
This is how the recent mockups look and uses the standard transparent
css instead of the custom boxes one.
https://bugzilla.gnome.org/show_bug.cgi?id=674663
data/gtk-style.css | 4 ---
src/display-page.vala | 52 +++++++++++++++++++++++++++++++++++++++---------
2 files changed, 42 insertions(+), 14 deletions(-)
---
diff --git a/data/gtk-style.css b/data/gtk-style.css
index 6a2600b..31f18dc 100644
--- a/data/gtk-style.css
+++ b/data/gtk-style.css
@@ -43,10 +43,6 @@ BoxesMiniGraph {
background-image: none;
}
-.boxes-overlay-toolbar {
- background-color: rgba(20,20,20,0.85);
-}
-
.boxes-property-name-label {
color: #bebebe;
}
diff --git a/src/display-page.vala b/src/display-page.vala
index b1f5ac7..9fd9ed8 100644
--- a/src/display-page.vala
+++ b/src/display-page.vala
@@ -3,15 +3,32 @@ using Gtk;
using Gdk;
private class Boxes.DisplayToolbar: Gd.MainToolbar {
- public DisplayToolbar () {
- get_style_context ().add_class (Gtk.STYLE_CLASS_MENUBAR);
-
- var back = add_button ("go-previous-symbolic", null, true) as Gtk.Button;
+ private bool overlay;
+ /* The left/right containers of Gd.MainToolbar are GtkGrids, which don't support first/last theming,
+ which the osd css uses, so we need to add our own GtkBoxes instead. */
+ private Gtk.Box leftbox;
+ private Gtk.Box rightbox;
+
+ public DisplayToolbar (bool overlay) {
+ this.overlay = overlay;
+ if (overlay)
+ get_style_context ().add_class ("osd");
+ else
+ get_style_context ().add_class (Gtk.STYLE_CLASS_MENUBAR);
+
+ int spacing = overlay ? 0 : 12;
+ leftbox = new Gtk.Box (Gtk.Orientation.HORIZONTAL, spacing);
+ add_widget (leftbox, true);
+
+ rightbox = new Gtk.Box (Gtk.Orientation.HORIZONTAL, spacing);
+ add_widget (rightbox, false);
+
+ var back = add_image_button ("go-previous-symbolic", true);
back.clicked.connect ((button) => { App.app.ui_state = UIState.COLLECTION; });
- var fullscreen = add_button ("view-fullscreen-symbolic", null, false) as Gtk.Button;
+ var fullscreen = add_image_button ("view-fullscreen-symbolic", false);
App.app.notify["fullscreen"].connect_after ( () => {
- var image = fullscreen.get_child() as Gtk.Image;
+ var image = fullscreen.get_image() as Gtk.Image;
if (App.app.fullscreen)
image.icon_name = "view-restore-symbolic";
else
@@ -19,9 +36,25 @@ private class Boxes.DisplayToolbar: Gd.MainToolbar {
});
fullscreen.clicked.connect ((button) => { App.app.fullscreen = !App.app.fullscreen; });
- var props = add_button ("utilities-system-monitor-symbolic", null, false) as Gtk.Button;
+ var props = add_image_button ("utilities-system-monitor-symbolic", false);
props.clicked.connect ((button) => { App.app.ui_state = UIState.PROPERTIES; });
}
+
+ private Gtk.Button add_image_button (string icon_name, bool pack_start) {
+ var button = new Gtk.Button ();
+ var img = new Gtk.Image.from_icon_name (icon_name, Gtk.IconSize.MENU);
+ img.show ();
+ button.image = img;
+ if (pack_start)
+ leftbox.add (button);
+ else
+ rightbox.add (button);
+
+ if (!overlay)
+ button.get_style_context ().add_class ("raised");
+ button.get_style_context ().add_class ("image-button");
+ return button;
+ }
}
private class Boxes.DisplayPage: GLib.Object {
@@ -93,7 +126,7 @@ private class Boxes.DisplayPage: GLib.Object {
return false;
});
- toolbar = new DisplayToolbar ();
+ toolbar = new DisplayToolbar (false);
box = new Box (Orientation.VERTICAL, 0);
box.pack_start (toolbar, false, false, 0);
@@ -109,12 +142,11 @@ private class Boxes.DisplayPage: GLib.Object {
box.pack_start (grid, true, true, 0);
- overlay_toolbar = new DisplayToolbar ();
+ overlay_toolbar = new DisplayToolbar (true);
overlay_toolbar_box = new EventBox ();
overlay_toolbar_box.add (overlay_toolbar);
overlay_toolbar_box.valign = Gtk.Align.START;
overlay_toolbar_box.vexpand = false;
- overlay_toolbar.get_style_context ().add_class ("boxes-overlay-toolbar");
notification_grid = new Grid ();
notification_grid.valign = Gtk.Align.START;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]