Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/activity.py
diff options
context:
space:
mode:
authorGonzalo Odiard <godiard@sugarlabs.org>2011-05-23 14:04:21 (GMT)
committer Gonzalo Odiard <godiard@sugarlabs.org>2011-05-23 14:04:21 (GMT)
commit8eba08663961fef858b38aa83752d54acbe7a69e (patch)
tree3425c00ed9e2bd7a497d2b97735bf8f360851952 /activity.py
parenta49393db232115c668a6b74d0d3b4c4f07fed8b8 (diff)
Reorganize UI and implement new toolbars
Diffstat (limited to 'activity.py')
-rw-r--r--activity.py85
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)