Mon, 12 Dec 2005 07:35:43 +0000
[gaim-migrate @ 14773]
SF Patch #1377719 from Evan Schoenberg
"A recent reorganization of how the chat_add_users() conversation UI op is
sent removed passing to the UI of whether the additions are new arrivals
or not. This information lets the UI make decisions about how to handle
the new people, what if anything to display, etc."
committer: Richard Laager <rlaager@pidgin.im>
|
11174
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
1 | /** |
|
11501
a8fc92026134
[gaim-migrate @ 13746]
Richard Laager <rlaager@pidgin.im>
parents:
11187
diff
changeset
|
2 | * @file dbus-bindings.h Gaim DBUS Bindings |
|
11174
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
3 | * @ingroup core |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
4 | * |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
5 | * gaim |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
6 | * |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
7 | * Gaim is the legal property of its developers, whose names are too numerous |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
8 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
9 | * source distribution. |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
10 | * |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
11 | * This program is free software; you can redistribute it and/or modify |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
12 | * it under the terms of the GNU General Public License as published by |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
13 | * the Free Software Foundation; either version 2 of the License, or |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
14 | * (at your option) any later version. |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
15 | * |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
16 | * This program is distributed in the hope that it will be useful, |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
19 | * GNU General Public License for more details. |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
20 | * |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
21 | * You should have received a copy of the GNU General Public License |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
22 | * along with this program; if not, write to the Free Software |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
23 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
24 | * |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
25 | */ |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
26 | |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
27 | #ifndef _GAIM_DBUS_BINDINGS_H_ |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
28 | #define _GAIM_DBUS_BINDINGS_H_ |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
29 | |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
30 | #include <dbus/dbus.h> |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
31 | #include <dbus/dbus-glib-lowlevel.h> |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
32 | #include <glib.h> |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
33 | |
|
11884
44f2000e6d64
[gaim-migrate @ 14175]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11501
diff
changeset
|
34 | #ifdef __cplusplus |
|
44f2000e6d64
[gaim-migrate @ 14175]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11501
diff
changeset
|
35 | extern "C" { |
|
44f2000e6d64
[gaim-migrate @ 14175]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11501
diff
changeset
|
36 | #endif |
|
44f2000e6d64
[gaim-migrate @ 14175]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11501
diff
changeset
|
37 | |
|
11174
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
38 | gint gaim_dbus_pointer_to_id(gpointer node); |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
39 | gpointer gaim_dbus_id_to_pointer(gint id, GaimDBusType *type); |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
40 | gint gaim_dbus_pointer_to_id_error(gpointer ptr, DBusError *error); |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
41 | gpointer gaim_dbus_id_to_pointer_error(gint id, GaimDBusType *type, |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
42 | const char *typename, DBusError *error); |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
43 | |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
44 | #define NULLIFY(id) id = empty_to_null(id) |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
45 | |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
46 | #define CHECK_ERROR(error) if (dbus_error_is_set(error)) return NULL; |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
47 | |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
48 | #define GAIM_DBUS_ID_TO_POINTER(ptr, id, type, error) \ |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
49 | G_STMT_START { \ |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
50 | ptr = (type*) gaim_dbus_id_to_pointer_error \ |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
51 | (id, GAIM_DBUS_TYPE(type), #type, error); \ |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
52 | CHECK_ERROR(error); \ |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
53 | } G_STMT_END |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
54 | |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
55 | |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
56 | #define GAIM_DBUS_POINTER_TO_ID(id, ptr, error) \ |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
57 | G_STMT_START { \ |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
58 | id = gaim_dbus_pointer_to_id_error(ptr,error); \ |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
59 | CHECK_ERROR(error); \ |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
60 | } G_STMT_END |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
61 | |
|
11187
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
62 | |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
63 | dbus_bool_t |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
64 | gaim_dbus_message_get_args (DBusMessage *message, |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
65 | DBusError *error, |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
66 | int first_arg_type, |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
67 | ...); |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
68 | dbus_bool_t |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
69 | gaim_dbus_message_get_args_valist (DBusMessage *message, |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
70 | DBusError *error, |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
71 | int first_arg_type, |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
72 | va_list var_args); |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
73 | |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
74 | dbus_bool_t |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
75 | gaim_dbus_message_iter_get_args (DBusMessageIter *iter, |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
76 | DBusError *error, |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
77 | int first_arg_type, |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
78 | ...); |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
79 | |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
80 | dbus_bool_t |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
81 | gaim_dbus_message_iter_get_args_valist (DBusMessageIter *iter, |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
82 | DBusError *error, |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
83 | int first_arg_type, |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
84 | va_list var_args); |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
85 | |
|
11174
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
86 | dbus_int32_t* gaim_dbusify_GList(GList *list, gboolean free_memory, |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
87 | dbus_int32_t *len); |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
88 | dbus_int32_t* gaim_dbusify_GSList(GSList *list, gboolean free_memory, |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
89 | dbus_int32_t *len); |
|
11187
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
90 | gpointer* gaim_GList_to_array(GList *list, gboolean free_memory, |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
91 | dbus_int32_t *len); |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
92 | gpointer* gaim_GSList_to_array(GSList *list, gboolean free_memory, |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
93 | dbus_int32_t *len); |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
94 | GHashTable *gaim_dbus_iter_hash_table(DBusMessageIter *iter, DBusError *error); |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
95 | |
|
11174
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
96 | const char* empty_to_null(const char *str); |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
97 | const char* null_to_empty(const char *s); |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
98 | |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
99 | typedef struct { |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
100 | const char *name; |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
101 | const char *parameters; |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
102 | DBusMessage* (*handler)(DBusMessage *request, DBusError *error); |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
103 | } GaimDBusBinding; |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
104 | |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
105 | void gaim_dbus_register_bindings(void *handle, GaimDBusBinding *bindings); |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
106 | |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
107 | DBusConnection *gaim_dbus_get_connection(void); |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
108 | |
|
11884
44f2000e6d64
[gaim-migrate @ 14175]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11501
diff
changeset
|
109 | #ifdef __cplusplus |
|
44f2000e6d64
[gaim-migrate @ 14175]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11501
diff
changeset
|
110 | } |
|
11174
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
111 | #endif |
|
11884
44f2000e6d64
[gaim-migrate @ 14175]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11501
diff
changeset
|
112 | |
|
44f2000e6d64
[gaim-migrate @ 14175]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11501
diff
changeset
|
113 | #endif |