/usr/share/gtk-doc/html/libpanel-applet/getting-started.concepts.html is in libpanel-applet-doc 1:3.18.2-1ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Concepts: Panel Applet Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="index.html" title="Panel Applet Reference Manual">
<link rel="up" href="getting-started.html" title="Part II. Getting Started with the Panel Applet library">
<link rel="prev" href="getting-started.intro.html" title="Introduction">
<link rel="next" href="getting-started.concepts.applet-instances.html" title="Applet Instances">
<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="getting-started.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="getting-started.intro.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="getting-started.concepts.applet-instances.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
<a name="getting-started.concepts"></a>Concepts</h2></div></div></div>
<div class="toc"><dl class="toc">
<dt><span class="sect1"><a href="getting-started.concepts.html#id-1.3.3.4">Applet Registration</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="getting-started.concepts.html#id-1.3.3.4.3">Panel Applet Files</a></span></dt>
<dt><span class="sect2"><a href="getting-started.concepts.html#getting-started.concepts.applet-types">Applet Types</a></span></dt>
<dt><span class="sect2"><a href="getting-started.concepts.html#getting-started.concepts.applet-factory">Applet Factory</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="getting-started.concepts.applet-instances.html">Applet Instances</a></span></dt>
</dl></div>
<p>
In order to write an applet it is important to understand the relationships between GNOME Panel and your
applets. For example, how are applets registered to the GNOME Panel? How does the GNOME Panel instantiate an
applet?
</p>
<p>
On a typical desktop there can be multiple GNOME Panels and each GNOME Panel can have several instances of
your applet. These different instances are created by an <span class="emphasis"><em>applet factory</em></span> which must be
registered to the GNOME Panel. Additionally, in order to identify your applet and instantiate the correct
applet, each applet is identified by an <span class="emphasis"><em>applet type</em></span>.
</p>
<div class="sect1">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="id-1.3.3.4"></a>Applet Registration</h2></div></div></div>
<p>
To make your applets and the applet factory known to GNOME Panel - so that it can show your
applet in the list of applets of the "Add to Panel" dialog - and to add applets to the panel, you
must create a Panel Applet File.
<a class="link" href="getting-started.install.html#getting-started.install.panel-applet" title="Panel Applet File Syntax">Panel Applet files</a> are introduced in more
detail later in this document. However it is important for applet authors to understand the relationship
between <span class="emphasis"><em>the panel applet file</em></span>, <span class="emphasis"><em>the applet factory</em></span>, and the
<span class="emphasis"><em>applet type</em></span>. Therefore this section contains a short example of a Panel Applet file.
</p>
<div class="sect2">
<div class="titlepage"><div><div><h3 class="title">
<a name="id-1.3.3.4.3"></a>Panel Applet Files</h3></div></div></div>
<p>
<a class="link" href="getting-started.install.html#getting-started.install.panel-applet" title="Panel Applet File Syntax">Panel Applet files</a> are
<code class="constant">ini</code>-file formatted files that contain the necessary information about your
factory and your applet types. The following example listing shows a simple Panel Applet file.
</p>
<div class="informalexample"><pre class="programlisting">
[Applet Factory]
Id=HelloWorldFactory
Name=Hello World Applet Factory
Description=Factory for our example applets
[HelloWorldApplet]
Name=Hello World
Description=The Hello World example applet
Icon=hello-world-icon
</pre></div>
</div>
<div class="sect2">
<div class="titlepage"><div><div><h3 class="title">
<a name="getting-started.concepts.applet-types"></a>Applet Types</h3></div></div></div>
<p>
The applet type is the identifier representing a type of applets to the panel. It is a simple string,
like <code class="constant">HelloWorldApplet</code> and is unique per
<a class="link" href="getting-started.concepts.html#getting-started.concepts.applet-factory" title="Applet Factory">applet factory</a>.
</p>
<div class="note"><p>
In the example listing above the applet type can be found in the second section title
(e.g. <code class="constant">[HelloWorldApplet]</code>, but without the square brackets).
</p></div>
</div>
<div class="sect2">
<div class="titlepage"><div><div><h3 class="title">
<a name="getting-started.concepts.applet-factory"></a>Applet Factory</h3></div></div></div>
<p>
The applet factory is an implementation detail that is mostly hidden by the Panel Applet Library,
but it still appears in a few places such as:
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p>
The <a class="link" href="libpanel-applet-Panel-Applet-Factory.html#PANEL-APPLET-OUT-PROCESS-FACTORY:CAPS" title="PANEL_APPLET_OUT_PROCESS_FACTORY()">
<code class="function">PANEL_APPLET_OUT_PROCESS_FACTORY()</code></a> macro, which is used to build
out process applets. It gets the factory id passed as its first parameter.
</p></li>
<li class="listitem"><p>
The <a class="link" href="libpanel-applet-Panel-Applet-Factory.html#PANEL-APPLET-IN-PROCESS-FACTORY:CAPS" title="PANEL_APPLET_IN_PROCESS_FACTORY()">
<code class="function">PANEL_APPLET_IN_PROCESS_FACTORY()</code></a> macro, which is used to build in
process applets. It gets the factory id passed as its first parameter.
</p></li>
<li class="listitem">
<p>
A Panel Applet file, which is used to register applet types and the applet factory to the
GNOME Panel. It must contain the same applet factory id as used in the above two macros.
</p>
<div class="warning"><p>By default applets are out-process, if you have used the
<code class="function">PANEL_APPLET_IN_PROCESS_FACTORY</code>, then you must add:
<code class="constant">InProces=true</code> to the <code class="constant">[Applet Factory]</code>
section.
</p></div>
</li>
</ul></div>
<p>
</p>
<p>
The applet factory is the object that will create a new applet instance when the panel requests a
new applet to be created. It is identified with a simple string id, for example
<code class="constant">HelloWorldFactory</code>.
</p>
<div class="note"><p>
In the example listing above the applet factory id can be found in the
<code class="constant">ID</code>-field of the <code class="constant">[Applet Factory]</code> section.
</p></div>
<p>
The requests the applet factory will receive from the GNOME Panel specify which type of applet should be created.
This is what makes it possible to have more than one applet type in one applet binary. In most cases, however, the
applet factory will be specific to only one applet type.
</p>
<p>
There is only one applet factory per applet binary, and it is always running before any applet instance is
created by the applet binary. The applet factory is created via one of these two macros:
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p><a class="link" href="libpanel-applet-Panel-Applet-Factory.html#PANEL-APPLET-OUT-PROCESS-FACTORY:CAPS" title="PANEL_APPLET_OUT_PROCESS_FACTORY()"><code class="function">PANEL_APPLET_OUT_PROCESS_FACTORY()</code></a></p></li>
<li class="listitem"><p><a class="link" href="libpanel-applet-Panel-Applet-Factory.html#PANEL-APPLET-IN-PROCESS-FACTORY:CAPS" title="PANEL_APPLET_IN_PROCESS_FACTORY()"><code class="function">PANEL_APPLET_IN_PROCESS_FACTORY()</code></a></p></li>
</ul></div>
<p>
</p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.24</div>
</body>
</html>
|