Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWade Brainerd <wadetb@gmail.com>2010-01-17 03:06:01 (GMT)
committer Wade Brainerd <wadetb@gmail.com>2010-01-17 03:06:01 (GMT)
commit54ea7394f536e9f9c892397daedc146c8ff28b96 (patch)
tree95f3bc0a503a2f290f539573faf4c42b713923a6
parent1035c9fd62fef60274e027441d818771a4268840 (diff)
Implement simultaneous support for old and new toolbars.
-rw-r--r--terminal.py101
1 files changed, 62 insertions, 39 deletions
diff --git a/terminal.py b/terminal.py
index 09343e3..b8c89ac 100644
--- a/terminal.py
+++ b/terminal.py
@@ -29,13 +29,22 @@ import vte
import pango
from sugar.graphics.toolbutton import ToolButton
-from sugar.graphics.toolbarbox import ToolbarBox
-from sugar.graphics.toolbarbox import ToolbarButton
-from sugar.activity.widgets import ActivityToolbarButton
-from sugar.activity.widgets import StopButton
from sugar.activity import activity
from sugar import env
+# Attempt to import the new toolbar classes. If the import fails,
+# fall back to the old toolbar style.
+try:
+ from sugar.graphics.toolbarbox import ToolbarBox
+ from sugar.graphics.toolbarbox import ToolbarButton
+ from sugar.activity.widgets import ActivityToolbarButton
+ from sugar.activity.widgets import StopButton
+ NEW_TOOLBARS = True
+except ImportError:
+ from sugar.activity.activity import ActivityToolbox
+ NEW_TOOLBARS = False
+
+
MASKED_ENVIRONMENT = [
'DBUS_SESSION_BUS_ADDRESS',
'PPID']
@@ -52,60 +61,74 @@ class TerminalActivity(activity.Activity):
self.max_participants = 1
- toolbar_box = ToolbarBox()
-
- activity_button = ActivityToolbarButton(self)
- toolbar_box.toolbar.insert(activity_button, 0)
- activity_button.page.keep.props.accelerator = '<Ctrl><Shift>S'
- activity_button.show()
-
edit_toolbar = self._create_edit_toolbar()
- edit_toolbar_button = ToolbarButton(
- page=edit_toolbar,
- icon_name='toolbar-edit')
edit_toolbar.show()
- toolbar_box.toolbar.insert(edit_toolbar_button, -1)
- edit_toolbar_button.show()
view_toolbar = self._create_view_toolbar()
- view_toolbar_button = ToolbarButton(
- page=view_toolbar,
- icon_name='toolbar-view')
view_toolbar.show()
- toolbar_box.toolbar.insert(view_toolbar_button, -1)
- view_toolbar_button.show()
self._delete_tab_toolbar = None
self._previous_tab_toolbar = None
self._next_tab_toolbar = None
tab_toolbar = self._create_tab_toolbar()
- tab_toolbar_button = ToolbarButton(
- page=tab_toolbar,
- icon_name='toolbar-tab')
tab_toolbar.show()
- toolbar_box.toolbar.insert(tab_toolbar_button, -1)
- tab_toolbar_button.show()
# Add a button that will be used to become root easily.
root_button = ToolButton('activity-become-root')
root_button.set_tooltip(_('Become root'))
root_button.connect('clicked', self.__become_root_cb)
- toolbar_box.toolbar.insert(root_button, -1)
root_button.show()
- separator = gtk.SeparatorToolItem()
- separator.props.draw = False
- separator.set_expand(True)
- toolbar_box.toolbar.insert(separator, -1)
- separator.show()
-
- stop_button = StopButton(self)
- stop_button.props.accelerator = '<Ctrl><Shift>Q'
- toolbar_box.toolbar.insert(stop_button, -1)
- stop_button.show()
+ if NEW_TOOLBARS:
+ toolbar_box = ToolbarBox()
+
+ activity_button = ActivityToolbarButton(self)
+ toolbar_box.toolbar.insert(activity_button, 0)
+ activity_button.page.keep.props.accelerator = '<Ctrl><Shift>S'
+ activity_button.show()
+
+ edit_toolbar_button = ToolbarButton(
+ page=edit_toolbar,
+ icon_name='toolbar-edit')
+ toolbar_box.toolbar.insert(edit_toolbar_button, -1)
+ edit_toolbar_button.show()
+
+ view_toolbar_button = ToolbarButton(
+ page=view_toolbar,
+ icon_name='toolbar-view')
+ toolbar_box.toolbar.insert(view_toolbar_button, -1)
+ view_toolbar_button.show()
+
+ tab_toolbar_button = ToolbarButton(
+ page=tab_toolbar,
+ icon_name='toolbar-tab')
+ toolbar_box.toolbar.insert(tab_toolbar_button, -1)
+ tab_toolbar_button.show()
+
+ toolbar_box.toolbar.insert(root_button, -1)
+
+ separator = gtk.SeparatorToolItem()
+ separator.props.draw = False
+ separator.set_expand(True)
+ toolbar_box.toolbar.insert(separator, -1)
+ separator.show()
+
+ stop_button = StopButton(self)
+ stop_button.props.accelerator = '<Ctrl><Shift>Q'
+ toolbar_box.toolbar.insert(stop_button, -1)
+ stop_button.show()
+
+ self.set_toolbar_box(toolbar_box)
+ toolbar_box.show()
+
+ else:
+ toolbox = ActivityToolbox(self)
+ toolbox.add_toolbar(_('Edit'), edit_toolbar)
+ toolbox.add_toolbar(_('View'), view_toolbar)
+ toolbox.add_toolbar(_('Tab'), tab_toolbar)
- self.set_toolbar_box(toolbar_box)
- toolbar_box.show()
+ self.set_toolbox(toolbox)
+ toolbox.show()
self._notebook = gtk.Notebook()
self._notebook.set_property("tab-pos", gtk.POS_TOP)