diff options
author | Gonzalo Odiard <godiard@sugarlabs.org> | 2011-05-23 14:04:21 (GMT) |
---|---|---|
committer | Gonzalo Odiard <godiard@sugarlabs.org> | 2011-05-23 14:04:21 (GMT) |
commit | 8eba08663961fef858b38aa83752d54acbe7a69e (patch) | |
tree | 3425c00ed9e2bd7a497d2b97735bf8f360851952 /activity.py | |
parent | a49393db232115c668a6b74d0d3b4c4f07fed8b8 (diff) |
Reorganize UI and implement new toolbars
Diffstat (limited to 'activity.py')
-rw-r--r-- | activity.py | 85 |
1 files changed, 74 insertions, 11 deletions
diff --git a/activity.py b/activity.py index e402f1c..469207d 100644 --- a/activity.py +++ b/activity.py @@ -18,6 +18,14 @@ from gettext import gettext as _ from sugar.graphics.toolbutton import ToolButton from sugar.graphics.toggletoolbutton import ToggleToolButton from sugar.activity.activity import ActivityToolbox +OLD_TOOLBAR = False +try: + from sugar.graphics.toolbarbox import ToolbarBox, ToolbarButton + from sugar.activity.widgets import StopButton + from sugar.graphics.radiotoolbutton import RadioToolButton + from sugar.activity.widgets import ActivityToolbarButton +except ImportError: + OLD_TOOLBAR = True from port.activity import SharedActivity import library @@ -43,16 +51,52 @@ class InfoslicerActivity(SharedActivity): self.edit_page = 1 self.edit = edit.View() - self.edit_bar = edit.Toolbar(self.edit) - self.library = library.View(self) - library_bar = library.Toolbar(self.library) - toolbox = ActivityToolbox(self) - toolbox.connect('current-toolbar-changed', self._toolbar_changed_cb) - self.set_toolbox(toolbox) - toolbox.add_toolbar(_('Library'), library_bar) - toolbox.add_toolbar(_('Edit'), self.edit_bar) + if OLD_TOOLBAR: + self.edit_toolbar = gtk.Toolbar() + self.edit_bar = edit.ToolbarBuilder(self.edit, self.edit_toolbar) + self.edit_toolbar.show_all() + + self.library_toolbar = gtk.Toolbar() + self.library_bar = library.ToolbarBuilder(self.library, + self.library_toolbar) + self.library_toolbar.show_all() + + toolbox = ActivityToolbox(self) + toolbox.connect('current-toolbar-changed', + self._toolbar_changed_cb) + self.set_toolbox(toolbox) + toolbox.add_toolbar(_('Library'), self.library_toolbar) + toolbox.add_toolbar(_('Edit'), self.edit_toolbar) + toolbox.set_current_toolbar(1) + else: + toolbar_box = ToolbarBox() + activity_button = ActivityToolbarButton(self) + toolbar_box.toolbar.insert(activity_button, 0) + self.set_toolbar_box(toolbar_box) + self._toolbar = toolbar_box.toolbar + + tool_group = None + search_button = RadioToolButton() + search_button.props.group = tool_group + tool_group = search_button + search_button.props.icon_name = 'white-search' + search_button.set_tooltip(_('Library')) + search_button.mode = 'search' + search_button.connect('clicked', self.__mode_button_clicked) + self._toolbar.insert(search_button, -1) + + edit_button = RadioToolButton() + edit_button.props.group = tool_group + edit_button.props.icon_name = 'toolbar-edit' + edit_button.set_tooltip(_('Edit')) + edit_button.mode = 'edit' + edit_button.connect('clicked', self.__mode_button_clicked) + self._toolbar.insert(edit_button, -1) + self._toolbar.insert(gtk.SeparatorToolItem(), -1) + self.edit_bar = edit.ToolbarBuilder(self.edit, self._toolbar) + self.library_bar = library.ToolbarBuilder(self.library, self._toolbar) edit_fake = gtk.EventBox() @@ -60,9 +104,19 @@ class InfoslicerActivity(SharedActivity): self.notebook.append_page(self.edit) self.notebook.append_page(edit_fake) - toolbox.set_current_toolbar(1) self.show_all() + if not OLD_TOOLBAR: + self.__mode_button_clicked(search_button) + separator = gtk.SeparatorToolItem() + separator.props.draw = False + separator.set_expand(True) + separator.show() + self._toolbar.insert(separator, -1) + stop_button = StopButton(self) + stop_button.show() + self._toolbar.insert(stop_button, -1) + def new_instance(self): self.instance() @@ -75,8 +129,9 @@ class InfoslicerActivity(SharedActivity): book.custom.sync(filepath) def set_edit_sensitive(self, enable): - self.edit_bar.props.sensitive = enable - self.edit_page = (enable and 1 or 2) + if OLD_TOOLBAR: + #self.edit_toolbar.props.sensitive = enable + self.edit_page = (enable and 1 or 2) def _toolbar_changed_cb(self, widget, index): if index > 0: @@ -86,3 +141,11 @@ class InfoslicerActivity(SharedActivity): self.library.sync() index = self.edit_page self.notebook.set_current_page(index) + + def __mode_button_clicked(self, button): + if button.mode == 'search': + self.edit_bar.unsensitize_all() + self.notebook.set_current_page(0) + else: + self.edit_bar.sensitize_all() + self.notebook.set_current_page(1) |