libpurple/purpleprotocol.c

Wed, 08 Feb 2023 08:59:47 -0600

author
Gary Kramlich <grim@reaperworld.com>
date
Wed, 08 Feb 2023 08:59:47 -0600
changeset 42049
16d2e16bd24f
parent 41960
c8a4853205e3
child 42290
2741f531a00e
permissions
-rw-r--r--

Export Account::error

I can't think of a good reason why we shouldn't expose the error property on
Accounts. But I would like to be able to set the error from the UI when there
is an error in the settings for example.

Testing Done:
Built the docs, ran the tests, used the prune connection action in the demo protocol plugin and verified everything was still working.

Reviewed at https://reviews.imfreedom.org/r/2216/

36560
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1 /*
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
2 * Purple - Internet Messaging Library
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
36560
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
4 *
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
5 * Purple is the legal property of its developers, whose names are too numerous
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
6 * to list here. Please refer to the COPYRIGHT file distributed with this
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
7 * source distribution.
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
8 *
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
9 * This program is free software; you can redistribute it and/or modify
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
10 * it under the terms of the GNU General Public License as published by
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
11 * the Free Software Foundation; either version 2 of the License, or
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
12 * (at your option) any later version.
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
13 *
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
14 * This program is distributed in the hope that it will be useful,
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
17 * GNU General Public License for more details.
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
18 *
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
19 * You should have received a copy of the GNU General Public License
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
20 * along with this program; if not, see <https://www.gnu.org/licenses/>.
36560
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
21 */
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
22
41155
922c9e70900c Rename protocol.[ch] to purpleprotocol.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 41149
diff changeset
23 #include "purpleprotocol.h"
36560
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
24
41181
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41155
diff changeset
25 #include "purpleaccountmanager.h"
41007
90d2dee9b3dc Fix the includes for the purpleenums rename
Gary Kramlich <grim@reaperworld.com>
parents: 40985
diff changeset
26 #include "purpleenums.h"
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
27
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
28 enum {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
29 PROP_0,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
30 PROP_ID,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
31 PROP_NAME,
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
32 PROP_DESCRIPTION,
41037
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
33 PROP_ICON_NAME,
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
34 PROP_ICON_SEARCH_PATH,
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
35 PROP_ICON_RESOURCE_PATH,
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
36 PROP_OPTIONS,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
37 N_PROPERTIES,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
38 };
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
39 static GParamSpec *properties[N_PROPERTIES] = { NULL, };
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
40
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
41 typedef struct {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
42 gchar *id;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
43 gchar *name;
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
44 gchar *description;
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
45
41037
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
46 gchar *icon_name;
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
47 gchar *icon_search_path;
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
48 gchar *icon_resource_path;
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
49
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
50 PurpleProtocolOptions options;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
51 } PurpleProtocolPrivate;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
52
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
53 G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE(PurpleProtocol, purple_protocol,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
54 G_TYPE_OBJECT)
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
55
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
56 /******************************************************************************
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
57 * Helpers
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
58 *****************************************************************************/
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
59 static void
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
60 purple_protocol_set_id(PurpleProtocol *protocol, const gchar *id) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
61 PurpleProtocolPrivate *priv = NULL;
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
62
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
63 priv = purple_protocol_get_instance_private(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
64 g_free(priv->id);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
65 priv->id = g_strdup(id);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
66
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
67 g_object_notify_by_pspec(G_OBJECT(protocol), properties[PROP_ID]);
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
68 }
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
69
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
70 static void
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
71 purple_protocol_set_name(PurpleProtocol *protocol, const gchar *name) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
72 PurpleProtocolPrivate *priv = NULL;
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
73
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
74 priv = purple_protocol_get_instance_private(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
75 g_free(priv->name);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
76 priv->name = g_strdup(name);
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
77
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
78 g_object_notify_by_pspec(G_OBJECT(protocol), properties[PROP_NAME]);
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
79 }
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
80
36686
9807e4acf281 Added PurpleProtocolOverrideFlags and purple_protocol_override()
Ankit Vani <a@nevitus.org>
parents: 36681
diff changeset
81 static void
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
82 purple_protocol_set_description(PurpleProtocol *protocol, const gchar *description) {
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
83 PurpleProtocolPrivate *priv = NULL;
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
84
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
85 priv = purple_protocol_get_instance_private(protocol);
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
86 g_free(priv->description);
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
87 priv->description = g_strdup(description);
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
88
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
89 g_object_notify_by_pspec(G_OBJECT(protocol), properties[PROP_DESCRIPTION]);
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
90 }
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
91
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
92 static void
41037
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
93 purple_protocol_set_icon_name(PurpleProtocol *protocol,
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
94 const gchar *icon_name)
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
95 {
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
96 PurpleProtocolPrivate *priv = NULL;
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
97
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
98 priv = purple_protocol_get_instance_private(protocol);
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
99
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
100 g_free(priv->icon_name);
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
101 priv->icon_name = g_strdup(icon_name);
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
102
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
103 g_object_notify_by_pspec(G_OBJECT(protocol), properties[PROP_ICON_NAME]);
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
104 }
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
105
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
106 static void
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
107 purple_protocol_set_icon_search_path(PurpleProtocol *protocol,
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
108 const gchar *path)
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
109 {
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
110 PurpleProtocolPrivate *priv = NULL;
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
111
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
112 priv = purple_protocol_get_instance_private(protocol);
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
113
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
114 g_free(priv->icon_search_path);
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
115 priv->icon_search_path = g_strdup(path);
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
116
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
117 g_object_notify_by_pspec(G_OBJECT(protocol),
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
118 properties[PROP_ICON_SEARCH_PATH]);
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
119 }
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
120
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
121 static void
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
122 purple_protocol_set_icon_resource_path(PurpleProtocol *protocol,
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
123 const gchar *path)
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
124 {
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
125 PurpleProtocolPrivate *priv = NULL;
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
126
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
127 priv = purple_protocol_get_instance_private(protocol);
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
128
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
129 g_free(priv->icon_resource_path);
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
130 priv->icon_resource_path = g_strdup(path);
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
131
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
132 g_object_notify_by_pspec(G_OBJECT(protocol),
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
133 properties[PROP_ICON_RESOURCE_PATH]);
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
134 }
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
135
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
136 static void
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
137 purple_protocol_set_options(PurpleProtocol *protocol,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
138 PurpleProtocolOptions options)
36686
9807e4acf281 Added PurpleProtocolOverrideFlags and purple_protocol_override()
Ankit Vani <a@nevitus.org>
parents: 36681
diff changeset
139 {
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
140 PurpleProtocolPrivate *priv = NULL;
36686
9807e4acf281 Added PurpleProtocolOverrideFlags and purple_protocol_override()
Ankit Vani <a@nevitus.org>
parents: 36681
diff changeset
141
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
142 priv = purple_protocol_get_instance_private(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
143 priv->options = options;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
144
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
145 g_object_notify_by_pspec(G_OBJECT(protocol), properties[PROP_OPTIONS]);
36686
9807e4acf281 Added PurpleProtocolOverrideFlags and purple_protocol_override()
Ankit Vani <a@nevitus.org>
parents: 36681
diff changeset
146 }
9807e4acf281 Added PurpleProtocolOverrideFlags and purple_protocol_override()
Ankit Vani <a@nevitus.org>
parents: 36681
diff changeset
147
41181
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41155
diff changeset
148 static void
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41155
diff changeset
149 purple_protocol_foreach_account_disconnect(PurpleAccount *account,
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41155
diff changeset
150 gpointer data)
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41155
diff changeset
151 {
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41155
diff changeset
152 const gchar *protocol_id = (const gchar *)data;
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41155
diff changeset
153
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41155
diff changeset
154 /* I'm not sure that we can finalize a protocol plugin if an account is
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41155
diff changeset
155 * still using it.. Right now accounts don't ref protocols, but maybe
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41155
diff changeset
156 * they should?
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41155
diff changeset
157 */
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41155
diff changeset
158 if(purple_account_is_disconnected(account)) {
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41155
diff changeset
159 return;
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41155
diff changeset
160 }
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41155
diff changeset
161
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41155
diff changeset
162 if(purple_strequal(protocol_id, purple_account_get_protocol_id(account))) {
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41155
diff changeset
163 purple_account_disconnect(account);
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41155
diff changeset
164 }
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41155
diff changeset
165 }
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41155
diff changeset
166
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
167 /******************************************************************************
41869
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
168 * PurpleProtocol Implementation
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
169 *****************************************************************************/
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
170 static PurpleConnection *
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
171 purple_protocol_default_create_connection(PurpleProtocol *protocol,
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
172 PurpleAccount *account,
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
173 const char *password,
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
174 G_GNUC_UNUSED GError **error)
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
175 {
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
176 return g_object_new(
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
177 PURPLE_TYPE_CONNECTION,
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
178 "protocol", protocol,
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
179 "account", account,
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
180 "password", password,
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
181 NULL);
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
182 }
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
183
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
184 /******************************************************************************
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
185 * GObject Implementation
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
186 *****************************************************************************/
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
187 static void
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
188 purple_protocol_get_property(GObject *obj, guint param_id, GValue *value,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
189 GParamSpec *pspec)
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
190 {
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
191 PurpleProtocol *protocol = PURPLE_PROTOCOL(obj);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
192
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
193 switch(param_id) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
194 case PROP_ID:
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
195 g_value_set_string(value, purple_protocol_get_id(protocol));
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
196 break;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
197 case PROP_NAME:
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
198 g_value_set_string(value, purple_protocol_get_name(protocol));
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
199 break;
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
200 case PROP_DESCRIPTION:
41037
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
201 g_value_set_string(value,
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
202 purple_protocol_get_description(protocol));
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
203 break;
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
204 case PROP_ICON_NAME:
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
205 g_value_set_string(value, purple_protocol_get_icon_name(protocol));
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
206 break;
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
207 case PROP_ICON_SEARCH_PATH:
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
208 g_value_set_string(value,
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
209 purple_protocol_get_icon_search_path(protocol));
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
210 break;
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
211 case PROP_ICON_RESOURCE_PATH:
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
212 g_value_set_string(value,
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
213 purple_protocol_get_icon_resource_path(protocol));
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
214 break;
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
215 case PROP_OPTIONS:
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
216 g_value_set_flags(value, purple_protocol_get_options(protocol));
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
217 break;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
218 default:
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
219 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
220 break;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
221 }
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
222 }
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
223
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
224 static void
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
225 purple_protocol_set_property(GObject *obj, guint param_id, const GValue *value,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
226 GParamSpec *pspec)
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
227 {
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
228 PurpleProtocol *protocol = PURPLE_PROTOCOL(obj);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
229
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
230 switch(param_id) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
231 case PROP_ID:
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
232 purple_protocol_set_id(protocol, g_value_get_string(value));
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
233 break;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
234 case PROP_NAME:
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
235 purple_protocol_set_name(protocol, g_value_get_string(value));
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
236 break;
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
237 case PROP_DESCRIPTION:
41037
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
238 purple_protocol_set_description(protocol,
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
239 g_value_get_string(value));
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
240 break;
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
241 case PROP_ICON_NAME:
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
242 purple_protocol_set_icon_name(protocol, g_value_get_string(value));
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
243 break;
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
244 case PROP_ICON_SEARCH_PATH:
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
245 purple_protocol_set_icon_search_path(protocol,
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
246 g_value_get_string(value));
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
247 break;
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
248 case PROP_ICON_RESOURCE_PATH:
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
249 purple_protocol_set_icon_resource_path(protocol,
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
250 g_value_get_string(value));
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
251 break;
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
252 case PROP_OPTIONS:
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
253 purple_protocol_set_options(protocol, g_value_get_flags(value));
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
254 break;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
255 default:
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
256 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
257 break;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
258 }
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
259 }
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
260
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
261 static void
41960
c8a4853205e3 Bump C standard to C99 for libpurple files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41884
diff changeset
262 purple_protocol_init(G_GNUC_UNUSED PurpleProtocol *protocol) {
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
263 }
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
264
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
265 static void
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
266 purple_protocol_finalize(GObject *object) {
41181
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41155
diff changeset
267 PurpleAccountManager *manager = purple_account_manager_get_default();
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
268 PurpleProtocol *protocol = PURPLE_PROTOCOL(object);
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
269 PurpleProtocolPrivate *priv = NULL;
36681
9c38716c8eb7 Moved protocol class members to instance. Protocol definitions now require *_init, *_class_init instead of *_base_init.
Ankit Vani <a@nevitus.org>
parents: 36637
diff changeset
270
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
271 priv = purple_protocol_get_instance_private(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
272
41181
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41155
diff changeset
273 purple_account_manager_foreach(manager,
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41155
diff changeset
274 purple_protocol_foreach_account_disconnect,
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41155
diff changeset
275 priv->id);
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41155
diff changeset
276
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
277 g_clear_pointer(&priv->id, g_free);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
278 g_clear_pointer(&priv->name, g_free);
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
279 g_clear_pointer(&priv->description, g_free);
41149
c357390f7c22 Fix a number of memory leaks
Gary Kramlich <grim@reaperworld.com>
parents: 41137
diff changeset
280 g_clear_pointer(&priv->icon_name, g_free);
c357390f7c22 Fix a number of memory leaks
Gary Kramlich <grim@reaperworld.com>
parents: 41137
diff changeset
281 g_clear_pointer(&priv->icon_search_path, g_free);
c357390f7c22 Fix a number of memory leaks
Gary Kramlich <grim@reaperworld.com>
parents: 41137
diff changeset
282 g_clear_pointer(&priv->icon_resource_path, g_free);
c357390f7c22 Fix a number of memory leaks
Gary Kramlich <grim@reaperworld.com>
parents: 41137
diff changeset
283
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
284 /* these seem to be fallbacks if the subclass protocol doesn't do it's own
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
285 * clean up? I kind of want to delete them... - gk 2021-03-03
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
286 */
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
287 purple_request_close_with_handle(protocol);
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
288 purple_notify_close_with_handle(protocol);
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
289
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
290 purple_signals_disconnect_by_handle(protocol);
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
291 purple_signals_unregister_by_instance(protocol);
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
292
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
293 purple_prefs_disconnect_by_handle(protocol);
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
294
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
295 G_OBJECT_CLASS(purple_protocol_parent_class)->finalize(object);
36681
9c38716c8eb7 Moved protocol class members to instance. Protocol definitions now require *_init, *_class_init instead of *_base_init.
Ankit Vani <a@nevitus.org>
parents: 36637
diff changeset
296 }
9c38716c8eb7 Moved protocol class members to instance. Protocol definitions now require *_init, *_class_init instead of *_base_init.
Ankit Vani <a@nevitus.org>
parents: 36637
diff changeset
297
9c38716c8eb7 Moved protocol class members to instance. Protocol definitions now require *_init, *_class_init instead of *_base_init.
Ankit Vani <a@nevitus.org>
parents: 36637
diff changeset
298 static void
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
299 purple_protocol_class_init(PurpleProtocolClass *klass) {
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
300 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
301
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
302 obj_class->get_property = purple_protocol_get_property;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
303 obj_class->set_property = purple_protocol_set_property;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
304 obj_class->finalize = purple_protocol_finalize;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
305
41869
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
306 klass->create_connection = purple_protocol_default_create_connection;
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
307
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
308 /**
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
309 * PurpleProtocol::id:
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
310 *
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
311 * The identifier for the protocol.
41037
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
312 *
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
313 * Since: 3.0.0
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
314 */
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
315 properties[PROP_ID] = g_param_spec_string(
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
316 "id", "id",
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
317 "The identifier for the protocol",
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
318 NULL,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
319 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
320
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
321 /**
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
322 * PurpleProtocol::name:
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
323 *
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
324 * The name to show in user interface for the protocol.
41037
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
325 *
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
326 * Since: 3.0.0
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
327 */
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
328 properties[PROP_NAME] = g_param_spec_string(
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
329 "name", "name",
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
330 "The name of the protocol to show in the user interface",
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
331 NULL,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
332 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
333
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
334 /**
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
335 * PurpleProtocol::description:
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
336 *
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
337 * The description to show in user interface for the protocol.
41037
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
338 *
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
339 * Since: 3.0.0
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
340 */
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
341 properties[PROP_DESCRIPTION] = g_param_spec_string(
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
342 "description", "description",
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
343 "The description of the protocol to show in the user interface",
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
344 NULL,
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
345 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
346
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
347 /**
41037
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
348 * PurpleProtocol::icon-name:
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
349 *
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
350 * The name of an icon that has been installed to either the path specified
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
351 * via PurpleProtocol::icon-search-path or
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
352 * PurpleProtocol::icon-resource-path.
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
353 *
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
354 * Since: 3.0.0
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
355 */
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
356 properties[PROP_ICON_NAME] = g_param_spec_string(
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
357 "icon-name", "icon-name",
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
358 "The name of the XDG icon.",
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
359 NULL,
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
360 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
361
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
362 /**
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
363 * PurpleProtocol::icon-search-path:
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
364 *
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
365 * The path to an XDG Icon Theme directory which contains the icons for the
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
366 * protocol. See purple_protocol_get_icon_search_path() for more
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
367 * information.
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
368 *
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
369 * Since: 3.0.0
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
370 */
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
371 properties[PROP_ICON_SEARCH_PATH] = g_param_spec_string(
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
372 "icon-search-path", "icon-search-path",
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
373 "The path to an XDG Icon Theme directory.",
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
374 NULL,
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
375 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
376
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
377 /**
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
378 * PurpleProtocol::icon-resource-path:
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
379 *
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
380 * A #GResource path which contains the icons for the protocol. See
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
381 * purple_protocol_get_icon_resource_path() for more information.
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
382 *
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
383 * Since: 3.0.0
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
384 */
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
385 properties[PROP_ICON_RESOURCE_PATH] = g_param_spec_string(
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
386 "icon-resource-path", "icon-resource-path",
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
387 "The GResource path to the icons.",
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
388 NULL,
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
389 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
390
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
391 /**
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
392 * PurpleProtocol::options:
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
393 *
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
394 * The #PurpleProtocolOptions for the protocol.
41037
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
395 *
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
396 * Since: 3.0.0
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
397 */
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
398 properties[PROP_OPTIONS] = g_param_spec_flags(
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
399 "options", "options",
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
400 "The options for the protocol",
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
401 PURPLE_TYPE_PROTOCOL_OPTIONS,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
402 0,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
403 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
404
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
405 g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
406 }
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
407
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
408 /******************************************************************************
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
409 * Public API
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
410 *****************************************************************************/
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
411 const gchar *
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
412 purple_protocol_get_id(PurpleProtocol *protocol) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
413 PurpleProtocolPrivate *priv = NULL;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
414
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
415 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
416
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
417 priv = purple_protocol_get_instance_private(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
418
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
419 return priv->id;
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
420 }
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
421
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
422 const gchar *
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
423 purple_protocol_get_name(PurpleProtocol *protocol) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
424 PurpleProtocolPrivate *priv = NULL;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
425
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
426 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
427
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
428 priv = purple_protocol_get_instance_private(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
429
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
430 return priv->name;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
431 }
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
432
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
433 const gchar *
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
434 purple_protocol_get_description(PurpleProtocol *protocol) {
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
435 PurpleProtocolPrivate *priv = NULL;
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
436
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
437 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL);
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
438
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
439 priv = purple_protocol_get_instance_private(protocol);
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
440
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
441 return priv->description;
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
442 }
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
443
41037
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
444 const gchar *
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
445 purple_protocol_get_icon_name(PurpleProtocol *protocol) {
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
446 PurpleProtocolPrivate *priv = NULL;
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
447
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
448 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL);
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
449
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
450 priv = purple_protocol_get_instance_private(protocol);
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
451
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
452 return priv->icon_name;
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
453 }
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
454
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
455 const gchar *
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
456 purple_protocol_get_icon_search_path(PurpleProtocol *protocol) {
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
457 PurpleProtocolPrivate *priv = NULL;
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
458
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
459 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL);
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
460
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
461 priv = purple_protocol_get_instance_private(protocol);
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
462
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
463 return priv->icon_search_path;
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
464 }
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
465
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
466 const gchar *
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
467 purple_protocol_get_icon_resource_path(PurpleProtocol *protocol) {
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
468 PurpleProtocolPrivate *priv = NULL;
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
469
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
470 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL);
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
471
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
472 priv = purple_protocol_get_instance_private(protocol);
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
473
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
474 return priv->icon_resource_path;
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
475 }
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
476
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
477 PurpleProtocolOptions
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
478 purple_protocol_get_options(PurpleProtocol *protocol) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
479 PurpleProtocolPrivate *priv = NULL;
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
480
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
481 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), 0);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
482
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
483 priv = purple_protocol_get_instance_private(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
484
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
485 return priv->options;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
486 }
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
487
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
488 GList *
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
489 purple_protocol_get_user_splits(PurpleProtocol *protocol) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
490 PurpleProtocolClass *klass = NULL;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
491
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
492 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
493
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
494 klass = PURPLE_PROTOCOL_GET_CLASS(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
495 if(klass != NULL && klass->get_user_splits != NULL) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
496 return klass->get_user_splits(protocol);
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
497 }
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
498
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
499 return NULL;
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
500 }
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
501
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
502 GList *
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
503 purple_protocol_get_account_options(PurpleProtocol *protocol) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
504 PurpleProtocolClass *klass = NULL;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
505
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
506 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
507
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
508 klass = PURPLE_PROTOCOL_GET_CLASS(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
509 if(klass != NULL && klass->get_account_options != NULL) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
510 return klass->get_account_options(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
511 }
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
512
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
513 return NULL;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
514 }
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
515
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
516 PurpleBuddyIconSpec *
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
517 purple_protocol_get_icon_spec(PurpleProtocol *protocol) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
518 PurpleProtocolClass *klass = NULL;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
519
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
520 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL);
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
521
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
522 klass = PURPLE_PROTOCOL_GET_CLASS(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
523 if(klass != NULL && klass->get_buddy_icon_spec != NULL) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
524 return klass->get_buddy_icon_spec(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
525 }
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
526
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
527 return NULL;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
528 }
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
529
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
530 PurpleWhiteboardOps *
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
531 purple_protocol_get_whiteboard_ops(PurpleProtocol *protocol) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
532 PurpleProtocolClass *klass = NULL;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
533
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
534 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
535
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
536 klass = PURPLE_PROTOCOL_GET_CLASS(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
537 if(klass != NULL && klass->get_whiteboard_ops != NULL) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
538 return klass->get_whiteboard_ops(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
539 }
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
540
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
541 return NULL;
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
542 }
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
543
41814
f8940ebd4eee Back out the PurpleProtocol->login change that returned a PurpleConnection
Gary Kramlich <grim@reaperworld.com>
parents: 41799
diff changeset
544 void
f8940ebd4eee Back out the PurpleProtocol->login change that returned a PurpleConnection
Gary Kramlich <grim@reaperworld.com>
parents: 41799
diff changeset
545 purple_protocol_login(PurpleProtocol *protocol, PurpleAccount *account) {
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
546 PurpleProtocolClass *klass = NULL;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
547
41814
f8940ebd4eee Back out the PurpleProtocol->login change that returned a PurpleConnection
Gary Kramlich <grim@reaperworld.com>
parents: 41799
diff changeset
548 g_return_if_fail(PURPLE_IS_PROTOCOL(protocol));
f8940ebd4eee Back out the PurpleProtocol->login change that returned a PurpleConnection
Gary Kramlich <grim@reaperworld.com>
parents: 41799
diff changeset
549 g_return_if_fail(PURPLE_IS_ACCOUNT(account));
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
550
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
551 klass = PURPLE_PROTOCOL_GET_CLASS(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
552 if(klass != NULL && klass->login != NULL) {
41814
f8940ebd4eee Back out the PurpleProtocol->login change that returned a PurpleConnection
Gary Kramlich <grim@reaperworld.com>
parents: 41799
diff changeset
553 klass->login(protocol, account);
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
554 }
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
555 }
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
556
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
557 void
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
558 purple_protocol_close(PurpleProtocol *protocol, PurpleConnection *gc) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
559 PurpleProtocolClass *klass = NULL;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
560
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
561 g_return_if_fail(PURPLE_IS_PROTOCOL(protocol));
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
562 g_return_if_fail(PURPLE_IS_CONNECTION(gc));
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
563
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
564 klass = PURPLE_PROTOCOL_GET_CLASS(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
565 if(klass != NULL && klass->close != NULL) {
41775
82c861678f39 Pass the PurpleProtocol objects to all methods of the class
Gary Kramlich <grim@reaperworld.com>
parents: 41679
diff changeset
566 klass->close(protocol, gc);
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
567 }
36722
49872e1ec30e Defined the new interface functions
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
568 }
49872e1ec30e Defined the new interface functions
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
569
41884
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
570 void
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
571 purple_protocol_can_connect_async(PurpleProtocol *protocol,
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
572 PurpleAccount *account,
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
573 GCancellable *cancellable,
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
574 GAsyncReadyCallback callback,
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
575 gpointer data)
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
576 {
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
577 PurpleProtocolClass *klass = NULL;
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
578
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
579 g_return_if_fail(PURPLE_IS_PROTOCOL(protocol));
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
580 g_return_if_fail(PURPLE_IS_ACCOUNT(account));
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
581
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
582 klass = PURPLE_PROTOCOL_GET_CLASS(protocol);
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
583 if(klass != NULL && klass->can_connect_async != NULL) {
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
584 klass->can_connect_async(protocol, account, cancellable, callback,
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
585 data);
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
586 }
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
587 }
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
588
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
589 gboolean
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
590 purple_protocol_can_connect_finish(PurpleProtocol *protocol,
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
591 GAsyncResult *result,
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
592 GError **error)
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
593 {
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
594 PurpleProtocolClass *klass = NULL;
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
595
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
596 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), FALSE);
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
597
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
598 klass = PURPLE_PROTOCOL_GET_CLASS(protocol);
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
599 if(klass != NULL && klass->can_connect_finish != NULL) {
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
600 return klass->can_connect_finish(protocol, result, error);
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
601 }
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
602
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
603 return FALSE;
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
604 }
41869
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
605
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
606 PurpleConnection *
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
607 purple_protocol_create_connection(PurpleProtocol *protocol,
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
608 PurpleAccount *account,
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
609 const char *password,
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
610 GError **error)
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
611 {
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
612 PurpleProtocolClass *klass = NULL;
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
613
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
614 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL);
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
615 g_return_val_if_fail(PURPLE_IS_ACCOUNT(account), NULL);
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
616
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
617 klass = PURPLE_PROTOCOL_GET_CLASS(protocol);
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
618 if(klass != NULL && klass->create_connection != NULL) {
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
619 return klass->create_connection(protocol, account, password, error);
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
620 }
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
621
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
622 g_set_error(error, PURPLE_CONNECTION_ERROR, 0,
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
623 "Protocol %s did not implement create_connection",
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
624 purple_protocol_get_name(protocol));
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
625
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
626 return NULL;
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
627 }
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
628
36722
49872e1ec30e Defined the new interface functions
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
629 GList *
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
630 purple_protocol_get_status_types(PurpleProtocol *protocol,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
631 PurpleAccount *account)
36722
49872e1ec30e Defined the new interface functions
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
632 {
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
633 PurpleProtocolClass *klass = NULL;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
634
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
635 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
636 g_return_val_if_fail(PURPLE_IS_ACCOUNT(account), NULL);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
637
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
638 klass = PURPLE_PROTOCOL_GET_CLASS(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
639 if(klass != NULL && klass->status_types != NULL) {
41775
82c861678f39 Pass the PurpleProtocol objects to all methods of the class
Gary Kramlich <grim@reaperworld.com>
parents: 41679
diff changeset
640 return klass->status_types(protocol, account);
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
641 }
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
642
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
643 return NULL;
36722
49872e1ec30e Defined the new interface functions
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
644 }

mercurial