[gnome-boxes] Replace custom topbar code with Gd.MainToolbar
- From: Marc-Andre Lureau <malureau src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-boxes] Replace custom topbar code with Gd.MainToolbar
- Date: Mon, 13 Aug 2012 21:07:36 +0000 (UTC)
commit ce31b6dbcc075c2d3824c7840c5db18d56f341b9
Author: Marc-Andrà Lureau <marcandre lureau gmail com>
Date: Tue Aug 7 17:10:51 2012 +0200
Replace custom topbar code with Gd.MainToolbar
src/display-page.vala | 70 ++++-----------------------
src/properties.vala | 22 +++------
src/topbar.vala | 127 +++++++++++++------------------------------------
src/wizard.vala | 39 +++++----------
4 files changed, 65 insertions(+), 193 deletions(-)
---
diff --git a/src/display-page.vala b/src/display-page.vala
index bdeb03e..ccd1a5c 100644
--- a/src/display-page.vala
+++ b/src/display-page.vala
@@ -2,68 +2,18 @@
using Gtk;
using Gdk;
-private class Boxes.DisplayToolbar: Gtk.Toolbar {
- public string title {
- set { label.set_markup (value); }
- }
- private Label label;
-
+private class Boxes.DisplayToolbar: Gd.MainToolbar {
public DisplayToolbar () {
- icon_size = IconSize.MENU;
- get_style_context ().add_class (STYLE_CLASS_MENUBAR);
- set_show_arrow (false);
-
- // Make sure we're the same size as the normal toolbar
- this.set_size_request (-1, (int) Topbar.height);
-
- var left_group = new ToolItem ();
- insert (left_group, 0);
+ get_style_context ().add_class (Gtk.STYLE_CLASS_MENUBAR);
- var center_group = new ToolItem ();
- center_group.set_expand (true);
- insert (center_group, -1);
-
- var right_group = new ToolItem ();
- insert (right_group, -1);
-
- var size_group = new SizeGroup (SizeGroupMode.HORIZONTAL);
- size_group.add_widget (left_group);
- size_group.add_widget (right_group);
+ var back = add_button ("go-previous-symbolic", null, true) as Gtk.Button;
+ back.clicked.connect ((button) => { App.app.ui_state = UIState.COLLECTION; });
- var left_box = new Box (Orientation.HORIZONTAL, 0);
- left_box.valign = Gtk.Align.CENTER;
- left_group.add (left_box);
+ var fullscreen = add_button ("view-fullscreen-symbolic", null, false) as Gtk.Button;
+ fullscreen.clicked.connect ((button) => { App.app.fullscreen = !App.app.fullscreen; });
- var back = new Button ();
- back.add (new Image.from_icon_name ("go-previous-symbolic",
- IconSize.MENU));
- back.get_style_context ().add_class ("raised");
- back.clicked.connect ((button) => { App.app.ui_state = UIState.COLLECTION; });
- left_box.pack_start (back, false, false, 0);
-
- /* center title - unfortunately, metacity doesn't even center its
- own title.. sad panda */
- label = new Label ("Display");
- label.use_markup = true;
- center_group.add (label);
-
- var right_box = new Box (Orientation.HORIZONTAL, 12);
- right_box.valign = Gtk.Align.CENTER;
- right_group.add(right_box);
-
- var btn = new Button ();
- btn.add (new Image.from_icon_name ("view-fullscreen-symbolic",
- IconSize.MENU));
- btn.get_style_context ().add_class ("raised");
- btn.clicked.connect ((button) => { App.app.fullscreen = !App.app.fullscreen; });
- right_box.pack_start (btn, false, false, 0);
-
- var props = new Button ();
- props.add (new Image.from_icon_name ("utilities-system-monitor-symbolic",
- IconSize.MENU));
- props.get_style_context ().add_class ("raised");
+ var props = add_button ("utilities-system-monitor-symbolic", null, false) as Gtk.Button;
props.clicked.connect ((button) => { App.app.ui_state = UIState.PROPERTIES; });
- right_box.pack_start (props, false, false, 0);
}
}
@@ -193,10 +143,12 @@ private class Boxes.DisplayPage: GLib.Object {
return_if_fail (machine != null);
var title = machine.name;
+ string? hint = null;
if (grabbed)
- title = _("%s <b>(press Ctrl+Alt keys to ungrab)</b>").printf (title);
+ hint = _("(press Ctrl+Alt keys to ungrab)");
- overlay_toolbar.title = toolbar.title = title;
+ overlay_toolbar.set_labels (title, hint);
+ toolbar.set_labels (title, hint);
}
public void show_display (Boxes.Display display, Widget widget) {
diff --git a/src/properties.vala b/src/properties.vala
index e3fa3fa..5543701 100644
--- a/src/properties.vala
+++ b/src/properties.vala
@@ -16,7 +16,7 @@ private class Boxes.Properties: Boxes.UI {
public Gtk.Widget screenshot_placeholder;
private GtkClutter.Actor gtk_actor;
private Gtk.Notebook notebook;
- private Gtk.ToolButton back;
+ private Gtk.Button back;
private Gtk.Label toolbar_label;
private Gtk.ListStore listmodel;
private Gtk.TreeView tree_view;
@@ -173,25 +173,17 @@ private class Boxes.Properties: Boxes.UI {
/* topbar */
var hbox = App.app.topbar.notebook.get_nth_page (Boxes.TopbarPage.PROPERTIES) as Gtk.HBox;
- var toolbar = new Toolbar ();
- toolbar.set_valign (Align.CENTER);
- toolbar.icon_size = IconSize.MENU;
- toolbar.get_style_context ().add_class (STYLE_CLASS_MENUBAR);
- toolbar.set_show_arrow (false);
-
- var toolbar_box = new Gtk.HBox (false, 0);
- toolbar_box.set_size_request (50, (int) Boxes.Topbar.height);
- toolbar_box.add (toolbar);
-
var box = new Gtk.HBox (false, 5);
box.add (new Gtk.Image.from_icon_name ("go-previous-symbolic", Gtk.IconSize.MENU));
toolbar_label = new Gtk.Label ("label");
box.add (toolbar_label);
- back = new ToolButton (box, null);
- back.get_style_context ().add_class ("raised");
+ box.vexpand = true;
+
+ var toolbar = new Gd.MainToolbar ();
+ hbox.pack_start (toolbar, true, true, 0);
+ back = toolbar.add_button (null, null, true) as Gtk.Button;
+ back.child = box;
back.clicked.connect ((button) => { App.app.ui_state = UIState.DISPLAY; });
- toolbar.insert (back, 0);
- hbox.pack_start (toolbar_box, true, true, 0);
hbox.show_all ();
diff --git a/src/topbar.vala b/src/topbar.vala
index 525e132..7c300b0 100644
--- a/src/topbar.vala
+++ b/src/topbar.vala
@@ -11,21 +11,18 @@ public enum Boxes.TopbarPage {
private class Boxes.Topbar: Boxes.UI {
public override Clutter.Actor actor { get { return gtk_actor; } }
- public Gtk.Label label;
-
- public const uint height = 50;
private GtkClutter.Actor gtk_actor; // the topbar box
public Notebook notebook;
private Gtk.Spinner spinner;
- private Gtk.ToggleToolButton search_btn;
- private Gtk.ToolButton select_btn;
- private Gtk.ToolButton cancel_btn;
- private Gtk.ToolButton spinner_btn;
- private Gtk.ToolButton back_btn;
+ private Gtk.ToggleButton search_btn;
+ private Gtk.Button select_btn;
+ private Gtk.Button cancel_btn;
+ private Gtk.Button spinner_btn;
+ private Gtk.Button back_btn;
private Gtk.Button new_btn;
- private Gtk.Label selection_label;
+ private Gd.MainToolbar selection_toolbar;
public Topbar () {
setup_topbar ();
@@ -37,60 +34,38 @@ private class Boxes.Topbar: Boxes.UI {
private void setup_topbar () {
notebook = new Gtk.Notebook ();
- notebook.set_size_request (50, (int) height);
gtk_actor = new GtkClutter.Actor.with_contents (notebook);
gtk_actor.name = "topbar";
/* TopbarPage.COLLECTION */
var hbox = new Gtk.HBox (false, 0);
notebook.append_page (hbox, null);
- hbox.get_style_context ().add_class (Gtk.STYLE_CLASS_SIDEBAR);
-
- var toolbar_start = new Gtk.Toolbar ();
- toolbar_start.icon_size = Gtk.IconSize.MENU;
- toolbar_start.get_style_context ().add_class (Gtk.STYLE_CLASS_MENUBAR);
- toolbar_start.set_show_arrow (false);
- hbox.pack_start (toolbar_start, true, true, 0);
-
- back_btn = new Gtk.ToolButton (null, null);
- back_btn.valign = Gtk.Align.CENTER;
- back_btn.icon_name = "go-previous-symbolic";
- back_btn.get_style_context ().add_class ("raised");
- back_btn.clicked.connect ((button) => { App.app.ui_state = UIState.COLLECTION; });
- toolbar_start.insert (back_btn, 0);
- new_btn = new Gtk.Button.with_label (_("New"));
+ var toolbar = new Gd.MainToolbar ();
+ toolbar.get_style_context ().add_class (Gtk.STYLE_CLASS_MENUBAR);
+ hbox.pack_start (toolbar, true, true, 0);
+
+ new_btn = toolbar.add_button (null, _("New"), true) as Gtk.Button;
new_btn.set_size_request (70, -1);
- new_btn.get_style_context ().add_class ("raised");
- var tool_item = new Gtk.ToolItem ();
- tool_item.child = new_btn;
- tool_item.valign = Gtk.Align.CENTER;
new_btn.clicked.connect ((button) => { App.app.ui_state = UIState.WIZARD; });
- toolbar_start.insert (tool_item, 1);
-
- label = new Gtk.Label ("");
- label.name = "TopbarLabel";
- label.set_halign (Gtk.Align.START);
- tool_item = new Gtk.ToolItem ();
- tool_item.set_expand (true);
- tool_item.child = label;
- toolbar_start.insert (tool_item, 2);
- var toolbar_end = new Gtk.Toolbar ();
- toolbar_end.icon_size = Gtk.IconSize.MENU;
- toolbar_end.get_style_context ().add_class (Gtk.STYLE_CLASS_MENUBAR);
+ back_btn = toolbar.add_button ("go-previous-symbolic", null, true) as Gtk.Button;
+ back_btn.clicked.connect ((button) => { App.app.ui_state = UIState.COLLECTION; });
spinner = new Gtk.Spinner ();
- spinner.start ();
- spinner_btn = new Gtk.ToolButton (spinner, null);
- spinner_btn.valign = Gtk.Align.CENTER;
- spinner_btn.get_style_context ().add_class ("raised");
- toolbar_end.insert (spinner_btn, 0);
-
- select_btn = new Gtk.ToolButton (null, null);
- select_btn.icon_name = "emblem-default-symbolic";
- select_btn.get_style_context ().add_class ("raised");
- select_btn.valign = Gtk.Align.CENTER;
+ spinner_btn = toolbar.add_button (null, null, false) as Gtk.Button;
+ spinner_btn.add (spinner);
+
+ search_btn = toolbar.add_toggle ("edit-find-symbolic", null, false) as Gtk.ToggleButton;
+ search_btn.bind_property ("active", App.app.searchbar, "visible", BindingFlags.BIDIRECTIONAL);
+ App.app.notify["search-visible"].connect (() => {
+ search_btn.active = App.app.searchbar.visible;
+ });
+ update_search_btn ();
+ App.app.collection.item_added.connect (update_search_btn);
+ App.app.collection.item_removed.connect (update_search_btn);
+
+ select_btn = toolbar.add_button ("emblem-default-symbolic", null, false) as Gtk.Button;
select_btn.clicked.connect (() => {
App.app.selection_mode = true;
});
@@ -98,66 +73,32 @@ private class Boxes.Topbar: Boxes.UI {
notebook.page = App.app.selection_mode ?
TopbarPage.SELECTION : notebook.page = TopbarPage.COLLECTION;
});
-
update_select_btn ();
App.app.collection.item_added.connect (update_select_btn);
App.app.collection.item_removed.connect (update_select_btn);
- toolbar_end.insert (select_btn, 1);
-
- search_btn = new Gtk.ToggleToolButton ();
- search_btn.icon_name = "edit-find-symbolic";
- search_btn.get_style_context ().add_class ("raised");
- search_btn.valign = Gtk.Align.CENTER;
- search_btn.bind_property ("active", App.app.searchbar, "visible", BindingFlags.BIDIRECTIONAL);
- App.app.notify["search-visible"].connect (() => {
- search_btn.active = App.app.searchbar.visible;
- });
- update_search_btn ();
- App.app.collection.item_added.connect (update_search_btn);
- App.app.collection.item_removed.connect (update_search_btn);
- toolbar_end.insert (search_btn, 1);
-
- toolbar_end.set_show_arrow (false);
- hbox.pack_start (toolbar_end, false, false, 0);
/* TopbarPage.SELECTION */
hbox = new Gtk.HBox (false, 0);
notebook.append_page (hbox, null);
- hbox.get_style_context ().add_class (Gtk.STYLE_CLASS_SIDEBAR);
-
- var toolbar_selection = new Gtk.Toolbar ();
- toolbar_selection.set_style (Gtk.ToolbarStyle.TEXT);
- toolbar_selection.get_style_context ().add_class (Gtk.STYLE_CLASS_MENUBAR);
- toolbar_selection.icon_size = Gtk.IconSize.MENU;
- toolbar_selection.set_show_arrow (false);
- hbox.pack_start (toolbar_selection, true, true, 0);
+ selection_toolbar = new Gd.MainToolbar ();
+ toolbar.get_style_context ().add_class (Gtk.STYLE_CLASS_MENUBAR);
+ hbox.pack_start (selection_toolbar, true, true, 0);
- selection_label = new Gtk.Label ("");
update_selection_label ();
- selection_label.use_markup = true;
- tool_item = new Gtk.ToolItem ();
- tool_item.set_expand (true);
- tool_item.child = selection_label;
- toolbar_selection.insert (tool_item, 0);
-
- cancel_btn = new Gtk.ToolButton.from_stock ("gtk-cancel");
- cancel_btn.get_style_context ().add_class ("raised");
- cancel_btn.valign = Gtk.Align.CENTER;
- toolbar_selection.insert (cancel_btn, 1);
+
+ cancel_btn = selection_toolbar.add_button (null, _("_Cancel"), false) as Gtk.Button;
+ cancel_btn.use_stock = true;
cancel_btn.clicked.connect (() => {
App.app.selection_mode = false;
});
/* TopbarPage.WIZARD */
hbox = new Gtk.HBox (false, 0);
- hbox.margin = 5;
notebook.append_page (hbox, null);
- hbox.get_style_context ().add_class (Gtk.STYLE_CLASS_SIDEBAR);
/* TopbarPage.PROPERTIES */
hbox = new Gtk.HBox (false, 0);
notebook.append_page (hbox, null);
- hbox.get_style_context ().add_class (Gtk.STYLE_CLASS_SIDEBAR);
notebook.show_tabs = false;
notebook.show_all ();
@@ -174,9 +115,9 @@ private class Boxes.Topbar: Boxes.UI {
private void update_selection_label () {
var items = App.app.selected_items.length ();
if (items > 0)
- selection_label.set_markup ("<b>" + ngettext ("%d selected", "%d selected", items).printf (items) + "</b>");
+ selection_toolbar.set_labels (ngettext ("%d selected", "%d selected", items).printf (items), null);
else
- selection_label.set_markup ("<i>" + _("Click on items to select them") + "</i>");
+ selection_toolbar.set_labels (null, _("Click on items to select them"));
}
public override void ui_state_changed () {
diff --git a/src/wizard.vala b/src/wizard.vala
index a5ba4b8..d640195 100644
--- a/src/wizard.vala
+++ b/src/wizard.vala
@@ -523,46 +523,33 @@ private class Boxes.Wizard: Boxes.UI {
/* topbar */
hbox = App.app.topbar.notebook.get_nth_page (Boxes.TopbarPage.WIZARD) as Gtk.HBox;
-
- var toolbar = new Gtk.Toolbar ();
- toolbar.icon_size = Gtk.IconSize.MENU;
- toolbar.get_style_context ().add_class (Gtk.STYLE_CLASS_MENUBAR);
- toolbar.set_show_arrow (false);
- hbox.pack_start (toolbar, true, true, 0);
-
label = new Gtk.Label (_("Create a Box"));
label.name = "TopbarLabel";
label.halign = Gtk.Align.START;
label.margin_left = 15;
- var tool_item = new Gtk.ToolItem ();
- tool_item.set_expand (true);
- tool_item.child = label;
- toolbar.insert (tool_item, 0);
-
- cancel_button = new Gtk.Button.from_stock (Gtk.Stock.CANCEL);
- tool_item = new Gtk.ToolItem ();
- tool_item.child = cancel_button;
- toolbar.insert (tool_item, 1);
+ hbox.pack_start (label, false, false, 0);
+
+ var toolbar = new Gd.MainToolbar ();
+ toolbar.get_style_context ().add_class (Gtk.STYLE_CLASS_MENUBAR);
+ toolbar.toolbar_style = Gtk.ToolbarStyle.TEXT;
+ hbox.pack_start (toolbar, true, true, 0);
+
+ cancel_button = toolbar.add_button (null, _("_Cancel"), false) as Gtk.Button;
+ cancel_button.use_underline = true;
cancel_button.clicked.connect (() => {
destroy_machine ();
wizard_source.page = SourcePage.MAIN;
App.app.ui_state = UIState.COLLECTION;
});
- back_button = new Gtk.Button.from_stock (Gtk.Stock.GO_BACK);
- tool_item = new Gtk.ToolItem ();
- tool_item.child = back_button;
- tool_item.margin_left = 20;
- toolbar.insert (tool_item, 2);
+ back_button = toolbar.add_button (null, _("_Back"), false) as Gtk.Button;
+ back_button.use_underline = true;
back_button.clicked.connect (() => {
page = page - 1;
});
- next_button = new Gtk.Button.with_mnemonic (_("C_ontinue"));
- tool_item = new Gtk.ToolItem ();
- tool_item.child = next_button;
- tool_item.margin_left = 5;
- toolbar.insert (tool_item, 3);
+ next_button = toolbar.add_button (null, _("C_ontinue"), false) as Gtk.Button;
+ next_button.use_underline = true;
next_button.get_style_context ().add_class ("boxes-continue");
next_button.clicked.connect (() => {
page = page + 1;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]