summaryrefslogtreecommitdiffstats
path: root/chalk/doc/plugins.txt
blob: 2902adb8e6394c8e4b5dcc91235c7b605a9ea657 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
There are several kinds of plugins in Chalk: CoreModules and Plugins. Core modules
add functionality to Chalk but do not directly add to the user interface (menus and
toolbars). Plugins create actions.

All plugins register themselves with the appropriate registry:

KisToolRegistry -- tools like brush, crop etc. Tools are added to the menu and the tools
  box, but are special in that every view has a different instantiation of a tool for every
  pointer X11 presents to Chalk (mouse, stylus, eraser, other styluses for fancy wacom
  tablets).

KisColorSpaceRegistry -- color models like cmyk or rgb are core modules. These add the capability
  to load and save and edit images in a particular color model and bit depth. 
 
KisFilterRegistry -- Filters are a little mode complicated in that these are operations that
  should be available from many places in the application -- i.e, some tools build on 
  the availablity of filters, and filters can be building blocks in scripts -- but are
  also directly available from the filter menu.

KisPaintOpRegistry -- Paintops are plugins that define the way tools actually make
  marks on the canvas. Paintops have no independent life in the gui but can be shown
  in the toolbox.

KisPluginRegistry -- Plugins that do not fall into any of the previous categories. Examples
  are the GUI for scaling/resizing an image, select-by-colour etc. 


Chalk automatically adds filters to the items menu and tools to the tools menu; paintops
are managed in the paintop toolbox and the tool plugins add themselves to the tools toolbar.
This is done without referring to the XML gui buider. General plugins, like select-by-colour,
that are often gui wrappers around core functionality, are loaded using the ordinary
KDE plugin framework.