From 7879a4eabadd00eeaebb0bfdcc0ee4be21ebb865 Mon Sep 17 00:00:00 2001 From: Martin Abente Lahaye Date: Wed, 3 Feb 2016 17:45:42 -0300 Subject: Add TopbarHomeButton As agreed with the design team, all apps should include a generic home button at the top left corner of the app window. Therefore, we add a new generic button in the sdk to be used in all the different apps for consistency. [endlessm/eos-sdk#4030] --- overrides/endless_private/topbar_home_button.js | 45 +++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 overrides/endless_private/topbar_home_button.js (limited to 'overrides/endless_private') diff --git a/overrides/endless_private/topbar_home_button.js b/overrides/endless_private/topbar_home_button.js new file mode 100644 index 0000000..62d74c6 --- /dev/null +++ b/overrides/endless_private/topbar_home_button.js @@ -0,0 +1,45 @@ +const Gdk = imports.gi.Gdk; +const Gtk = imports.gi.Gtk; +const Lang = imports.lang; + +/** + * Class: TopbarHomeButton + * Generic button widget to re-direct the user to the home page + * + * This is a generic button widget to be used by all applications. + * It must be placed at the top left corner of the window. When + * clicked, the user must be re-directed to the home page of the + * application. + */ +const TopbarHomeButton = new Lang.Class({ + Name: 'TopbarHomeButton', + GTypeName: 'EosTopbarHomeButton', + Extends: Gtk.Button, + + _init: function(props={}) { + this.parent(props); + + let icon_name; + if (Gtk.Widget.get_default_direction() === Gtk.TextDirection.RTL) { + icon_name = 'go-home-rtl-symbolic'; + } else { + icon_name = 'go-home-symbolic'; + } + let image = Gtk.Image.new_from_icon_name(icon_name, Gtk.IconSize.SMALL_TOOLBAR); + this.set_image(image); + + this.get_style_context().add_class('home'); + + this.can_focus = false; + this.add_events(Gdk.EventMask.ENTER_NOTIFY_MASK | Gdk.EventMask.LEAVE_NOTIFY_MASK); + this.connect('enter-notify-event', function (widget) { + let cursor = Gdk.Cursor.new_for_display(Gdk.Display.get_default(), + Gdk.CursorType.HAND1); + widget.window.set_cursor(cursor); + }); + this.connect('leave-notify-event', function (widget) { + widget.window.set_cursor(null); + }); + this.get_style_context().add_class(Gtk.STYLE_CLASS_LINKED); + }, +}); -- cgit v1.2.3