.. _ch-plugins: +++++++ Plugins +++++++ Ginga is written so that most of the functionality of the program is achieved through the use of plugins. This modular approach allows a large degree of flexibility and customization, as well as making overall design and maintenance of the program simpler. Plugins are divided into two types: *global* and *local*. A global plugin is not tied to any particular channel, while a local plugin is associated with a channel. Global and local plugins are further distinguished by whether they are a *singleton* (the default case) or not. If a global plugin is a singleton, then only one instance of it can be opened; if not, then multiple instances of it can be opened. If a local plugin is a singleton, then only one instance of it can be opened *per channel*; if not, then multiple instances can be opened per channel. Many global plugins are written to respond to a switch of the focus between channels. If you focus a channel viewer (e.g. by clicking on it, or selecting the channel in the Operations plugin), a global plugin will respond to the change by updating itself, while a local plugin will normally remain unchanged if the channel is switched, because its operation is specific to a given channel. (Ginga's concept of channels is discussed in :ref:`concepts-channels`.) This chapter describes the set of plugins that come with Ginga. Those interested in writing their own custom plugins should refer to :ref:`sec-writing-global-plugins` or :ref:`sec-writing-local-plugins`. .. _sec-globalplugins: ============== Global plugins ============== .. toctree:: :maxdepth: 1 plugins_global/toolbar plugins_global/pan plugins_global/info plugins_global/header plugins_global/zoom plugins_global/thumbs plugins_global/contents plugins_global/colorbar plugins_global/cursor plugins_global/operations plugins_global/fbrowser plugins_global/colormappicker plugins_global/errors plugins_global/rc plugins_global/wcsmatch plugins_global/changehistory plugins_global/samp plugins_global/log plugins_global/command plugins_global/saveimage plugins_global/downloads plugins_global/loaderconfig plugins_global/pluginconfig .. _sec-localplugins: ============= Local plugins ============= An *operation* is the activation of a local plugin to perform some function. The plugin manager toolbar at the bottom of the center pane is the graphical way to start an operation. .. toctree:: :maxdepth: 1 plugins_local/pick plugins_local/ruler plugins_local/multidim plugins_local/cuts plugins_local/histogram plugins_local/crosshair plugins_local/overlays plugins_local/wcsaxes plugins_local/tvmark plugins_local/tvmask plugins_local/blink plugins_local/lineprofile plugins_local/pixtable plugins_local/preferences plugins_local/catalogs plugins_local/mosaic plugins_local/collage plugins_local/drawing plugins_local/fbrowser plugins_local/colormappicker plugins_local/compose plugins_local/plottable plugins_local/pipeline plugins_local/screenshot plugins_local/autoload