From 2b32947fbc8ef404a52c725527a8c3df3375567b Mon Sep 17 00:00:00 2001 From: Simon Schampijer Date: Wed, 29 Jul 2009 11:13:22 +0000 Subject: Initial toolbar redesign --- diff --git a/icons/edit-bar.svg b/icons/edit-bar.svg new file mode 100644 index 0000000..1e4a5b0 --- /dev/null +++ b/icons/edit-bar.svg @@ -0,0 +1,203 @@ + + + + + + + + + + + image/svg+xml + + + Edit Cut + 2006-09-29 + + + Lapo Calamandrei + + + + + + cut + edit + scissors + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/webactivity.py b/webactivity.py index 7e3ac4f..3ab7c62 100644 --- a/webactivity.py +++ b/webactivity.py @@ -44,6 +44,7 @@ from sugar.graphics.tray import HTray from sugar import profile from sugar.graphics.alert import Alert from sugar.graphics.icon import Icon +from sugar.graphics.toolbar import Toolbar, ToolbarButton from sugar import mime PROFILE_VERSION = 1 @@ -153,8 +154,8 @@ def _set_accept_languages(): logging.debug('LANG set') from browser import TabbedView +from webtoolbar import PrimaryToolbar from edittoolbar import EditToolbar -from webtoolbar import WebToolbar from viewtoolbar import ViewToolbar import downloadmanager import globalhistory @@ -171,9 +172,6 @@ SERVICE = "org.laptop.WebActivity" IFACE = SERVICE PATH = "/org/laptop/WebActivity" -_TOOLBAR_EDIT = 1 -_TOOLBAR_BROWSE = 2 - _logger = logging.getLogger('web-activity') class WebActivity(activity.Activity): @@ -193,27 +191,28 @@ class WebActivity(activity.Activity): branch = pref_service.getBranch("mozilla.widget.") branch.setBoolPref("disable-native-theme", True) - toolbox = activity.ActivityToolbox(self) + self._primary_toolbar = PrimaryToolbar(self._tabbed_view, self) self._edit_toolbar = EditToolbar(self) - toolbox.add_toolbar(_('Edit'), self._edit_toolbar) - self._edit_toolbar.show() - - self._web_toolbar = WebToolbar(self._tabbed_view) - self._web_toolbar.connect('add-link', self._link_add_button_cb) - toolbox.add_toolbar(_('Browse'), self._web_toolbar) - self._web_toolbar.show() - + self._edit_toolbar_button = ToolbarButton( + page=self._edit_toolbar, + icon_name='edit-bar') + self._primary_toolbar.top.insert(self._edit_toolbar_button, + self._primary_toolbar.top.get_n_items() - 1) + self._tray = HTray() self.set_tray(self._tray, gtk.POS_BOTTOM) self._tray.show() self._view_toolbar = ViewToolbar(self) - toolbox.add_toolbar(_('View'), self._view_toolbar) - self._view_toolbar.show() + view_toolbar_button = ToolbarButton( + page=self._view_toolbar, + icon_name='camera') + self._primary_toolbar.top.insert(view_toolbar_button, + self._primary_toolbar.top.get_n_items() - 1) - self.set_toolbox(toolbox) - toolbox.show() + self._primary_toolbar.show_all() + self.set_toolbox(self._primary_toolbar) self.set_canvas(self._tabbed_view) self._tabbed_view.show() @@ -222,9 +221,7 @@ class WebActivity(activity.Activity): self.model.connect('add_link', self._add_link_model_cb) self.connect('key-press-event', self._key_press_cb) - - self.toolbox.set_current_toolbar(_TOOLBAR_BROWSE) - + if handle.uri: self._tabbed_view.current_browser.load_uri(handle.uri) elif not self._jobject.file_path: @@ -431,13 +428,12 @@ class WebActivity(activity.Activity): return True elif gtk.gdk.keyval_name(event.keyval) == "f": _logger.debug('keyboard: Find') - self.toolbox.set_current_toolbar(_TOOLBAR_EDIT) - self._edit_toolbar.search_entry.grab_focus() + self._edit_toolbar_button.expanded = True + self._edit_toolbar.search_entry.grab_focus() return True elif gtk.gdk.keyval_name(event.keyval) == "l": _logger.debug('keyboard: Focus url entry') - self.toolbox.set_current_toolbar(_TOOLBAR_BROWSE) - self._web_toolbar.entry.grab_focus() + self._primary_toolbar.entry.grab_focus() return True elif gtk.gdk.keyval_name(event.keyval) == "minus": _logger.debug('keyboard: Zoom out') diff --git a/webtoolbar.py b/webtoolbar.py index f942fa8..e87eb6f 100644 --- a/webtoolbar.py +++ b/webtoolbar.py @@ -27,6 +27,8 @@ from xpcom import components from sugar.graphics.toolbutton import ToolButton from sugar.graphics.menuitem import MenuItem from sugar._sugarext import AddressEntry +from sugar.graphics.toolbar import Toolbar +from sugar.activity import activity import filepicker import places @@ -212,8 +214,8 @@ class WebEntry(AddressEntry): else: self._search_popup() -class WebToolbar(gtk.Toolbar): - __gtype_name__ = 'WebToolbar' +class PrimaryToolbar(Toolbar): + __gtype_name__ = 'PrimaryToolbar' __gsignals__ = { 'add-link': (gobject.SIGNAL_RUN_FIRST, @@ -221,30 +223,34 @@ class WebToolbar(gtk.Toolbar): ([])) } - def __init__(self, tabbed_view): - gtk.Toolbar.__init__(self) + def __init__(self, tabbed_view, act): + Toolbar.__init__(self) + + self._activity = act self._tabbed_view = tabbed_view self._loading = False + self.top.insert(activity.toolbar(self._activity), 0) + self._back = ToolButton('go-previous-paired') self._back.set_tooltip(_('Back')) self._back.props.sensitive = False self._back.connect('clicked', self._go_back_cb) - self.insert(self._back, -1) + self.top.insert(self._back, -1) self._back.show() - + self._forward = ToolButton('go-next-paired') self._forward.set_tooltip(_('Forward')) self._forward.props.sensitive = False self._forward.connect('clicked', self._go_forward_cb) - self.insert(self._forward, -1) + self.top.insert(self._forward, -1) self._forward.show() self._stop_and_reload = ToolButton('media-playback-stop') self._stop_and_reload.connect('clicked', self._stop_and_reload_cb) - self.insert(self._stop_and_reload, -1) + self.top.insert(self._stop_and_reload, -1) self._stop_and_reload.show() self.entry = WebEntry() @@ -255,15 +261,18 @@ class WebToolbar(gtk.Toolbar): entry_item.add(self.entry) self.entry.show() - self.insert(entry_item, -1) + self.top.insert(entry_item, -1) entry_item.show() self._link_add = ToolButton('emblem-favorite') self._link_add.set_tooltip(_('Bookmark')) self._link_add.connect('clicked', self._link_add_clicked_cb) - self.insert(self._link_add, -1) + self.top.insert(self._link_add, -1) self._link_add.show() + #self.top.insert(activity.expander(), -1) + self.top.insert(activity.stop_button(self._activity), -1) + self._progress_listener = None self._history = None self._browser = None -- cgit v0.9.1