1 <chapter id=
"anjuta-architecture">
2 <title>Anjuta Architecture
</title>
4 libanjuta defines a component-based plugin framework for Anjuta. In
6 (
<link linkend=
"AnjutaShell"><type>AnjutaShell
</type></link>)
7 in which all plugins are loaded. Plugins can also merge
8 their UI and preferences in
9 <link linkend=
"AnjutaUI"><type>AnjutaUI
</type></link>
11 <link linkend=
"AnjutaPreferences"><type>AnjutaPreferences
</type></link>,
15 Plugins subclass
<link linkend=
"AnjutaPlugin"><type>AnjutaPlugin
</type></link>
16 abstract class and interact with each other using predefined interfaces.
17 They can also export objects with
<emphasis>Values System
</emphasis> in
18 <link linkend=
"AnjutaShell"><type>AnjutaShell
</type></link>.
21 Following diagram illustrates the architecture more clearly.
22 <figure id=
"anjuta-architecture-diagram">
23 <title>Architecture diagram
</title>
26 <imagedata fileref=
"anjuta-architecture.png" format=
"PNG"/>
32 <title>Plugins
</title>
34 Plugins are components which are loaded in shell at run time.
35 libanjuta framework provides a very generic communication framework
36 for plugins to interact and therefore it is upto the plugins to
37 device their own communication protocols. Essentially, it means
38 defining clear interfaces for the plugins. Plugins can also control
39 other plugins, like load, activate, deactivate or unload.