Difference between revisions of "Source Directory Structure"

From Inkscape Wiki
Jump to navigation Jump to search
Line 6: Line 6:
 
*src
 
*src
 
**2geom<sup>†</sup>:        Geometry (move to library)
 
**2geom<sup>†</sup>:        Geometry (move to library)
**actions:      GActions, SPActions, Verbs (GActions to replace SPActions and Verbs)
+
**actions:      GActions, SPActions, Verbs, chemistry (GActions to replace SPActions and Verbs)
 +
***selection
 
**display<sup>†</sup>: (Rename 'render'?)
 
**display<sup>†</sup>: (Rename 'render'?)
 
***drawing:      Render SVG (DrawingItem and derived classes)
 
***drawing:      Render SVG (DrawingItem and derived classes)
 
****filters:      Render filters
 
****filters:      Render filters
 
***canvas:        UI controls (CanvasItem and derived classes)
 
***canvas:        UI controls (CanvasItem and derived classes)
***common
+
***<strike>common</strike>
 
**extension<sup>†</sup>
 
**extension<sup>†</sup>
 
***dbus<sup>†</sup>
 
***dbus<sup>†</sup>
Line 18: Line 19:
 
***etc.
 
***etc.
 
**io<sup>†</sup>:            Reading/writing files
 
**io<sup>†</sup>:            Reading/writing files
 +
*** svg
 
**libraries: (move parallel to 'src', rename 3rd party?)
 
**libraries: (move parallel to 'src', rename 3rd party?)
***libavoid
+
*** adaptagrams
***libcola
+
****libavoid
 +
****libcola
 +
****libvpsc
 
***libcroco
 
***libcroco
 
***libdepixelize
 
***libdepixelize
 
***potrace
 
***potrace
 
***etc.
 
***etc.
**manipulation:  Manipulation of SVG (divide into generic and UI dependent?)
+
**live-effects
***chemistry
 
***live-effects
 
***misc
 
***selection
 
***snap
 
 
**object<sup>†</sup>:      Object tree (e.g. SPRect)
 
**object<sup>†</sup>:      Object tree (e.g. SPRect)
 
***containers:  (e.g. group)
 
***containers:  (e.g. group)
Line 40: Line 39:
 
***dialog<sup>†</sup>:      Dialogs
 
***dialog<sup>†</sup>:      Dialogs
 
***menu:        Menus
 
***menu:        Menus
 +
***snap
 
***toolbar:      Toolbars
 
***toolbar:      Toolbars
 
***tool<sup>†</sup>:        Move to Manipulator
 
***tool<sup>†</sup>:        Move to Manipulator

Revision as of 15:16, 28 April 2018


Proposed directory structure for Inkscape's source code.

  • src
    • 2geom: Geometry (move to library)
    • actions: GActions, SPActions, Verbs, chemistry (GActions to replace SPActions and Verbs)
      • selection
    • display: (Rename 'render'?)
      • drawing: Render SVG (DrawingItem and derived classes)
        • filters: Render filters
      • canvas: UI controls (CanvasItem and derived classes)
      • common
    • extension
      • dbus
      • internal: (move to io)
      • plugins
      • etc.
    • io: Reading/writing files
      • svg
    • libraries: (move parallel to 'src', rename 3rd party?)
      • adaptagrams
        • libavoid
        • libcola
        • libvpsc
      • libcroco
      • libdepixelize
      • potrace
      • etc.
    • live-effects
    • object: Object tree (e.g. SPRect)
      • containers: (e.g. group)
      • shapes: (e.g. rect)
      • filters
      • etc.
    • ui
      • cache
      • dialog: Dialogs
      • menu: Menus
      • snap
      • toolbar: Toolbars
      • tool: Move to Manipulator
      • tools: Tools
      • view ?
      • widget
        • basic: Basic custom widgets (e.g. ink-combobox-entry)
        • composite: Composite widgets (e.g. simple-filter-modifier)
        • derived: (name?)
          • attribute: Widgets that change attributes
          • property: Widgets that change properties
          • preference: Widgets that change preferences
      • onscreen: (knots)
    • util: (Merge helper & util)
      • numeric
      • color
      • svg
    • xml: XML manipulation (Mostly SVG/Inkscape agnostic)

Already exists.

A more radical suggestion: Source Directory Structure Screaming Architecture