# -*- coding: utf-8 -*- # # Copyright 2012 Manuel QuiƱones # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA """ MiniMyPaint Activity A painting activity that uses the MyPaint engine. """ import gtk from gettext import gettext as _ import logging import json from sugar.activity import activity from toolbar import MyPaintToolbar from drawing import Drawing class MiniMyPaintActivity(activity.Activity): """A painting activity that uses the MyPaint engine.""" def __init__(self, handle): """Init activity, add toolbars and area for drawing.""" super(MiniMyPaintActivity, self).__init__(handle) toolbar_box = MyPaintToolbar(self) self.set_toolbar_box(toolbar_box) toolbar_box.show() self._drawing = Drawing() self.set_canvas(self._drawing) self._drawing.show() toolbar_box.set_drawing(self._drawing) def read_file(self, file_path): """Read from Sugar Journal.""" self._drawing.load_ora(file_path) state = json.loads(self.metadata['state']) logging.debug("read_file") logging.debug(state) self._drawing.set_stroke_color(state['color']) self._drawing.update_settings(state['settings']) self._drawing.set_brush(state['brush']) def write_file(self, file_path): """Write to Sugar Journal.""" self.metadata['mime_type'] = 'image/openraster' self._drawing.save_ora(file_path) state = {} state['color'] = self._drawing.get_stroke_color() state['settings'] = self._drawing.get_settings() state['brush'] = self._drawing.brush_name self.metadata['state'] = json.dumps(state) logging.debug("write_file") logging.debug(state)