summaryrefslogtreecommitdiffstats
path: root/krita/plugins/README
diff options
context:
space:
mode:
Diffstat (limited to 'krita/plugins/README')
-rw-r--r--krita/plugins/README42
1 files changed, 42 insertions, 0 deletions
diff --git a/krita/plugins/README b/krita/plugins/README
new file mode 100644
index 00000000..31518552
--- /dev/null
+++ b/krita/plugins/README
@@ -0,0 +1,42 @@
+About plugins
+
+Plugins are components with a GUI that perform some action for Krita.
+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 Krita:
+
+* Tools
+
+ Tools have the Krita/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 Krita/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 Krita/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 Krita/Plugin. They are not loaded automatically by
+ the KParts mechanism; please do not create ordinary kparts that are to
+ be loaded by the Krita view since KParts are not versioned.