src/eventloop.c

Tue, 17 Feb 2004 02:17:48 +0000

author
Scott Lamb
date
Tue, 17 Feb 2004 02:17:48 +0000
changeset 8273
7882af5843e9
child 8280
f448633d3f3a
permissions
-rw-r--r--

[gaim-migrate @ 8997]
This is Scott Lamb's eventloop abstraction patch. If it breaks things,
Scott Lamb will be glad to take the punishment. If it doesn't, it should
make integration into other event loops easier. Well, no, not easier,
harder actually, but it'll be done more appropriately and less hackily..
er, hacky. Is hackily a word?

committer: Christian Hammond <chipx86@chipx86.com>

8273
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
1 /**
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
2 * @file eventloop.c 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 #include "eventloop.h"
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
26
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
27 static GaimEventLoopUiOps *eventloop_ui_ops = NULL;
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
28
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
29 guint
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
30 gaim_timeout_add(guint interval, GSourceFunc function, gpointer data)
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
31 {
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
32 GaimEventLoopUiOps *ops = gaim_eventloop_get_ui_ops();
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
33
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
34 return ops->timeout_add(interval, function, data);
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
35 }
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
36
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
37 gint
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
38 gaim_input_add(int source, GaimInputCondition condition, GaimInputFunction func, gpointer user_data)
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
39 {
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
40 GaimEventLoopUiOps *ops = gaim_eventloop_get_ui_ops();
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
41
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
42 return ops->input_add(source, condition, func, user_data);
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
43 }
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
44
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
45 void
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
46 gaim_input_remove(gint tag)
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
47 {
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
48 GaimEventLoopUiOps *ops = gaim_eventloop_get_ui_ops();
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
49
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
50 return ops->input_remove(tag);
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
51 }
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
52
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
53 void
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
54 gaim_eventloop_set_ui_ops(GaimEventLoopUiOps *ops)
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
55 {
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
56 eventloop_ui_ops = ops;
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
57 }
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
58
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
59 GaimEventLoopUiOps *
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
60 gaim_eventloop_get_ui_ops(void)
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
61 {
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
62 g_assert(eventloop_ui_ops != NULL);
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
63
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
64 return eventloop_ui_ops;
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
65 }
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
66
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
67

mercurial