Mercurial > MadButterfly
view inkscape/AssignSymbol.py @ 269:c96f38ad4bb6
Fix mis-behavior of translate_path_data() on arc.
- Arc in a path in svg2code_ex is not showed.
- translate_path_data() in svg2code.py was modified for calling
binary version new method for path shape.
- rdman_shape_path_new_from_binary()
- Code to translate path data does not handle arc in a right way.
- Copy calc_center_and_x_aix() from shape_path.c to svg2code.py and
change name _calc_ellipse_of_arc()
- _calc_ellipse_of_arc() handle arc data for translate_path_data()
author | Thinker K.F. Li <thinker@branda.to> |
---|---|
date | Sun, 25 Jan 2009 00:20:34 +0800 |
parents | 1958bb2a87a2 |
children | 5006e4abdda5 |
line wrap: on
line source
#!/usr/bin/python import inkex import pygtk import gtk class AssignSymbol(inkex.Effect): def effect(self): self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) self.window.set_position(gtk.WIN_POS_MOUSE) self.defaultname = 'input symbol name here' self.fillcontent() self.window.show_all() self.window.connect("delete_event", gtk.main_quit) gtk.main() def onQuit(self,data): gtk.main_quit() def onAssign(self,data): text = self.text.get_text() if text != self.defaultname: self.node.set("mbname",text) self.node.set("id",text) gtk.main_quit() def confirm(self,msg): vbox = gtk.VBox() vbox.pack_start(gtk.Label(msg)) self.button = gtk.Button('OK') vbox.pack_start(self.button) self.button.connect("clicked", self.onQuit) self.window.add(vbox) def dumpattr(self,n): s = "" for a,v in n.attrib.items(): s = s + ("%s=%s" % (a,v)) return s def dump(self,node,l=0): print " " * l*2,"<", node.tag, self.dumpattr(node),">" for n in node: self.dump(n,l+1) print " " * l * 2,"/>" def fillcontent(self): if len(self.selected) != 1: self.confirm('Please select on group only') return for id,node in self.selected.iteritems(): #self.dump(node) if node.tag != '{http://www.w3.org/2000/svg}g': self.confirm('Only group element can be converted into a symbol') return self.node = node vbox = gtk.VBox() vbox.pack_start(gtk.Label('Please input the symbol name')) self.text = gtk.Entry() try: self.text.set_text(node.get("mbname")) except: self.text.set_text(self.defaultname) vbox.pack_start(self.text) self.button = gtk.Button('OK') self.button.connect("clicked", self.onAssign) vbox.pack_start(self.button) self.window.add(vbox) self.window.show_all() a=AssignSymbol() a.affect() # vim: set ts=4