src/eventloop.h

Tue, 13 Jul 2004 03:20:46 +0000

author
Mark Doliner <markdoliner@pidgin.im>
date
Tue, 13 Jul 2004 03:20:46 +0000
changeset 9522
e38381bd8c05
parent 8797
378fe0e6c66d
child 10008
1de3454a0dca
permissions
-rw-r--r--

[gaim-migrate @ 10349]
gtk2.4 file chooserifying gtkimhtmltoolbar.c
I decided not to use gaim_request_file() here. There wasn't a lot
of other Gaim code in gtkimhtmltoolbar.c, and I figured it was
easy enough not to add to it. Besides, this dialog should have an
image preview, and to do that you can't use gtknotify.c
(not without modifying gtknotify.c, anyway, but that's out of the
scope of my changes)

8273
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
1 /**
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
2 * @file eventloop.h Gaim Event Loop API
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
3 * @ingroup core
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
4 *
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
5 * gaim
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
6 *
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
7 * Gaim is the legal property of its developers, whose names are too numerous
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
8 * to list here. Please refer to the COPYRIGHT file distributed with this
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
9 * source distribution.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
10 *
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
11 * This program is free software; you can redistribute it and/or modify
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
12 * it under the terms of the GNU General Public License as published by
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
13 * the Free Software Foundation; either version 2 of the License, or
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
14 * (at your option) any later version.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
15 *
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
16 * This program is distributed in the hope that it will be useful,
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
19 * GNU General Public License for more details.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
20 *
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
21 * You should have received a copy of the GNU General Public License
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
22 * along with this program; if not, write to the Free Software
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
24 */
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
25 #ifndef _GAIM_EVENTLOOP_H_
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
26 #define _GAIM_EVENTLOOP_H_
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
27
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
28 #include <glib.h>
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
29
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
30 #ifdef __cplusplus
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
31 extern "C" {
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
32 #endif
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
33
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
34 /**
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
35 * An input condition.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
36 */
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
37 typedef enum
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
38 {
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
39 GAIM_INPUT_READ = 1 << 0, /**< A read condition. */
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
40 GAIM_INPUT_WRITE = 1 << 1 /**< A write condition. */
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
41
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
42 } GaimInputCondition;
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
43
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
44 typedef void (*GaimInputFunction)(gpointer, gint, GaimInputCondition);
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
45
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
46 typedef struct _GaimEventLoopUiOps GaimEventLoopUiOps;
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
47
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
48 struct _GaimEventLoopUiOps
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
49 {
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
50 /**
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
51 * Creates a callback timer.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
52 * @see g_timeout_add, gaim_timeout_add
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
53 **/
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
54 guint (*timeout_add)(guint interval, GSourceFunc function, gpointer data);
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
55
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
56 /**
8287
266eacc707ac [gaim-migrate @ 9011]
Scott Lamb
parents: 8280
diff changeset
57 * Removes a callback timer.
266eacc707ac [gaim-migrate @ 9011]
Scott Lamb
parents: 8280
diff changeset
58 * @see gaim_timeout_remove, g_source_remove
266eacc707ac [gaim-migrate @ 9011]
Scott Lamb
parents: 8280
diff changeset
59 */
266eacc707ac [gaim-migrate @ 9011]
Scott Lamb
parents: 8280
diff changeset
60 guint (*timeout_remove)(guint handle);
266eacc707ac [gaim-migrate @ 9011]
Scott Lamb
parents: 8280
diff changeset
61
266eacc707ac [gaim-migrate @ 9011]
Scott Lamb
parents: 8280
diff changeset
62 /**
8273
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
63 * Adds an input handler.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
64 * @see gaim_input_add, g_io_add_watch_full
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
65 */
8280
f448633d3f3a [gaim-migrate @ 9004]
Scott Lamb
parents: 8273
diff changeset
66 guint (*input_add)(int fd, GaimInputCondition cond,
f448633d3f3a [gaim-migrate @ 9004]
Scott Lamb
parents: 8273
diff changeset
67 GaimInputFunction func, gpointer user_data);
8273
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
68
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
69 /**
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
70 * Removes an input handler.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
71 * @see gaim_input_remove, g_source_remove
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
72 */
8797
378fe0e6c66d [gaim-migrate @ 9559]
Mark Doliner <markdoliner@pidgin.im>
parents: 8387
diff changeset
73 guint (*input_remove)(guint handle);
8273
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
74 };
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
75
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
76 /**************************************************************************/
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
77 /** @name Event Loop API */
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
78 /**************************************************************************/
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
79 /*@{*/
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
80 /**
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
81 * Creates a callback timer.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
82 * The timer will repeat until the function returns <tt>FALSE</tt>. The
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
83 * first call will be at the end of the first interval.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
84 * @param interval The time between calls of the function, in
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
85 * milliseconds.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
86 * @param function The function to call.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
87 * @param data data to pass to <tt>function</tt>.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
88 **/
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
89 guint gaim_timeout_add(guint interval, GSourceFunc function, gpointer data);
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
90
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
91 /**
8287
266eacc707ac [gaim-migrate @ 9011]
Scott Lamb
parents: 8280
diff changeset
92 * Removes a timeout handler.
266eacc707ac [gaim-migrate @ 9011]
Scott Lamb
parents: 8280
diff changeset
93 *
266eacc707ac [gaim-migrate @ 9011]
Scott Lamb
parents: 8280
diff changeset
94 * @param handle The handle, as returned by gaim_timeout_add.
8387
381fc8b4f8f7 [gaim-migrate @ 9115]
Christian Hammond <chipx86@chipx86.com>
parents: 8287
diff changeset
95 *
381fc8b4f8f7 [gaim-migrate @ 9115]
Christian Hammond <chipx86@chipx86.com>
parents: 8287
diff changeset
96 * @return Something.
8287
266eacc707ac [gaim-migrate @ 9011]
Scott Lamb
parents: 8280
diff changeset
97 */
8387
381fc8b4f8f7 [gaim-migrate @ 9115]
Christian Hammond <chipx86@chipx86.com>
parents: 8287
diff changeset
98 guint gaim_timeout_remove(guint handle);
8287
266eacc707ac [gaim-migrate @ 9011]
Scott Lamb
parents: 8280
diff changeset
99
266eacc707ac [gaim-migrate @ 9011]
Scott Lamb
parents: 8280
diff changeset
100 /**
8273
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
101 * Adds an input handler.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
102 *
8280
f448633d3f3a [gaim-migrate @ 9004]
Scott Lamb
parents: 8273
diff changeset
103 * @param fd The input file descriptor.
8273
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
104 * @param cond The condition type.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
105 * @param func The callback function for data.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
106 * @param user_data User-specified data.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
107 *
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
108 * @return The resulting handle.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
109 * @see g_io_add_watch_full
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
110 */
8280
f448633d3f3a [gaim-migrate @ 9004]
Scott Lamb
parents: 8273
diff changeset
111 guint gaim_input_add(int fd, GaimInputCondition cond,
f448633d3f3a [gaim-migrate @ 9004]
Scott Lamb
parents: 8273
diff changeset
112 GaimInputFunction func, gpointer user_data);
8273
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
113
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
114 /**
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
115 * Removes an input handler.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
116 *
8280
f448633d3f3a [gaim-migrate @ 9004]
Scott Lamb
parents: 8273
diff changeset
117 * @param handle The handle of the input handler. Note that this is the return
f448633d3f3a [gaim-migrate @ 9004]
Scott Lamb
parents: 8273
diff changeset
118 * value from gaim_input_add, <i>not</i> the file descriptor.
8273
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
119 */
8797
378fe0e6c66d [gaim-migrate @ 9559]
Mark Doliner <markdoliner@pidgin.im>
parents: 8387
diff changeset
120 guint gaim_input_remove(guint handle);
8273
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
121
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
122 /*@}*/
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
123
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
124
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
125 /**************************************************************************/
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
126 /** @name UI Registration Functions */
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
127 /**************************************************************************/
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
128 /*@{*/
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
129 /**
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
130 * Sets the UI operations structure to be used for accounts.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
131 *
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
132 * @param ops The UI operations structure.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
133 */
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
134 void gaim_eventloop_set_ui_ops(GaimEventLoopUiOps *ops);
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
135
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
136 /**
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
137 * Returns the UI operations structure used for accounts.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
138 *
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
139 * @return The UI operations structure in use.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
140 */
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
141 GaimEventLoopUiOps *gaim_eventloop_get_ui_ops(void);
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
142
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
143 /*@}*/
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
144
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
145 #ifdef __cplusplus
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
146 }
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
147 #endif
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
148
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
149 #endif /* _GAIM_EVENTLOOP_H_ */

mercurial