summaryrefslogtreecommitdiffstats
path: root/chalk/plugins/README
diff options
context:
space:
mode:
Diffstat (limited to 'chalk/plugins/README')
-rw-r--r--chalk/plugins/README42
1 files changed, 42 insertions, 0 deletions
diff --git a/chalk/plugins/README b/chalk/plugins/README
new file mode 100644
index 00000000..33af951e
--- /dev/null
+++ b/chalk/plugins/README
@@ -0,0 +1,42 @@
+About plugins
+
+Plugins are components with a GUI that perform some action for Chalk.
+Note that plugins are only loaded when a KisView is constructed; note
+also that every plugin is reloaded when a new KisView is created.
+
+Plugins are _not_ allowed to depend on each other. You may _not_
+#include a header file from a plugin anywhere but in that same plugin.
+You can however choose to group a cluster of related functions in
+one plugin, like with the selection tools.
+
+There are several kinds of plugins for Chalk:
+
+* Tools
+
+ Tools have the Chalk/Tool servicetype. A tool plugin registers
+ the tool factories it provides with the tool registry. A tool must descend
+ from the KisTool interface. There are several base classes for
+ specialized tools, like painting and non painting tools.
+
+* Paintops
+
+ Paintops implement methods for changing pixels that can be used
+ by painting tools. Examples are brush, pen, airbrush. Paintop plugins
+ have the Chalk/Paintop servicetype, register paintop factories they
+ provide the paintop registry. Paintops inherit KisPaintOp.
+
+* Filters
+
+ Filters implement methods of changin a rectangular area of pixels. Filter
+ plugins have the Chalk/Filter servicetype and are registered with
+ the filter registry. A filter inherits the KisFilter class and may
+ provide a configuration widget and a configuration object.
+
+* Extensions
+
+ Extensions are loaded by every view instance. They provide user interface
+ elements such as dialog boxes and wizards. Their parent is KisView and
+ they provide an .rc file to merge their gui with the view gui. Extensions
+ have the servicetype Chalk/Plugin. They are not loaded automatically by
+ the KParts mechanism; please do not create ordinary kparts that are to
+ be loaded by the Chalk view since KParts are not versioned.