doc/SIGNAL-HOWTO.dox

Fri, 31 Jan 2014 14:47:31 +0100

author
Tomasz Wasilczyk <twasilczyk@pidgin.im>
date
Fri, 31 Jan 2014 14:47:31 +0100
changeset 35312
add13288757e
parent 34960
c28b627a2900
permissions
-rw-r--r--

Remove more GtkImHtml dependencies (from perl and two other plugins)

18660
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
1 /** @page signal-howto Signals HOWTO
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
2
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
3 @section Introduction
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
4 The libpurple signals interface is used for general event notification, such
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
5 as plugins being loaded or unloaded, allowing the GUI frontend to respond
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
6 appropriately to changing internal data. Unfortunately, its use is not at all
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
7 obvious from the information in the header files. This document uses code
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
8 snippets from the Pidgin/libpurple plugin systems to illustrate the proper
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
9 use of signals.
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
10
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
11 @section overview Overview of Signals
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
12 Signals in libpurple are very similar to those in GTK+. When certain events
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
13 happen, a named signal is "emitted" from a certain object. Emitting the
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
14 signal triggers a series of callbacks that have been "connected" to that
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
15 signal for that object. These callbacks take appropriate action in response
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
16 to the signal.
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
17
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
18 @section registering_signal Registering a Signal
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
19 The first step of using a signal is registering it with libpurple so that
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
20 callbacks may be connected to it. This is done using purple_signal_register()
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
21 Here is a slightly modified example from @c purple_plugins_init in
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
22 @c libpurple/plugin.c :
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
23
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
24 @code
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
25 purple_signal_register( purple_plugins_get_handle(), /* Instance */
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
26 "plugin-load", /* Signal name */
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
27 purple_marshal_VOID__POINTER,/* Marshal function */
34960
c28b627a2900 Updated SIGNAL-HOWTO to use GTypes instead of purple_value_new()
Ankit Vani <a@nevitus.org>
parents: 34800
diff changeset
28 G_TYPE_NONE, /* Callback return type */
18660
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
29 1, /* Number of callback arguments (not including void *data) */
34960
c28b627a2900 Updated SIGNAL-HOWTO to use GTypes instead of purple_value_new()
Ankit Vani <a@nevitus.org>
parents: 34800
diff changeset
30 PURPLE_TYPE_PLUGIN /* Type of first callback argument */
18660
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
31 );
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
32 @endcode
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
33
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
34 @subsection Instance
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
35 A reference to the object from which this signal is emitted, and to which
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
36 potential callbacks should be connected. In this case, it will be the entire
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
37 plugin module emitting the signal.
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
38
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
39 @subsection signalname Signal Name
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
40 Unique identifier for the signal itself.
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
41
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
42 @subsection therest Callback function definition
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
43 The rest of the arguments specify the form of the callback function.
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
44
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
45 @subsubsection marshalfunc Marshal Function
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
46 @c purple_marshal_VOID__POINTER represents the callback function prototype,
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
47 not including a "data" argument, explained later. The form is
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
48 @c purple_marshal_RETURNVALUETYPE__ARG1TYPE_ARG2TYPE_ETC. See signals.h for
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
49 more possible types.
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
50
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
51 In this case, the callback will have the form
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
52 @code
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
53 void cb(void *arg1, void *data)
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
54 @endcode
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
55
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
56 If @c purple_marshal_BOOLEAN__POINTER_POINTER_POINTER were specified, it
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
57 would be:
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
58 @code
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
59 gboolean cb(void *arg1, void *arg2, void *arg3, void *data)
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
60 @endcode
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
61
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
62 The @c void @c *data argument at the end of each callback function
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
63 provides the data argument given to purple_signal_connect() .
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
64
34960
c28b627a2900 Updated SIGNAL-HOWTO to use GTypes instead of purple_value_new()
Ankit Vani <a@nevitus.org>
parents: 34800
diff changeset
65 @subsubsection cb_ret_type Callback return type
c28b627a2900 Updated SIGNAL-HOWTO to use GTypes instead of purple_value_new()
Ankit Vani <a@nevitus.org>
parents: 34800
diff changeset
66 In our case, this is G_TYPE_NONE, meaning "returns void".
18660
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
67 @todo This could be described better.
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
68
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
69 @subsubsection num_args Number of arguments
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
70 The number of arguments (not including @c data ) that the callback function
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
71 will take.
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
72
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
73 @subsubsection type_arg Type of argument
34960
c28b627a2900 Updated SIGNAL-HOWTO to use GTypes instead of purple_value_new()
Ankit Vani <a@nevitus.org>
parents: 34800
diff changeset
74 @c PURPLE_TYPE_PLUGIN specifies that the first argument given to the callback
c28b627a2900 Updated SIGNAL-HOWTO to use GTypes instead of purple_value_new()
Ankit Vani <a@nevitus.org>
parents: 34800
diff changeset
75 will be a @c PurplePlugin* . You will need as many "type of argument"
c28b627a2900 Updated SIGNAL-HOWTO to use GTypes instead of purple_value_new()
Ankit Vani <a@nevitus.org>
parents: 34800
diff changeset
76 arguments to purple_signal_register() as you specified in
c28b627a2900 Updated SIGNAL-HOWTO to use GTypes instead of purple_value_new()
Ankit Vani <a@nevitus.org>
parents: 34800
diff changeset
77 "Number of arguments" above.
18660
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
78
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
79 @todo Describe this more.
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
80
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
81 @section connect Connecting to the signal
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
82 Once the signal is registered, you can connect callbacks to it. First, you
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
83 must define a callback function, such as this one from gtkplugin.c :
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
84 @code
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
85 static void plugin_load_cb(PurplePlugin *plugin, gpointer data)
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
86 {
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
87 GtkTreeView *view = (GtkTreeView *)data;
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
88 plugin_loading_common(plugin, view, TRUE);
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
89 }
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
90 @endcode
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
91 Note that the callback function prototype matches that specified in the call
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
92 to purple_signal_register() above.
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
93
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
94 Once the callback function is defined, you can connect it to the signal.
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
95 Again from gtkplugin.c , in @c pidgin_plugin_dialog_show() :
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
96 @code
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
97 purple_signal_connect(purple_plugins_get_handle(), "plugin-load", /* What to connect to */
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
98 plugin_dialog, /* Object receiving the signal */
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
99 PURPLE_CALLBACK(plugin_load_cb), /* Callback function */
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
100 event_view, /* Data to pass to the callback function
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
101 );
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
102 @endcode
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
103
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
104 The first two arguments ("What to connect to") specify the object emitting
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
105 the signal (the plugin module) and what signal to listen for ("plugin-load").
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
106
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
107 The object receiving the signal is @c plugin_dialog , the Pidgin plugins
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
108 dialog. When @c plugin_dialog is deleted, then
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
109 @c purple_signals_disconnect_by_handle(plugin_dialog) should be called to
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
110 remove all signal connections it is associated with.
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
111
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
112 The callback function is given using a helper macro, and finally the
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
113 @c data argument to be passed to @c plugin_load_cb is given as @c event_view,
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
114 a pointer to the GTK widget that @c plugin_load_cb needs to update.
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
115
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
116 @section emit-signal Emitting a signal
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
117 Connecting callbacks to signals is all well and good, but how do you "fire"
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
118 the signal and trigger the callback? At some point, you must "emit" the
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
119 signal, which immediately calls all connected callbacks.
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
120
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
121 As seen in @c purple_plugin_load() in plugin.c :
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
122 @code
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
123 purple_signal_emit(purple_plugins_get_handle(), "plugin-load", plugin);
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
124 @endcode
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
125 This causes the signal "plugin-load" to be emitted from the plugin module
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
126 (given by @c purple_plugins_get_handle() ), with the newly loaded plugin as
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
127 the argument to pass to any registered callback functions.
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
128
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
129 In our example, @c plugin_load_cb is called immediately as
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
130 @code
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
131 plugin_load_cb(plugin, event_view);
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
132 @endcode
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
133 and does whatever it does.
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
134
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
135 */

mercurial