def _test(): from document import CanvasController from freehand import FreehandOnlyMode model = _make_testbed_model() tdw = TiledDrawWidget() tdw.set_model(model) tdw.set_size_request(640, 480) tdw.renderer.visualize_rendering = True ctrlr = CanvasController(tdw) ctrlr.init_pointer_events() ctrlr.modes.default_mode_class = FreehandOnlyMode win = gtk.Window() win.set_title("tdw test") win.connect("destroy", lambda *a: gtk.main_quit()) win.add(tdw) win.show_all() gtk.main()
def _init_widgets(self): # Icon preview and edit TDW self._tdw = tileddrawwidget.TiledDrawWidget() self._tdw.set_model(self._model) self._tdw.set_size_request( brushmanager.PREVIEW_W*self._SCALE, brushmanager.PREVIEW_H*self._SCALE ) self._tdw.scale = float(self._SCALE) self._tdw.scroll_on_allocate = False self._tdw.pixelize_threshold = 0 tdw_align = Gtk.Alignment(xalign=0.5, yalign=0.0, xscale=0.0, yscale=0.0) tdw_align.add(self._tdw) self.attach(tdw_align, 0, 0, 1, 1) ctrlr = CanvasController(self._tdw) ctrlr.init_pointer_events() ctrlr.modes.default_mode_class = FreehandMode # Brush name label lbl = Gtk.Label() lbl.set_alignment(0.5, 0.0) lbl.set_justify(Gtk.Justification.CENTER) lbl_tmpl = self._ICON_PREVIEWING_TMPL lbl.set_markup(lbl_tmpl % (lib.xml.escape(self._NO_BRUSH_NAME),)) self.attach(lbl, 0, 1, 1, 1) self.brush_name_label = lbl # Action buttons button_box = Gtk.VButtonBox() button_box.set_homogeneous(False) button_box.set_layout(Gtk.ButtonBoxStyle.START) button_box.set_spacing(4) # TRANSLATORS: begin editing a brush's preview icon b = self._make_image_button( _('Edit'), "mypaint-freehand-symbolic", self._edit_cb ) b.set_tooltip_text(_("Begin editing this preview icon")) button_box.pack_start(b, False, True, 0) self._edit_button = b # TRANSLATORS: revert edits to a brush icon b = self._make_image_button( _('Revert'), "mypaint-document-revert-symbolic", self._revert_cb ) b.set_tooltip_text(_("Discard changes, and cancel editing")) button_box.pack_start(b, False, True, 0) button_box.set_child_secondary(b, False) self._revert_button = b # TRANSLATORS: clear the brush preview icon being edited b = self._make_image_button( _('Clear'), "mypaint-clear-all-symbolic", self._clear_cb ) b.set_tooltip_text(_("Clear the preview icon")) button_box.pack_start(b, False, True, 0) self._clear_button = b # TRANSLATORS: set the brush icon to a built-in default b = self._make_image_button( _('Auto'), "mypaint-document-new-symbolic", self._default_cb ) b.set_tooltip_text(_("Use the default icon")) button_box.pack_start(b, False, True, 0) self._default_button = b # TRANSLATORS: save edits to a brush icon b = self._make_image_button( _('Save'), "mypaint-document-save-symbolic", self._save_cb ) b.set_tooltip_text(_("Save this preview icon, and finish editing")) button_box.pack_start(b, False, True, 0) button_box.set_child_secondary(b, True) self._save_button = b self.attach(button_box, 1, 0, 1, 2) self.connect_after("show", self._show_cb) mb = self._bm.selected_brush preview = mb.preview self._set_preview_pixbuf(preview) name = mb.name if name is None: name = self._NO_BRUSH_NAME self.brush_name_label.set_markup(lbl_tmpl % (lib.xml.escape(name),))