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.