Headless Inkscape

From Inkscape Wiki
Jump to navigation Jump to search

Goal of Creating a Headless Inkscape

Definition: An Inkscape version that does not need to be linked to the GTK libraries. Glib and Gio dependencies are OK.

GTK Dependencies

All GTK dependent files should be in src/ui. (Note, not all directories in src/ui are dependent on GTK.)

Directories that contain GTK code outside of src/ui:

  • testing/unittest.cpp (should probably be glibmm.h)
  • src
    • ege-color-prof-tracker.cpp (move to src/ui)
    • selection-chemistry.cpp (for clipboard)
    • shortcuts.cpp (GtkAccelGroup, GtkWidget, should be split/moved to src/ui)
    • inkscape-window.h/.cpp (OK... maybe move to src/ui)
    • inkview-application.h/.cpp (OK, will be replaced for headless version)
    • file.cpp (to be removed)
    • device-manager.cpp (move to ui)
    • inkscape.h/.cpp (to be removed)
    • verbs.cpp (filechooserdialog.h, messagedialog.h, to be removed)
    • file-update.cpp (ask user about DPI update, not sure what to do about this one)
    • desktop-events.cpp (move to ui)
    • event-log.h (move to ui)
  • src/display (probably OK)
  • src/libnrtype (for font-lister.h/font-lister.cpp, should move to ui)
  • src/debug (log-display-config.cpp)
  • src/trace (tracing dialog should be split out and moved to ui)
  • src/io (gtkmm/recentmanager.h, could be removed... used to locate previously used directories to search for broken links)
  • src/live_effects (This is a tough one, used everywhere. Probably UI needs to be split out.)
  • src/extension (Another tough one. UI needs to be split out.)
  • src/object (sp-namedview.cpp: to restore window geometry, function should be moved to ui; sp-image.cpp and color-profile.css: debug only, should be removed.)
  • helper (action.cpp, verb-action.h/.cpp: GTK button for verb, unneeded with Gio::Actions.)

There are surely many "indirect" dependencies on GTK that need to be tracked down.