doc/SIGNAL-HOWTO.dox

Sun, 03 Jun 2012 20:23:23 +0000

author
Elliott Sales de Andrade <qulogic@pidgin.im>
date
Sun, 03 Jun 2012 20:23:23 +0000
changeset 33011
861a290f5464
parent 19862
3aa48ac21c45
child 34800
00331d95b7d0
permissions
-rw-r--r--

Convert the XMPP Console entry to WebKit.

Only thing it doesn't do is auto-sizing the entry widget.

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 */
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
28 NULL, /* Callback return value type */
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) */
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
30 purple_value_new(PURPLE_TYPE_SUBTYPE,PURPLE_SUBTYPE_PLUGIN) /* Type of first callback argument */
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
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
65 @subsubsection cb_ret_type Callback return value type
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
66 In our case, this is NULL, meaning "returns void".
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
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
74 @c purple_value_new(PURPLE_TYPE_SUBTYPE,PURPLE_SUBTYPE_PLUGIN) specifies that
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
75 the first argument given to the callback will be a @c PurplePlugin* . You
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
76 will need as many "type of argument" arguments to purple_signal_register() as
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
77 you specified in "Number of arguments" above.
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
19862
3aa48ac21c45 This will silence a few warnings when building the Doxygen docs.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 18660
diff changeset
81 @see value.h
18660
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
82
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
83 @section connect Connecting to the signal
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
84 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
85 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
86 @code
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
87 static void plugin_load_cb(PurplePlugin *plugin, gpointer data)
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
88 {
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
89 GtkTreeView *view = (GtkTreeView *)data;
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
90 plugin_loading_common(plugin, view, TRUE);
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
91 }
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
92 @endcode
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
93 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
94 to purple_signal_register() above.
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
95
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
96 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
97 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
98 @code
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
99 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
100 plugin_dialog, /* Object receiving the signal */
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
101 PURPLE_CALLBACK(plugin_load_cb), /* Callback function */
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
102 event_view, /* Data to pass to the callback function
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 @endcode
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
105
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
106 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
107 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
108
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
109 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
110 dialog. When @c plugin_dialog is deleted, then
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
111 @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
112 remove all signal connections it is associated with.
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
113
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
114 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
115 @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
116 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
117
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
118 @section emit-signal Emitting a signal
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
119 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
120 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
121 signal, which immediately calls all connected callbacks.
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
122
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
123 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
124 @code
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
125 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
126 @endcode
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
127 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
128 (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
129 the argument to pass to any registered callback functions.
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
130
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
131 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
132 @code
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
133 plugin_load_cb(plugin, event_view);
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
134 @endcode
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
135 and does whatever it does.
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
136
e2feaa89d5f5 - Added a lovely Doxygen signals tutorial
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
137 */

mercurial