Difference between revisions of "Extensions"
m (→Parameters) |
|||
| Line 30: | Line 30: | ||
* '''description''' | * '''description''' | ||
* '''notebook''' | * '''notebook''' | ||
See also [[INX Parameters]] | |||
==Extension Definition File (INX)== | ==Extension Definition File (INX)== | ||
Revision as of 11:01, 1 November 2010
This page is intended as a guide for providing new extensions for Inkscape. Currently the majority of extensions are provided as python scripts.
Extension types
The following extension types exist for Inkscape:
- input
- output
- effect
- path-effect - path effects are not currently implemented as extension but there is intention to migrate those over as entensions
Extension implementation
- Internal
- C++ implementation (directly in code)
- External
- scripts - written in python, perl or as system (console) scripts
- xslt transformations
- plugins - not fully implemented yet
Parameters
Extensions can be supplied with values obtained through easily definable parameters. Inkscape provides the basic GUI for user input. The following parameters are supported:
- integer
- string
- float
- boolean
- enum
- optiongroup
- colour
For the sake of the UI there are also the following two parameters that do not provide data to the extension but alter the user input GUI.
- description
- notebook
See also INX Parameters
Extension Definition File (INX)
All extensions are defined through Inkscape Extension Definition Files (.inx) which are XML files in the
http://www.inkscape.org/namespace/inkscape/extension
namespace and described by the Relax NG available [here]
Structure
Examples
RadioButton example
The following mark-up:
<?xml version="1.0" encoding="UTF-8"?>
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
<_name>RadioButton example</_name>
<id>org.inkscape.effect.radiobuttontest</id>
<param name="radio1" type="optiongroup" _gui-text="Select option: ">
<option value="string1">translatable string 1</option>
<option value="string2">string 2</option>
<option value="string3">test 3!</option>
</param>
<param name="radio2" type="optiongroup" _gui-text="Select second option: ">
<option value="string11">string1</option>
<option value="string22">string2</option>
<option>test3!</option>
</param>
<effect>
<object-type>all</object-type>
<effects-menu>
<submenu _name="Developer Examples"/>
</effects-menu>
</effect>
...
</inkscape-extension>
Will result in the following GUI being created:
i18n
To allow the .inx files to fit snugly into Inkscape's i18n infrastructure some XML elements and attributes are prefixed with an underscore (_) character to indicate that the containing text should be marked for translation.
