ScripterNG/Development: Difference between revisions

From Scribus Wiki
Jump to navigation Jump to search
Line 18: Line 18:
* fullscreen feature
* fullscreen feature
* [https://launchpad.net/codeaide Python editor/console]
* [https://launchpad.net/codeaide Python editor/console]
* Macro recorder
* [http://bugs.scribus.net/view.php?id=1630 Macro recorder]
* import richtext (RTF) with [http://code.google.com/p/pyrtf-ng/ pyrtf-ng]
* import richtext (RTF) with [http://code.google.com/p/pyrtf-ng/ pyrtf-ng]
* Autotext for quotation marks, stared text gets bold, space after comma and period, etc.
* Autotext for quotation marks, stared text gets bold, space after comma and period, etc.

Revision as of 03:53, 21 April 2010

Development on the new scripter

Documentation

  • How does the core (connecting Python to C++) work?
  • How can I add new functions?
  • How do I port code from older scripter to the new one?


Ideas for scripts and extensions

Requirements to implement above scripts

  • call gettext importer api
  • call pdf exporter
  • event hooks (selection changed, document changed,
  • access to (de)saxe api to (de)serialize pageitems
  • access to StoryText object

API ideas / missing APIs

  • Layers
    • activeDocument.layers / activeDocument.activeLayer (property)
      • layer.{visible, active, print, lock} (bool property)
      • layer.remove()
    • item.sentToLayer(layer_name)
    • activeDocument.newLayer(..)
  • Colors
    • activeDocument.colors (str list propery)
    • activeDocument.activeColor (property)
    • activeDocument.newColor(..)
  • Fonts
    • Scripter.{fontNames, xfontNames} (str list property)
    • Scripter.renderFont(..)
  • Guides
    • activePage.{horizontalGuides, verticalGuides} (double property list)
  • Selections
  • Text
  • Styles
  • Selections / Groups
  • GUI
    • Scripter.dialogs.valueInput
    • Scripter.dialogs.{openFilename, saveFilename, openDirectory}
    • Scripter.activeWindow.progess
    • Scripter.activeWindow.mouseCursorType
  • Misc
    • activeDocument.importPage
    • MasterPage-stuff
    • PageItem-Proxy: Currently a script can directly access a PageItem. It would be better if there is a thin layer between them.

Other important TODO

  • add i18n and integrate with rest of Scribus

Implementation of other Scripting languages

  • Perl
  • Ruby
  • JavaScript/QtScript

Links

(will lookup my bookmarks)