From d01216acb1f7e1c8f383d4c8328ca1267d1fd77c Mon Sep 17 00:00:00 2001 From: glimmer07 Date: Thu, 13 Aug 2009 21:30:21 +0000 Subject: [PATCH] Added an intro to coders interested in modifing the code. --- src/extension/dbus/Notes.txt | 49 ++++++++++++++++++++++++++++++++++-- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/src/extension/dbus/Notes.txt b/src/extension/dbus/Notes.txt index d91dc4039..95b07a958 100644 --- a/src/extension/dbus/Notes.txt +++ b/src/extension/dbus/Notes.txt @@ -1,3 +1,47 @@ +INTRO: +For people that are interested in improving the DBus API here is a +intro to how everything is layed out. + +First read the documentation for a general idea of how the different interfaces +fit together and how Dbus is used in this application. + +Here are short descriptions of the relevent files: + +document-interface.cpp: This has most of the "meat" of the interface, this is where +most functions are implemented. + +application-interface.cpp: This is where the application interface is implemented. + +(document/application)-interface.xml: These files are the master record of the interfaces. +All of the documentation is generated from these files as is a lot of glue code. +Any changes MUST be reflected here. + +dbus-init.cpp: This is where the interface is exposed when Inkscape starts up. +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. + +org.inkscape.service.in: This sets where DBus looks for the Inkscape executable +if it is not running when someone tries to connect. Needs work. + +pytester.py: A python script that tests a lot of dbus functions. + +doc/builddocs.sh: builds documentation out of the XML files and some others. + +config.xsl, dbus-introspect-docs.dtd, spec-to-docbook.xsl, docbook.css: I borrowed +these files, they set how the documentation looks, I have no idea how to edit them. + +doc/inkscapeDbusRef.xml: This is the top level file for laying out th documentation, +it also includes the introduction. + +doc/inkscapeDbusTerms.xml: This containes the terms sections of the documentation. +Also the overview and all the tutorials. + +*.ref.xml: These are intermediate files, do not edit. + +wrapper/inkscape-dbus-wrapper.c: This is actually completely seperate from inkscape. +It has a wrapper for each function in the document interface and includes the +client generated bindings. It is used to create a shared object that will allow +people to use the interface without even knowing anything about Dbus. + BUGS: *Inkscape crashes if widow is closed while code is running, need better error handling. @@ -15,14 +59,15 @@ BUGS: *The following do not behave like the documentation: -document_interface_transform -document_interface_text + + *Service file should point to wherever the inkscape executable + was placed. EFFICIENCY: *Need better way to retrive objects by name. Switch to GQuark codes for object retrival? *Rethink how often activate_desktop needs to be called. - - FEATURES: *Find out more about extension API. -- 2.30.2