ScripterNG/Development: Difference between revisions
Jump to navigation
Jump to search
Line 43: | Line 43: | ||
== API ideas == | == 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 == | == Other important TODO == |
Revision as of 23:16, 19 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
- connect/sync Scribus documents with a database or content management system
- Web_optimised_PDF
- spell checker
- MathML importer by converting to SVG
- HTML exporter
- Use PyUno to use OpenOffice filters to import any text format supported by OpenOffice
- fullscreen feature
- Python editor/console
- Macro recorder
- import richtext (RTF) with pyrtf-ng
- Autotext for quotation marks, stared text gets bold, space after comma and period, etc.
- OpenClipArt browser/importer. Same for Flickr/some creative commons media repository
- provide external control via XMLRPC or DBus
- wizards to create calendars, business cards, letters
- alternative properties palette (for experiments or special use cases) - example
- simple irc client dock window to get instant help and for live colaboration
- import plots from gnuplot as svg
- import CSV (or Excel with xlrd) into table
- import scanned images (Sane on Unix with Python Imaging Library)
- advanced search&replace with regular expressions
- an alternative story editor in fullscreen mode like PyRoom
- ghns-client (get hot new stuff) for ScribusStuff
- mail merge
- clippy ;-)
Requirements to implement above scripts
- call gettext importer api
- call pdf exporter
- event hooks (selection changed, document changed,
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(..)
- activeDocument.layers / activeDocument.activeLayer (property)
- 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
Links
(will lookup my bookmarks)
- ScripterNG/Development/PortingOldScripter
- Integration of scripting languages into C++/Qt applications
- Examples about how other projects solved this topic
- InDesign scripting with JavaScript