Re: Extensions with python



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



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]