From 2c5da6b5aa429df5408b8a95cb1100780ae4e3ae Mon Sep 17 00:00:00 2001 From: Kevin Beaulieu Date: Thu, 12 Jun 2014 16:19:02 -0700 Subject: Adds TopBarNavButton class TopBarNavButton can be used for browser-style back and forward buttons in the title bar of a window. TopBarNavButton currently uses CSS and rounded corners. 5-sided button will be added later when assets are available. [endlessm/eos-sdk#1294] --- overrides/Endless.js | 2 ++ overrides/Makefile.am.inc | 3 +- overrides/endless_private/topbar_nav_button.js | 47 ++++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 overrides/endless_private/topbar_nav_button.js (limited to 'overrides') diff --git a/overrides/Endless.js b/overrides/Endless.js index dc76847..4049836 100644 --- a/overrides/Endless.js +++ b/overrides/Endless.js @@ -26,6 +26,7 @@ imports.searchPath.unshift(getCurrentFileDir()); const AssetButton = imports.endless_private.asset_button; const ConnectionTest = imports.endless_private.connection_test; const SearchBox = imports.endless_private.search_box; +const TopbarNavButton = imports.endless_private.topbar_nav_button; function _init() { // this is imports.gi.Endless @@ -34,6 +35,7 @@ function _init() { Endless.AssetButton = AssetButton.AssetButton; Endless.doConnectionTestAsync = ConnectionTest.doConnectionTestAsync; Endless.SearchBox = SearchBox.SearchBox; + Endless.TopbarNavButton = TopbarNavButton.TopbarNavButton; // Override Endless.PageManager.add() so that you can set child properties // at the same time diff --git a/overrides/Makefile.am.inc b/overrides/Makefile.am.inc index 9a21b2e..be0f9cd 100644 --- a/overrides/Makefile.am.inc +++ b/overrides/Makefile.am.inc @@ -9,5 +9,6 @@ nobase_dist_gjs_DATA = \ overrides/Endless.js \ overrides/endless_private/asset_button.js \ overrides/endless_private/connection_test.js \ - overrides/endless_private/search_box.js \ + overrides/endless_private/search_box.js \ + overrides/endless_private/topbar_nav_button.js \ $(NULL) diff --git a/overrides/endless_private/topbar_nav_button.js b/overrides/endless_private/topbar_nav_button.js new file mode 100644 index 0000000..2f77eea --- /dev/null +++ b/overrides/endless_private/topbar_nav_button.js @@ -0,0 +1,47 @@ +const GObject = imports.gi.GObject; +const Gtk = imports.gi.Gtk; +const Lang = imports.lang; + +const TopbarNavButton = new Lang.Class({ + Name: 'TopbarNavButton', + GTypeName: 'EosTopbarNavButton', + Extends: Gtk.Grid, + Properties: { + 'back-button': GObject.ParamSpec.object('back-button', 'Back button', + 'Topbar back button widget', + GObject.ParamFlags.READABLE, + Gtk.Button.$gtype), + 'forward-button': GObject.ParamSpec.object('forward-button', + 'Forward button', 'Topbar forward button widget', + GObject.ParamFlags.READABLE, + Gtk.Button.$gtype) + }, + + _init: function(props) { + props = props || {}; + props.orientation = Gtk.Orientation.HORIZONTAL; + this.parent(props); + + this._back_button = Gtk.Button.new_from_icon_name('topbar-go-previous-symbolic', + Gtk.IconSize.SMALL_TOOLBAR); + this._forward_button = Gtk.Button.new_from_icon_name('topbar-go-next-symbolic', + Gtk.IconSize.SMALL_TOOLBAR); + this._back_button.can_focus = false; + this._forward_button.can_focus = false; + this._back_button.get_style_context().add_class('back'); + this._back_button.get_style_context().add_class(Gtk.STYLE_CLASS_LINKED); + this._forward_button.get_style_context().add_class('forward'); + this._forward_button.get_style_context().add_class(Gtk.STYLE_CLASS_LINKED); + + this.add(this._back_button); + this.add(this._forward_button); + }, + + get back_button() { + return this._back_button; + }, + + get forward_button() { + return this._forward_button; + } +}); -- cgit v1.2.3