image/svg+xml Module subsystem (src/modules/*) SPModules (aka plugins) handle filtering, input and export of SPModuleDocs (wrapped SPDocuments) and to eventually encompass more functionality like e.g. providing tool implementations. New Renderer (src/libnr/*) New Renderer Typesetting (src/libnr/libnrtype/*) Display Glue (src/display/*) View subsystem (src/view.*, src/desktop*.*, src/svg-view.* and others) SPView is an abstract class representing a "view" of an SPDocument. It has a companion SPViewWidget class for the associated display widget. SPDesktop is an editable SPView, and SPSVGView is a display-only view (e.g. the about box). Both maintain an SPCanvas and provide an SPCanvasArena for SPObjects to display on. They have associated SPViewWidget subclasses: SPDesktopWidget and SPSVGViewWidget. SPDesktop is also responsible for maintaining the current selection in an SPSelection. SPDesktopWidget isn't just a bare canvas; it includes the scrollbars and other decorations. SPEventContexts handle tool state and interaction. This subsystem provides a lightweight arena abstraction. NRArena - a collection of lightweight renderable NRArenaItems. SPCanvasArena - an SPCanvasItem that renders the contents of an NRArena. The new rendering subsystem mostly replaces libart. It renders filled/stroked bezier curves and polygons into NRPixBlocks (image buffers) Adaptor routines for using Xft, Win32, Gnome, and Freetype 2 to manage font metrics and outlines. SPCanvas - handles input events SPCanvasItem - objects that can be displayed on SPCanvas SVG Canvas (src/helper/sp-canvas*) SVG document model (src/sp-*.h and others) Enforces validity constraints on the SPRepr document. SPDocument - an SVG document containing SPObjects. SPObjects - handles short term changes & propagates longer term ones to the SPRepr SPItems - SPObjects that can be rendered. They have hide() and show() methods for creating an associated NRArenaItem in a given NRArena. XML doc model (src/xml/*) SPRepr - node in an XML document (elements, attributes, and text nodes). Transactions are logged for replaying/undoing changes. Cruft subsystem - (src/svg/*) Assorted stuff left over from when Sodipodi forked from Gill which doesn't have a better home. Inkscape Graphical User Interface (src/widgets, src/dialogs) widgets/* - Utilities and custom widgets to assist in implementing the Inkscape GUI and to enforce a common look and feel style across the application. dialogs/* - Code for creating the various UI dialogs in the application. dialogs/xml-tree.* - Code for creating and maintaining an interface for editing XML trees.