Code

d7c34aac01d2834507fbf97033a124c0857e6f4e
[inkscape.git] / src / extension / dbus / Notes.txt
1 INTRO:
2 For people that are interested in improving the DBus API here is a 
3 intro to how everything is laid out.
5 First read the documentation for a general idea of how the different interfaces 
6 fit together and how Dbus is used in this application.
8 Here are short descriptions of the relevant files:
10 document-interface.cpp: This has most of the "meat" of the interface, this is where
11 most functions are implemented.
13 application-interface.cpp: This is where the application interface is implemented.
15 (document/application)-interface.xml: These files are the master record of the interfaces.
16 All of the documentation is generated from these files as is a lot of glue code.
17 Any changes MUST be reflected here.
19 dbus-init.cpp: This is where the interface is exposed when Inkscape starts up.
20 Here is where the names given to the various interfaces are set.  The application interface is constant but the document interfaces are generated on the fly.
22 org.inkscape.service.in: This sets where DBus looks for the Inkscape executable
23 if it is not running when someone tries to connect.
25 pytester.py: A python script that tests a lot of dbus functions.
27 doc/builddocs.sh: builds documentation out of the XML files and some others.
29 config.xsl, dbus-introspect-docs.dtd, spec-to-docbook.xsl, docbook.css: I borrowed 
30 these files, they set how the documentation looks, I have no idea how to edit them.
32 doc/inkscapeDbusRef.xml: This is the top level file for laying out the documentation,
33 it also includes the introduction.
35 doc/inkscapeDbusTerms.xml: This contains the terms sections of the documentation.  
36 Also the overview and all the tutorials.
38 *.ref.xml: These are intermediate files, do not edit.
40 wrapper/inkscape-dbus-wrapper.c: This is actually completely separate from inkscape.
41 It has a wrapper for each function in the document interface and includes the
42 client generated bindings.  It is used to create a shared object that will allow 
43 people to use the interface without even knowing anything about Dbus.
45 BUGS:
46     *Inkscape crashes if widow is closed while code is running,
47         need better error handling.
48     
49     *Pause updates needs work.
50     
51     *Default style for new shapes is occasionally strange.
52     
53     *The following methods are broken:
54         -document_interface_selection_move_to_layer
55     
56     *The following are not implemented:
57         -document_interface_layer_get_all
58         -document_interface_selection_box
59         -document_interface_get_node_coordinates
60         
61     *The following do not behave like the documentation:
62         -document_interface_transform
63         -document_interface_text
64         -document_interface_line
66 EFFICIENCY:
67     *Need better way to retrieve objects by name.
68         Switch to GQuark codes for object retrieval?
69     
70     *Rethink how often activate_desktop needs to be called.
72 FEATURES:
73     *Find out more about extension API.
74     *API compatibility for plugins?
76 CLEANUP: