doc/SIGNAL-HOWTO.dox

Fri, 27 Jun 2008 01:29:59 +0000

author
Justin Rodriguez <ffdragon@soc.pidgin.im>
date
Fri, 27 Jun 2008 01:29:59 +0000
branch
soc.2008.themes
changeset 23649
5da5fe967d10
parent 19862
3aa48ac21c45
child 34800
00331d95b7d0
permissions
-rw-r--r--

Working sound themes (option 1) theme is saved in prefs and there is no seperate custom theme, everything
else is backwards compatiable, sound plays but the theme is not always found

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