Difference between revisions of "Source Directory Structure"

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...")
 
 
(3 intermediate revisions by the same user not shown)
Line 5: Line 5:
  
 
*src
 
*src
**2geom<sup>†</sup>        Geometry (move to library)
+
**2geom<sup>†</sup>:         Geometry (move to library)
**display<sup>†</sup>
+
**actions:      GActions, SPActions, Verbs, chemistry (GActions to replace SPActions and Verbs)
***render        Render SVG
+
***selection
****filters      Render filters
+
**display<sup>†</sup>: (Rename 'render'?)
***control      UI controls (layered above SVG)
+
***drawing:      Render SVG (DrawingItem and derived classes)
***util
+
****filters:     Render filters
 +
***canvas:        UI controls (CanvasItem and derived classes)
 +
***<strike>common</strike>
 
**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
+
*** svg
***libavoid
+
**libraries: (move to "src/3rdparty")
***libcola
+
*** adaptagrams
 +
****libavoid
 +
****libcola
 +
****libvpsc
 
***libcroco
 
***libcroco
 
***libdepixelize
 
***libdepixelize
 
***potrace
 
***potrace
 
***etc.
 
***etc.
**manipulation  Manipulation of SVG (divide into generic and UI dependent?)
+
**live-effects
***chemistry
+
**object<sup>†</sup>:       Object tree (e.g. SPRect)
***knots (maybe 'onscreen' with knots and snapping?)
+
***containers:   (e.g. group)
***live-effects
+
***shapes:       (e.g. rect)
***misc       
 
***selection
 
***snap
 
***verbs        Verbs and SPActions
 
**object<sup>†</sup>      Object tree (e.g. SPRect)
 
***containers  (e.g. group)
 
***shapes      (e.g. rect)
 
 
***filters<sup>†</sup>
 
***filters<sup>†</sup>
 
***etc.
 
***etc.
**packaging
 
 
**ui<sup>†</sup>
 
**ui<sup>†</sup>
 
***cache<sup>†</sup>
 
***cache<sup>†</sup>
***dialog<sup>†</sup>      Dialogs
+
***dialog<sup>†</sup>:       Dialogs
***menu        Menus
+
***menu:         Menus
***toolbar      Toolbars
+
***snap
***tool<sup>†</sup>        Move to Manipulator
+
***toolbar:     Toolbars
***tools        Tools
+
***tool<sup>†</sup>:       Move to OnScreen, etc.
***view<sup>†</sup>        ?
+
***tools:       Tools
 +
***view<sup>†</sup>        What is this?
 
***widget<sup>†</sup>
 
***widget<sup>†</sup>
****action    Actions (GTK or GIO)
+
****basic:     Basic custom widgets (e.g. ink-combobox-entry)
****basic      Basic custom widgets (e.g. ink-combobox-entry)
+
****composite: Composite widgets (e.g. simple-filter-modifier)
****composite  Composite widgets (e.g. simple-filter-modifier)
+
****derived: (name?)
****derived (name?)
+
*****attribute: Widgets that change attributes
*****attribute  Widgets that change attributes
+
*****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]]

Latest revision as of 16:38, 29 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 to "src/3rdparty")
      • 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 OnScreen, etc.
      • tools: Tools
      • view What is this?
      • 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