diff options
Diffstat (limited to 'activity.py')
-rw-r--r-- | activity.py | 147 |
1 files changed, 84 insertions, 63 deletions
diff --git a/activity.py b/activity.py index fa94eab..126d4c7 100644 --- a/activity.py +++ b/activity.py @@ -12,37 +12,37 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -from gi.repository import Gtk -from gi.repository import GObject +import gtk from gettext import gettext as _ -GObject.threads_init() - -from sugar3.graphics.toolbutton import ToolButton -from sugar3.graphics.toggletoolbutton import ToggleToolButton -from sugar3.graphics.toolbarbox import ToolbarBox, ToolbarButton -from sugar3.activity.widgets import StopButton -from sugar3.activity import activity -from sugar3.graphics.radiotoolbutton import RadioToolButton -from sugar3.activity.widgets import ActivityToolbarButton +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 import edit import book -class InfoslicerActivity(activity.Activity): +gtk.gdk.threads_init() +gtk.gdk.threads_enter() + +class InfoslicerActivity(SharedActivity): def __init__(self, handle): - self.notebook = Gtk.Notebook() + self.notebook = gtk.Notebook() self.notebook.show() self.notebook.props.show_border = False self.notebook.props.show_tabs = False - activity.Activity.__init__(self, handle) - - self.max_participants = 1 - - self.set_canvas(self.notebook) - self.instance() + SharedActivity.__init__(self, self.notebook, 'SERVICE', handle) def instance(self): book.wiki = book.WikiBook() @@ -53,52 +53,71 @@ class InfoslicerActivity(activity.Activity): self.edit = edit.View() self.library = library.View(self) - 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, - activity_button) - self.library_bar.publish.show() - - edit_fake = Gtk.EventBox() - - self.notebook.append_page(self.library, None) - self.notebook.append_page(self.edit, None) - self.notebook.append_page(edit_fake, None) + 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, + activity_button) + self.library_bar.publish.show() + + edit_fake = gtk.EventBox() + + self.notebook.append_page(self.library) + self.notebook.append_page(self.edit) + self.notebook.append_page(edit_fake) self.show_all() - 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) + 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() @@ -112,7 +131,9 @@ class InfoslicerActivity(activity.Activity): book.custom.sync(filepath) def set_edit_sensitive(self, enable): - pass + 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: |