Source Directory Structure: Difference between revisions

From Inkscape Wiki
Jump to navigation Jump to search
Created page with " {{DevDiscussion}} Proposed directory structure for Inkscape's source code. *src **2geom<sup>†</sup> Geometry (move to library) **display<sup>†</sup> ***render..."
 
No edit summary
Line 6: Line 6:
*src
*src
**2geom<sup>†</sup>        Geometry (move to library)
**2geom<sup>†</sup>        Geometry (move to library)
**display<sup>†</sup>
**display<sup>†</sup> (Rename 'render'?)
***render        Render SVG
***render        Render SVG (if 'display' -> 'render', rename svg?)
****filters      Render filters
****filters      Render filters
***control      UI controls (layered above SVG)
***control      UI controls (layered above SVG)
Line 13: Line 13:
**extension<sup>†</sup>
**extension<sup>†</sup>
***dbus<sup>†</sup>
***dbus<sup>†</sup>
***internal<sup>†</sup>
***internal<sup>†</sup> (move to io)
***plugins<sup>†</sup>
***plugins<sup>†</sup>
***etc.
***etc.
**io<sup>†</sup>            Reading/writing files
**io<sup>†</sup>            Reading/writing files
**libraries
**libraries (move parallel to 'src'?, rename 3rd party?)
***libavoid
***libavoid
***libcola
***libcola
Line 26: Line 26:
**manipulation  Manipulation of SVG (divide into generic and UI dependent?)
**manipulation  Manipulation of SVG (divide into generic and UI dependent?)
***chemistry
***chemistry
***knots (maybe 'onscreen' with knots and snapping?)
***live-effects
***live-effects
***misc        
***misc
***selection
***selection
***snap
***snap
Line 37: Line 36:
***filters<sup>†</sup>
***filters<sup>†</sup>
***etc.
***etc.
**packaging
**ui<sup>†</sup>
**ui<sup>†</sup>
***cache<sup>†</sup>
***cache<sup>†</sup>
Line 54: Line 52:
*****property  Widgets that change properties
*****property  Widgets that change properties
*****preference Widgets that change preferences
*****preference Widgets that change preferences
***onscreen (knots)
**util<sup>†</sup>          (Merge helper & util)
**util<sup>†</sup>          (Merge helper & util)
***numeric
***numeric
***color
***color
**svg<sup>†</sup>       SVG utilities
***svg<sup>†</sup>
**xml<sup>†</sup>        XML manipulation  (Mostly SVG/Inkscape agnostic)
**xml<sup>†</sup>        XML manipulation  (Mostly SVG/Inkscape agnostic)


<sup>†</sup> Already exists.
<sup>†</sup> Already exists.
A more radical suggestion: [[Source Directory Structure Screaming Architecture]]

Revision as of 14:43, 29 March 2018


Proposed directory structure for Inkscape's source code.

  • src
    • 2geom† Geometry (move to library)
    • display† (Rename 'render'?)
      • render Render SVG (if 'display' -> 'render', rename svg?)
        • filters Render filters
      • control UI controls (layered above SVG)
      • util
    • extension†
      • dbus†
      • internal† (move to io)
      • plugins†
      • etc.
    • io† Reading/writing files
    • libraries (move parallel to 'src'?, rename 3rd party?)
      • libavoid
      • libcola
      • libcroco
      • libdepixelize
      • potrace
      • etc.
    • manipulation Manipulation of SVG (divide into generic and UI dependent?)
      • chemistry
      • live-effects
      • misc
      • selection
      • snap
      • verbs Verbs and SPActions
    • object† Object tree (e.g. SPRect)
      • containers (e.g. group)
      • shapes (e.g. rect)
      • filters†
      • etc.
    • ui†
      • cache†
      • dialog† Dialogs
      • menu Menus
      • toolbar Toolbars
      • tool† Move to Manipulator
      • tools Tools
      • view†  ?
      • widget†
        • action Actions (GTK or GIO)
        • 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