class BasicReaderWidget (gtk.HBox): def __init__ (self, path, lang_details=None): super(BasicReaderWidget, self).__init__() self.provider = ReaderProvider(path, lang_details) self._canvas = Canvas() self._canvas.show() self.pack_start(self._canvas) self._canvas.connect_after('map-event', self._map_event_cb) def get_lessons(self): return self.provider.get_lessons() def load_lesson (self, path): logger.debug("load") try: self._canvas.load_file('file://'+path, '') except: self._canvas.load_file(path) self._canvas.zoom_whole() self._canvas.zoom_width() def _load_lesson (self, name, path): self.load_lesson(path) def _map_event_cb(self, o, e): self._load_lesson(*self.provider.lesson_array[0])
def _load_lesson(self, path, name): """Load the lesson content from a .abw, taking l10n into account. path -- string, path of lesson plan file, e.g. lessons/Introduction lesson -- string, name of lesson """ code, encoding = locale.getdefaultlocale() logging.debug('Locale code: %r' % code) if code is None or encoding is None: locale.setlocale(locale.LC_ALL, 'en_US') code, encoding = locale.getlocale() canvas = AbiCanvas() canvas.show() files = map( lambda x: os.path.join(path, '%s.abw' % x), ('_' + code.lower(), '_' + code.split('_')[0].lower(), 'default')) files = filter(lambda x: os.path.exists(x), files) # On jhbuild, the first works, on XO image 432 the second works: try: canvas.load_file('file://%s' % files[0], 'application/x-abiword') except: canvas.load_file('file://%s' % files[0]) canvas.view_online_layout() canvas.zoom_width() canvas.set_show_margin(False) self.append_page(canvas, gtk.Label(name))
class BasicReaderWidget(gtk.HBox): def __init__(self, path, lang_details=None): super(BasicReaderWidget, self).__init__() self.provider = ReaderProvider(path, lang_details) self._canvas = Canvas() self._canvas.show() self.pack_start(self._canvas) self._canvas.connect_after('map-event', self._map_event_cb) def get_lessons(self): return self.provider.get_lessons() def load_lesson(self, path): logger.debug("load") try: self._canvas.load_file('file://' + path, '') except: self._canvas.load_file(path) self._canvas.zoom_whole() self._canvas.zoom_width() def _load_lesson(self, name, path): self.load_lesson(path) def _map_event_cb(self, o, e): self._load_lesson(*self.provider.lesson_array[0])
def _load_lesson (self, path, name): """Load the lesson content from a .abw, taking l10n into account. path -- string, path of lesson plan file, e.g. lessons/Introduction lesson -- string, name of lesson """ code, encoding = locale.getdefaultlocale() logging.debug('Locale code: %r' % code) if code is None or encoding is None: locale.setlocale(locale.LC_ALL, 'en_US') code, encoding = locale.getlocale() canvas = AbiCanvas() canvas.show() files = map(lambda x: os.path.join(path, '%s.abw' % x), ('_'+code.lower(), '_'+code.split('_')[0].lower(), 'default')) files = filter(lambda x: os.path.exists(x), files) # On jhbuild, the first works, on XO image 432 the second works: try: canvas.load_file('file://%s' % files[0], 'application/x-abiword') except: canvas.load_file('file://%s' % files[0]) canvas.view_online_layout() canvas.zoom_width() canvas.set_show_margin(False) self.append_page(canvas, gtk.Label(name))