# python import import logging # .. from gettext import gettext as _ # sugar import from sugar.activity import activity # hulahop import from hulahop.webview import WebView # nutriweb import import run # .. from nutriweb.ui import toolbar # get application logger logger = logging.getLogger(run.APP_NAME) URL_BASE = 'http://localhost:5000/' def _toolbar_changed(toolbox, page, activity_): """Catch toolbox activity tab focus to display settings screen. """ # is the activity tab? if page == 0: # show the activity screen activity_._change_screen(toolbar=None, name='activity') else: pass # propagate it return True class NutriWebActivity(activity.Activity, run.nutriweb): def __init__(self, handle): # init parents run.nutriweb.__init__(self) activity.Activity.__init__(self, handle) # .. self.max_participants = 1 # get toolbox self._toolbox = activity.ActivityToolbox(self) # add tool bars self.set_toolbox(self._toolbox) # ... self.web_view = WebView() self.set_canvas(self.web_view) self.web_view.show() # show self._toolbox.show() # tmp var _toolbar = None # init toolbars for _n in ['eating', 'spare-time']: # init toolbar _t = toolbar.Toolbar(self, name=_n) # if default toolbar .. set default screen if _n == 'eating': self._change_screen(_t) _toolbar = _t # set default tab self._toolbox.set_current_toolbar(1) # .. self._toolbox.connect('current-toolbar-changed', _toolbar_changed, self) def get_toolbox(self): return self._toolbox def _change_screen(self, toolbar=None, name=None): # ... _name = toolbar.name if name is None else name # ... self.web_view.load_uri(URL_BASE + _name) def read_file(self, file_path): # .. should be overriden pass def write_file(self, file_path): # .. should be overriden pass def close(self, skip_save=False): run.nutriweb.close(self) activity.Activity.close(self, skip_save=True)