libpurple/purpleprotocol.c

Thu, 07 Aug 2025 21:32:18 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Thu, 07 Aug 2025 21:32:18 -0500
changeset 43300
0604c6839974
parent 43257
934732945514
permissions
-rw-r--r--

Clean up and modernize PurpleImage

Testing Done:
Ran the tests under valgrind and called in the turtles.

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

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
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
6 * to list here. Please refer to the COPYRIGHT file distributed with this
36560
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 *
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
9 * This library is free software; you can redistribute it and/or modify it
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
10 * under the terms of the GNU General Public License as published by the Free
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
11 * Software Foundation; either version 2 of the License, or (at your option)
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
12 * any later version.
36560
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
13 *
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
14 * This library is distributed in the hope that it will be useful, but WITHOUT
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
15 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
16 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
17 * more details.
36560
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
18 *
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
19 * You should have received a copy of the GNU General Public License along with
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
20 * this library; 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
42557
e868bfcc092a Only include headers when they're necessary for header files
Gary Kramlich <grim@reaperworld.com>
parents: 42303
diff changeset
25 #include "prefs.h"
41181
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41155
diff changeset
26 #include "purpleaccountmanager.h"
41007
90d2dee9b3dc Fix the includes for the purpleenums rename
Gary Kramlich <grim@reaperworld.com>
parents: 40985
diff changeset
27 #include "purpleenums.h"
42834
8c7bd2b5757e Remove the notify API
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
28 #include "request.h"
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
29
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
30 enum {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
31 PROP_0,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
32 PROP_ID,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
33 PROP_NAME,
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
34 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
35 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
36 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
37 PROP_ICON_RESOURCE_PATH,
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
38 PROP_OPTIONS,
43257
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
39 PROP_TAGS,
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
40 N_PROPERTIES,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
41 };
42584
687260353985 Make signal and property enums and initializers consistent
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42557
diff changeset
42 static GParamSpec *properties[N_PROPERTIES] = {NULL, };
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
43
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
44 typedef struct {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
45 gchar *id;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
46 gchar *name;
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
47 gchar *description;
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
48
41037
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
49 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
50 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
51 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
52
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
53 PurpleProtocolOptions options;
43257
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
54
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
55 PurpleTags *tags;
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
56 } PurpleProtocolPrivate;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
57
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
58 G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE(PurpleProtocol, purple_protocol,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
59 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
60
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
61 /******************************************************************************
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
62 * Helpers
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
63 *****************************************************************************/
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
64 static void
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
65 purple_protocol_set_id(PurpleProtocol *protocol, const gchar *id) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
66 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
67
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
68 priv = purple_protocol_get_instance_private(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
69
42767
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42725
diff changeset
70 if(g_set_str(&priv->id, id)) {
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42725
diff changeset
71 g_object_notify_by_pspec(G_OBJECT(protocol), properties[PROP_ID]);
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42725
diff changeset
72 }
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
73 }
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
74
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
75 static void
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
76 purple_protocol_set_name(PurpleProtocol *protocol, const gchar *name) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
77 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
78
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
79 priv = purple_protocol_get_instance_private(protocol);
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
80
42767
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42725
diff changeset
81 if(g_set_str(&priv->name, name)) {
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42725
diff changeset
82 g_object_notify_by_pspec(G_OBJECT(protocol), properties[PROP_NAME]);
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42725
diff changeset
83 }
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
84 }
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
85
36686
9807e4acf281 Added PurpleProtocolOverrideFlags and purple_protocol_override()
Ankit Vani <a@nevitus.org>
parents: 36681
diff changeset
86 static void
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
87 purple_protocol_set_description(PurpleProtocol *protocol, const gchar *description) {
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
88 PurpleProtocolPrivate *priv = NULL;
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
89
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
90 priv = purple_protocol_get_instance_private(protocol);
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
91
42767
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42725
diff changeset
92 if(g_set_str(&priv->description, description)) {
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42725
diff changeset
93 g_object_notify_by_pspec(G_OBJECT(protocol),
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42725
diff changeset
94 properties[PROP_DESCRIPTION]);
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42725
diff changeset
95 }
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
96 }
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
97
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
98 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
99 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
100 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
101 {
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
102 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
103
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
104 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
105
42767
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42725
diff changeset
106 if(g_set_str(&priv->icon_name, icon_name)) {
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42725
diff changeset
107 g_object_notify_by_pspec(G_OBJECT(protocol),
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42725
diff changeset
108 properties[PROP_ICON_NAME]);
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42725
diff changeset
109 }
41037
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
110 }
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 static void
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
113 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
114 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
115 {
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
116 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
117
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
118 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
119
42767
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42725
diff changeset
120 if(g_set_str(&priv->icon_search_path, path)) {
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42725
diff changeset
121 g_object_notify_by_pspec(G_OBJECT(protocol),
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42725
diff changeset
122 properties[PROP_ICON_SEARCH_PATH]);
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42725
diff changeset
123 }
41037
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
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
126 static void
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
127 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
128 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
129 {
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
130 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
131
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
132 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
133
42767
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42725
diff changeset
134 if(g_set_str(&priv->icon_resource_path, path)) {
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42725
diff changeset
135 g_object_notify_by_pspec(G_OBJECT(protocol),
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42725
diff changeset
136 properties[PROP_ICON_RESOURCE_PATH]);
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42725
diff changeset
137 }
41037
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
138 }
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
139
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
140 static void
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
141 purple_protocol_set_options(PurpleProtocol *protocol,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
142 PurpleProtocolOptions options)
36686
9807e4acf281 Added PurpleProtocolOverrideFlags and purple_protocol_override()
Ankit Vani <a@nevitus.org>
parents: 36681
diff changeset
143 {
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
144 PurpleProtocolPrivate *priv = NULL;
36686
9807e4acf281 Added PurpleProtocolOverrideFlags and purple_protocol_override()
Ankit Vani <a@nevitus.org>
parents: 36681
diff changeset
145
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
146 priv = purple_protocol_get_instance_private(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
147 priv->options = options;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
148
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
149 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
150 }
9807e4acf281 Added PurpleProtocolOverrideFlags and purple_protocol_override()
Ankit Vani <a@nevitus.org>
parents: 36681
diff changeset
151
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
152 /******************************************************************************
41869
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
153 * PurpleProtocol Implementation
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
154 *****************************************************************************/
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
155 static PurpleConnection *
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
156 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
157 PurpleAccount *account,
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
158 const char *password,
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
159 G_GNUC_UNUSED GError **error)
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
160 {
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
161 return g_object_new(
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
162 PURPLE_TYPE_CONNECTION,
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
163 "protocol", protocol,
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
164 "account", account,
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
165 "password", password,
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
166 NULL);
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
167 }
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
168
43161
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
169 static char *
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
170 purple_protocol_default_generate_account_name(PurpleProtocol *protocol,
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
171 G_GNUC_UNUSED PurpleAccount *account,
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
172 guint n_accounts)
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
173 {
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
174 PurpleProtocolPrivate *priv = NULL;
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
175
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
176 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL);
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
177
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
178 priv = purple_protocol_get_instance_private(protocol);
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
179
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
180 return g_strdup_printf("%s %u", priv->name, n_accounts + 1);
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
181 }
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
182
41869
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
183 /******************************************************************************
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
184 * GObject Implementation
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
185 *****************************************************************************/
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
186 static void
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
187 purple_protocol_get_property(GObject *obj, guint param_id, GValue *value,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
188 GParamSpec *pspec)
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
189 {
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
190 PurpleProtocol *protocol = PURPLE_PROTOCOL(obj);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
191
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
192 switch(param_id) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
193 case PROP_ID:
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
194 g_value_set_string(value, purple_protocol_get_id(protocol));
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
195 break;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
196 case PROP_NAME:
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
197 g_value_set_string(value, purple_protocol_get_name(protocol));
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
198 break;
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
199 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
200 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
201 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
202 break;
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
203 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
204 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
205 break;
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
206 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
207 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
208 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
209 break;
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
210 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
211 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
212 purple_protocol_get_icon_resource_path(protocol));
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
213 break;
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
214 case PROP_OPTIONS:
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
215 g_value_set_flags(value, purple_protocol_get_options(protocol));
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
216 break;
43257
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
217 case PROP_TAGS:
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
218 g_value_set_object(value, purple_protocol_get_tags(protocol));
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
219 break;
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
220 default:
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
221 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
222 break;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
223 }
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
224 }
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
225
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
226 static void
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
227 purple_protocol_set_property(GObject *obj, guint param_id, const GValue *value,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
228 GParamSpec *pspec)
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
229 {
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
230 PurpleProtocol *protocol = PURPLE_PROTOCOL(obj);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
231
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
232 switch(param_id) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
233 case PROP_ID:
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
234 purple_protocol_set_id(protocol, g_value_get_string(value));
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
235 break;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
236 case PROP_NAME:
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
237 purple_protocol_set_name(protocol, g_value_get_string(value));
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
238 break;
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
239 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
240 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
241 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
242 break;
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
243 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
244 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
245 break;
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
246 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
247 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
248 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
249 break;
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
250 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
251 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
252 g_value_get_string(value));
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
253 break;
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
254 case PROP_OPTIONS:
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
255 purple_protocol_set_options(protocol, g_value_get_flags(value));
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
256 break;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
257 default:
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
258 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
259 break;
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 }
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
262
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
263 static void
43257
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
264 purple_protocol_init(PurpleProtocol *protocol) {
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
265 PurpleProtocolPrivate *priv = NULL;
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
266
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
267 priv = purple_protocol_get_instance_private(protocol);
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
268
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
269 priv->tags = purple_tags_new();
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
270 }
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
271
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
272 static void
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
273 purple_protocol_finalize(GObject *object) {
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
274 PurpleProtocol *protocol = PURPLE_PROTOCOL(object);
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
275 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
276
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
277 priv = purple_protocol_get_instance_private(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
278
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
279 g_clear_pointer(&priv->id, g_free);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
280 g_clear_pointer(&priv->name, g_free);
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
281 g_clear_pointer(&priv->description, g_free);
41149
c357390f7c22 Fix a number of memory leaks
Gary Kramlich <grim@reaperworld.com>
parents: 41137
diff changeset
282 g_clear_pointer(&priv->icon_name, g_free);
c357390f7c22 Fix a number of memory leaks
Gary Kramlich <grim@reaperworld.com>
parents: 41137
diff changeset
283 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
284 g_clear_pointer(&priv->icon_resource_path, g_free);
43257
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
285 g_clear_object(&priv->tags);
41149
c357390f7c22 Fix a number of memory leaks
Gary Kramlich <grim@reaperworld.com>
parents: 41137
diff changeset
286
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
287 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
288 }
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
289
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
290 static void
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
291 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
292 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
293
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
294 obj_class->get_property = purple_protocol_get_property;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
295 obj_class->set_property = purple_protocol_set_property;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
296 obj_class->finalize = purple_protocol_finalize;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
297
41869
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
298 klass->create_connection = purple_protocol_default_create_connection;
43161
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
299 klass->generate_account_name = purple_protocol_default_generate_account_name;
41869
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
300
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
301 /**
42303
52c26807d91a Fix a number of issues with the documentation for properties
Gary Kramlich <grim@reaperworld.com>
parents: 42290
diff changeset
302 * PurpleProtocol:id:
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
303 *
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
304 * 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
305 *
42615
2f3308794a8f Remove the micro version from since tags for libpurple part 4
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
306 * Since: 3.0
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
307 */
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
308 properties[PROP_ID] = g_param_spec_string(
43071
071588186662 Remove nick and blurb from libpurple properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42999
diff changeset
309 "id", NULL, NULL,
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
310 NULL,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
311 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
312
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
313 /**
42303
52c26807d91a Fix a number of issues with the documentation for properties
Gary Kramlich <grim@reaperworld.com>
parents: 42290
diff changeset
314 * PurpleProtocol:name:
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
315 *
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
316 * 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
317 *
42615
2f3308794a8f Remove the micro version from since tags for libpurple part 4
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
318 * Since: 3.0
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
319 */
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
320 properties[PROP_NAME] = g_param_spec_string(
43071
071588186662 Remove nick and blurb from libpurple properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42999
diff changeset
321 "name", NULL, NULL,
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
322 NULL,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
323 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
324
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
325 /**
42303
52c26807d91a Fix a number of issues with the documentation for properties
Gary Kramlich <grim@reaperworld.com>
parents: 42290
diff changeset
326 * PurpleProtocol:description:
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
327 *
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
328 * 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
329 *
42615
2f3308794a8f Remove the micro version from since tags for libpurple part 4
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
330 * Since: 3.0
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
331 */
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
332 properties[PROP_DESCRIPTION] = g_param_spec_string(
43071
071588186662 Remove nick and blurb from libpurple properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42999
diff changeset
333 "description", NULL, NULL,
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
334 NULL,
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
335 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
336
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
337 /**
42303
52c26807d91a Fix a number of issues with the documentation for properties
Gary Kramlich <grim@reaperworld.com>
parents: 42290
diff changeset
338 * PurpleProtocol:icon-name:
41037
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
339 *
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
340 * 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
341 * 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
342 * 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
343 *
42615
2f3308794a8f Remove the micro version from since tags for libpurple part 4
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
344 * Since: 3.0
41037
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
345 */
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
346 properties[PROP_ICON_NAME] = g_param_spec_string(
43071
071588186662 Remove nick and blurb from libpurple properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42999
diff changeset
347 "icon-name", NULL, NULL,
41037
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
348 NULL,
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
349 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
350
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
351 /**
42303
52c26807d91a Fix a number of issues with the documentation for properties
Gary Kramlich <grim@reaperworld.com>
parents: 42290
diff changeset
352 * PurpleProtocol:icon-search-path:
41037
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 * 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
355 * 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
356 * information.
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
357 *
42615
2f3308794a8f Remove the micro version from since tags for libpurple part 4
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
358 * Since: 3.0
41037
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
359 */
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
360 properties[PROP_ICON_SEARCH_PATH] = g_param_spec_string(
43071
071588186662 Remove nick and blurb from libpurple properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42999
diff changeset
361 "icon-search-path", NULL, NULL,
41037
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
362 NULL,
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
363 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
364
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
365 /**
42303
52c26807d91a Fix a number of issues with the documentation for properties
Gary Kramlich <grim@reaperworld.com>
parents: 42290
diff changeset
366 * PurpleProtocol:icon-resource-path:
41037
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
367 *
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
368 * 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
369 * 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
370 *
42615
2f3308794a8f Remove the micro version from since tags for libpurple part 4
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
371 * Since: 3.0
41037
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
372 */
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
373 properties[PROP_ICON_RESOURCE_PATH] = g_param_spec_string(
43071
071588186662 Remove nick and blurb from libpurple properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42999
diff changeset
374 "icon-resource-path", NULL, NULL,
41037
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
375 NULL,
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
376 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
377
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
378 /**
42303
52c26807d91a Fix a number of issues with the documentation for properties
Gary Kramlich <grim@reaperworld.com>
parents: 42290
diff changeset
379 * PurpleProtocol:options:
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
380 *
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
381 * 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
382 *
42615
2f3308794a8f Remove the micro version from since tags for libpurple part 4
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
383 * Since: 3.0
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
384 */
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
385 properties[PROP_OPTIONS] = g_param_spec_flags(
43071
071588186662 Remove nick and blurb from libpurple properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42999
diff changeset
386 "options", NULL, NULL,
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
387 PURPLE_TYPE_PROTOCOL_OPTIONS,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
388 0,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
389 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
390
43257
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
391 /**
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
392 * PurpleProtocol:tags:
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
393 *
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
394 * A [class@Tags] instance for the protocol.
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
395 *
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
396 * Since: 3.0
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
397 */
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
398 properties[PROP_TAGS] = g_param_spec_object(
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
399 "tags", NULL, NULL,
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
400 PURPLE_TYPE_TAGS,
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
401 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
402
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
403 g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
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
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 * Public API
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
408 *****************************************************************************/
43161
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
409 char *
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
410 purple_protocol_generate_account_name(PurpleProtocol *protocol,
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
411 PurpleAccount *account,
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
412 guint n_accounts)
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
413 {
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
414 PurpleProtocolClass *klass = NULL;
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
415
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
416 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL);
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
417 g_return_val_if_fail(PURPLE_IS_ACCOUNT(account), NULL);
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
418
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
419 klass = PURPLE_PROTOCOL_GET_CLASS(protocol);
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
420 if(klass != NULL && klass->generate_account_name != NULL) {
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
421 return klass->generate_account_name(protocol, account, n_accounts);
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
422 }
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
423
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
424 return NULL;
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
425 }
920605926071 Add Purple.Protocol.generate_account_name
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
426
42877
566102577b66 Add Purple.Protocol.get_action_menu
Gary Kramlich <grim@reaperworld.com>
parents: 42862
diff changeset
427 BirbActionMenu *
566102577b66 Add Purple.Protocol.get_action_menu
Gary Kramlich <grim@reaperworld.com>
parents: 42862
diff changeset
428 purple_protocol_get_action_menu(PurpleProtocol *protocol,
566102577b66 Add Purple.Protocol.get_action_menu
Gary Kramlich <grim@reaperworld.com>
parents: 42862
diff changeset
429 PurpleAccount *account)
566102577b66 Add Purple.Protocol.get_action_menu
Gary Kramlich <grim@reaperworld.com>
parents: 42862
diff changeset
430 {
566102577b66 Add Purple.Protocol.get_action_menu
Gary Kramlich <grim@reaperworld.com>
parents: 42862
diff changeset
431 PurpleProtocolClass *klass = NULL;
566102577b66 Add Purple.Protocol.get_action_menu
Gary Kramlich <grim@reaperworld.com>
parents: 42862
diff changeset
432
566102577b66 Add Purple.Protocol.get_action_menu
Gary Kramlich <grim@reaperworld.com>
parents: 42862
diff changeset
433 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL);
566102577b66 Add Purple.Protocol.get_action_menu
Gary Kramlich <grim@reaperworld.com>
parents: 42862
diff changeset
434 g_return_val_if_fail(PURPLE_IS_ACCOUNT(account), NULL);
566102577b66 Add Purple.Protocol.get_action_menu
Gary Kramlich <grim@reaperworld.com>
parents: 42862
diff changeset
435
566102577b66 Add Purple.Protocol.get_action_menu
Gary Kramlich <grim@reaperworld.com>
parents: 42862
diff changeset
436 klass = PURPLE_PROTOCOL_GET_CLASS(protocol);
566102577b66 Add Purple.Protocol.get_action_menu
Gary Kramlich <grim@reaperworld.com>
parents: 42862
diff changeset
437 if(klass != NULL && klass->get_action_menu != NULL) {
566102577b66 Add Purple.Protocol.get_action_menu
Gary Kramlich <grim@reaperworld.com>
parents: 42862
diff changeset
438 return klass->get_action_menu(protocol, account);
566102577b66 Add Purple.Protocol.get_action_menu
Gary Kramlich <grim@reaperworld.com>
parents: 42862
diff changeset
439 }
566102577b66 Add Purple.Protocol.get_action_menu
Gary Kramlich <grim@reaperworld.com>
parents: 42862
diff changeset
440
566102577b66 Add Purple.Protocol.get_action_menu
Gary Kramlich <grim@reaperworld.com>
parents: 42862
diff changeset
441 return NULL;
566102577b66 Add Purple.Protocol.get_action_menu
Gary Kramlich <grim@reaperworld.com>
parents: 42862
diff changeset
442 }
566102577b66 Add Purple.Protocol.get_action_menu
Gary Kramlich <grim@reaperworld.com>
parents: 42862
diff changeset
443
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
444 const gchar *
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
445 purple_protocol_get_id(PurpleProtocol *protocol) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
446 PurpleProtocolPrivate *priv = NULL;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
447
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
448 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
449
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
450 priv = purple_protocol_get_instance_private(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
451
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
452 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
453 }
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
454
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
455 const gchar *
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
456 purple_protocol_get_name(PurpleProtocol *protocol) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
457 PurpleProtocolPrivate *priv = NULL;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
458
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
459 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
460
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
461 priv = purple_protocol_get_instance_private(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
462
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
463 return priv->name;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
464 }
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
465
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
466 const gchar *
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
467 purple_protocol_get_description(PurpleProtocol *protocol) {
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
468 PurpleProtocolPrivate *priv = NULL;
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
469
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
470 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL);
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
471
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
472 priv = purple_protocol_get_instance_private(protocol);
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
473
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
474 return priv->description;
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
475 }
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
476
41037
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
477 const gchar *
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
478 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
479 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
480
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
481 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
482
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
483 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
484
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
485 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
486 }
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
487
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
488 const gchar *
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
489 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
490 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
491
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
492 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
493
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
494 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
495
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
496 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
497 }
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
498
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
499 const gchar *
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
500 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
501 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
502
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
503 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
504
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
505 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
506
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
507 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
508 }
c2043b9692f6 Add icon-name, icon-search-path, and icon-resource-path to PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
509
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
510 PurpleProtocolOptions
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
511 purple_protocol_get_options(PurpleProtocol *protocol) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
512 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
513
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
514 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), 0);
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 priv = purple_protocol_get_instance_private(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
517
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
518 return priv->options;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
519 }
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
520
43257
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
521 PurpleTags *
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
522 purple_protocol_get_tags(PurpleProtocol *protocol) {
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
523 PurpleProtocolPrivate *priv = NULL;
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
524
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
525 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL);
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
526
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
527 priv = purple_protocol_get_instance_private(protocol);
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
528
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
529 return priv->tags;
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
530 }
934732945514 Add Purple.Protocol:tags and add unit tests for protocol properties
Gary Kramlich <grim@reaperworld.com>
parents: 43161
diff changeset
531
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
532 GList *
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
533 purple_protocol_get_user_splits(PurpleProtocol *protocol) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
534 PurpleProtocolClass *klass = 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 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
537
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
538 klass = PURPLE_PROTOCOL_GET_CLASS(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
539 if(klass != NULL && klass->get_user_splits != NULL) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
540 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
541 }
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
542
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
543 return NULL;
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
544 }
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
545
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
546 GList *
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
547 purple_protocol_get_account_options(PurpleProtocol *protocol) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
548 PurpleProtocolClass *klass = NULL;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
549
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
550 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
551
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
552 klass = PURPLE_PROTOCOL_GET_CLASS(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
553 if(klass != NULL && klass->get_account_options != NULL) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
554 return klass->get_account_options(protocol);
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 return NULL;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
558 }
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
559
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
560 PurpleWhiteboardOps *
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
561 purple_protocol_get_whiteboard_ops(PurpleProtocol *protocol) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
562 PurpleProtocolClass *klass = NULL;
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 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
565
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
566 klass = PURPLE_PROTOCOL_GET_CLASS(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
567 if(klass != NULL && klass->get_whiteboard_ops != NULL) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
568 return klass->get_whiteboard_ops(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
569 }
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
570
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
571 return NULL;
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
572 }
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
573
41814
f8940ebd4eee Back out the PurpleProtocol->login change that returned a PurpleConnection
Gary Kramlich <grim@reaperworld.com>
parents: 41799
diff changeset
574 void
41884
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
575 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
576 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
577 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
578 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
579 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
580 {
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
581 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
582
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
583 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
584 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
585
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
586 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
587 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
588 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
589 data);
42646
b82b5609c044 Use PurpleProtocol.can_connect_async in the login process
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
590 } else {
b82b5609c044 Use PurpleProtocol.can_connect_async in the login process
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
591 GTask *task = g_task_new(protocol, cancellable, callback, data);
b82b5609c044 Use PurpleProtocol.can_connect_async in the login process
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
592
b82b5609c044 Use PurpleProtocol.can_connect_async in the login process
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
593 g_task_return_boolean(task, TRUE);
b82b5609c044 Use PurpleProtocol.can_connect_async in the login process
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
594 g_task_set_source_tag(task, purple_protocol_can_connect_async);
b82b5609c044 Use PurpleProtocol.can_connect_async in the login process
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
595
b82b5609c044 Use PurpleProtocol.can_connect_async in the login process
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
596 g_clear_object(&task);
41884
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 }
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
599
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
600 gboolean
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
601 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
602 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
603 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
604 {
42646
b82b5609c044 Use PurpleProtocol.can_connect_async in the login process
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
605 gpointer tag = NULL;
41884
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
606
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
607 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
608
42646
b82b5609c044 Use PurpleProtocol.can_connect_async in the login process
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
609 tag = g_task_get_source_tag(G_TASK(result));
b82b5609c044 Use PurpleProtocol.can_connect_async in the login process
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
610 if(tag == purple_protocol_can_connect_async) {
b82b5609c044 Use PurpleProtocol.can_connect_async in the login process
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
611 return g_task_propagate_boolean(G_TASK(result), error);
b82b5609c044 Use PurpleProtocol.can_connect_async in the login process
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
612 } else {
b82b5609c044 Use PurpleProtocol.can_connect_async in the login process
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
613 PurpleProtocolClass *klass = PURPLE_PROTOCOL_GET_CLASS(protocol);
b82b5609c044 Use PurpleProtocol.can_connect_async in the login process
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
614
b82b5609c044 Use PurpleProtocol.can_connect_async in the login process
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
615 if(klass != NULL && klass->can_connect_finish != NULL) {
b82b5609c044 Use PurpleProtocol.can_connect_async in the login process
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
616 return klass->can_connect_finish(protocol, result, error);
b82b5609c044 Use PurpleProtocol.can_connect_async in the login process
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
617 }
41884
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
618 }
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
619
36684da1e60d Add async function to PurpleProtocol for testing whether or not connections are possible
Gary Kramlich <grim@reaperworld.com>
parents: 41869
diff changeset
620 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
621 }
41869
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
622
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
623 PurpleConnection *
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
624 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
625 PurpleAccount *account,
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
626 const char *password,
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
627 GError **error)
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
628 {
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
629 PurpleProtocolClass *klass = NULL;
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
630
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
631 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
632 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
633
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
634 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
635 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
636 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
637 }
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
638
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
639 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
640 "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
641 purple_protocol_get_name(protocol));
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
642
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
643 return NULL;
7bd5bff547b4 Change the way accounts connect while keeping backwards compatibility
Gary Kramlich <grim@reaperworld.com>
parents: 41814
diff changeset
644 }

mercurial