On 18/09/2011 21:05, Albert Zuurbier wrote: > Hello, > > I would like to make an extension to Dia with Python (so I can learn > that language along the way). However, I need a bit more documentation. > Which I am willing to write, if you give me a chance. > > I want to make a new diagram type. From the C code I have a rough idea > of what I need to do (shouldn't be too difficult). But there are no > Python examples I can use as a start. Pydiadoc.py gives the classes, > attributes and methods, but not the parameters of the methods. I tried > to follow the logic of pydiadoc, to see if I can continue along that > line to get parameter information, but I don't know how Python can > provide me more information. So, I turn here to the real experts. > > This is the deal: if someone gets me started on creating a new diagram > type, then I write a tutorial and/or a contribution to the documentation > of dia. > > Regards, > Albert
Hi ! Python documentation is available here: http://live.gnome.org/Dia/Python It's not possible to create a new dia object type with python (see the second link from the page above "how to use Python to create objects in a diagram"). Maybe the custom shape module will suit your needs, documentation is available here: http://dia-installer.de/doc/en/custom-shapes-chapter.html http://git.gnome.org/browse/dia/tree/doc/custom-shapes The diasvg_import.py script shows how to "instantiate" known diagrams/objects, it's an import filter. The export filter codegen.py is also interesting. You could use the python console of Dia and the python builtin "dir": >>> dia.active_display().diagram.data.layers[0].objects[0] <DiaObject of type "UML - Class" at 2fb8a30> >>> obj = dia.active_display().diagram.data.layers[0].objects[0] >>> dir(obj) ['bounding_box', 'connections', 'copy', 'destroy', 'distance_from', 'draw', 'get_object_menu', 'handles', 'move', 'move_handle', 'parent', 'properties'] >>> dir(obj.properties) ['get', 'has_key', 'keys'] >>> obj.properties.keys() ['obj_pos', 'obj_bb', 'meta', 'elem_corner', 'elem_width', ...] Pierre-Louis _______________________________________________ dia-list mailing list dia-list@gnome.org http://mail.gnome.org/mailman/listinfo/dia-list FAQ at http://live.gnome.org/Dia/Faq Main page at http://live.gnome.org/Dia