libpurple/request/purplerequestpage.c

Fri, 04 Oct 2024 00:48:33 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Fri, 04 Oct 2024 00:48:33 -0500
changeset 42997
368deff13c21
parent 42984
818220289e67
child 43071
071588186662
permissions
-rw-r--r--

Split purpleprivate.h up into individual files

purpleprivate.h got over used and was poorly maintained previously. By breaking
it up to separate files they will be easier to maintain and should be less
likely to be included when they're not necessary.

Testing Done:
Called in the turtles and ran in a devenv.

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

42144
92dd14dc8a73 Cleanup request field files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42139
diff changeset
1 /*
92dd14dc8a73 Cleanup request field files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42139
diff changeset
2 * Purple - Internet Messaging Library
92dd14dc8a73 Cleanup request field files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42139
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
5477
942b6f295034 [gaim-migrate @ 5873]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
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: 42576
diff changeset
6 * to list here. Please refer to the COPYRIGHT file distributed with this
8046
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7964
diff changeset
7 * source distribution.
7035
76bca80cd91d [gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents: 6325
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: 42576
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: 42576
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: 42576
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: 42576
diff changeset
12 * any later version.
5477
942b6f295034 [gaim-migrate @ 5873]
Christian Hammond <chipx86@chipx86.com>
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: 42576
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: 42576
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: 42576
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: 42576
diff changeset
17 * more details.
5477
942b6f295034 [gaim-migrate @ 5873]
Christian Hammond <chipx86@chipx86.com>
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: 42576
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: 42576
diff changeset
20 * this library; if not, see <https://www.gnu.org/licenses/>.
5477
942b6f295034 [gaim-migrate @ 5873]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
21 */
24900
a19d983918c2 Deprecate purple_request_field_list_add()
Richard Laager <rlaager@pidgin.im>
parents: 24899
diff changeset
22
40441
f23c7e772667 Make sure we're not including the gettext macros in header files and deal with the repercussions of that.
Gary Kramlich <grim@reaperworld.com>
parents: 40350
diff changeset
23 #include <glib/gi18n-lib.h>
f23c7e772667 Make sure we're not including the gettext macros in header files and deal with the repercussions of that.
Gary Kramlich <grim@reaperworld.com>
parents: 40350
diff changeset
24
42122
77a267934abf Split PurpleRequestFields into its own files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42120
diff changeset
25 #include "purplerequestpage.h"
42997
368deff13c21 Split purpleprivate.h up into individual files
Gary Kramlich <grim@reaperworld.com>
parents: 42984
diff changeset
26
42134
1b5ce0f4302d Make PurpleRequestFieldAccount into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42132
diff changeset
27 #include "request/purplerequestfieldaccount.h"
42136
cfa707dcda7d Make PurpleRequestFieldBool into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42135
diff changeset
28 #include "request/purplerequestfieldbool.h"
42139
c053558f1236 Make PurpleRequestFieldChoice into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42137
diff changeset
29 #include "request/purplerequestfieldchoice.h"
42137
59ceb87dc43c Make PurpleRequestFieldInt into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42136
diff changeset
30 #include "request/purplerequestfieldint.h"
42135
1a89a067a0d5 Add a PurpleRequestFieldString subclass
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42134
diff changeset
31 #include "request/purplerequestfieldstring.h"
5477
942b6f295034 [gaim-migrate @ 5873]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
32
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
33 struct _PurpleRequestPage {
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
34 GObject parent;
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
35
42170
c9968cbf01d5 Use GPtrArray internally to PurpleRequest{Group,Page}
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42169
diff changeset
36 GPtrArray *groups;
42152
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
37 GHashTable *invalid_groups;
32273
55a194e489bb A small bit of hide-a-struct
Mark Doliner <markdoliner@pidgin.im>
parents: 32216
diff changeset
38
55a194e489bb A small bit of hide-a-struct
Mark Doliner <markdoliner@pidgin.im>
parents: 32216
diff changeset
39 GHashTable *fields;
55a194e489bb A small bit of hide-a-struct
Mark Doliner <markdoliner@pidgin.im>
parents: 32216
diff changeset
40 };
55a194e489bb A small bit of hide-a-struct
Mark Doliner <markdoliner@pidgin.im>
parents: 32216
diff changeset
41
42152
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
42 enum {
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
43 PROP_0,
42667
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
44 PROP_ITEM_TYPE,
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
45 PROP_N_ITEMS,
42152
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
46 PROP_VALID,
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
47 N_PROPERTIES,
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
48 };
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
49 static GParamSpec *properties[N_PROPERTIES] = {NULL, };
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
50
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
51 /******************************************************************************
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
52 * Callbacks
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
53 *****************************************************************************/
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
54 static void
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
55 purple_request_page_notify_group_cb(GObject *obj,
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
56 G_GNUC_UNUSED GParamSpec *pspec,
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
57 gpointer data)
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
58 {
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
59 PurpleRequestPage *page = PURPLE_REQUEST_PAGE(data);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
60 PurpleRequestGroup *group = PURPLE_REQUEST_GROUP(obj);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
61 gboolean before, after;
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
62
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
63 before = purple_request_page_is_valid(page);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
64 if(purple_request_group_is_valid(group)) {
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
65 g_hash_table_remove(page->invalid_groups, group);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
66 } else {
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
67 g_hash_table_add(page->invalid_groups, group);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
68 }
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
69 after = purple_request_page_is_valid(page);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
70
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
71 if(before != after) {
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
72 g_object_notify_by_pspec(G_OBJECT(page), properties[PROP_VALID]);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
73 }
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
74 }
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
75
42158
4a65f0fbc3dc Use GListModel API for request fields in libpurple
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42154
diff changeset
76 static void
4a65f0fbc3dc Use GListModel API for request fields in libpurple
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42154
diff changeset
77 purple_request_page_items_changed_cb(GListModel *list, guint position,
4a65f0fbc3dc Use GListModel API for request fields in libpurple
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42154
diff changeset
78 guint removed, guint added, gpointer data)
4a65f0fbc3dc Use GListModel API for request fields in libpurple
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42154
diff changeset
79 {
4a65f0fbc3dc Use GListModel API for request fields in libpurple
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42154
diff changeset
80 PurpleRequestPage *page = data;
4a65f0fbc3dc Use GListModel API for request fields in libpurple
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42154
diff changeset
81
4a65f0fbc3dc Use GListModel API for request fields in libpurple
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42154
diff changeset
82 /* Groups don't support removing fields, nor do pages support removing
4a65f0fbc3dc Use GListModel API for request fields in libpurple
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42154
diff changeset
83 * groups, so we don't attempt to support that here. */
4a65f0fbc3dc Use GListModel API for request fields in libpurple
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42154
diff changeset
84 g_return_if_fail(removed == 0);
4a65f0fbc3dc Use GListModel API for request fields in libpurple
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42154
diff changeset
85
4a65f0fbc3dc Use GListModel API for request fields in libpurple
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42154
diff changeset
86 for(guint offset = 0; offset < added; offset++) {
4a65f0fbc3dc Use GListModel API for request fields in libpurple
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42154
diff changeset
87 PurpleRequestField *field;
4a65f0fbc3dc Use GListModel API for request fields in libpurple
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42154
diff changeset
88 field = g_list_model_get_item(list, position + offset);
4a65f0fbc3dc Use GListModel API for request fields in libpurple
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42154
diff changeset
89 g_hash_table_insert(page->fields,
4a65f0fbc3dc Use GListModel API for request fields in libpurple
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42154
diff changeset
90 g_strdup(purple_request_field_get_id(field)),
4a65f0fbc3dc Use GListModel API for request fields in libpurple
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42154
diff changeset
91 field);
4a65f0fbc3dc Use GListModel API for request fields in libpurple
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42154
diff changeset
92 g_object_unref(field);
4a65f0fbc3dc Use GListModel API for request fields in libpurple
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42154
diff changeset
93 }
4a65f0fbc3dc Use GListModel API for request fields in libpurple
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42154
diff changeset
94 }
4a65f0fbc3dc Use GListModel API for request fields in libpurple
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42154
diff changeset
95
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
96 /******************************************************************************
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
97 * GListModel Implementation
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
98 *****************************************************************************/
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
99 static GType
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
100 purple_request_page_get_item_type(G_GNUC_UNUSED GListModel *model) {
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
101 return PURPLE_TYPE_REQUEST_GROUP;
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
102 }
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
103
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
104 static guint
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
105 purple_request_page_get_n_items(GListModel *model) {
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
106 PurpleRequestPage *page = PURPLE_REQUEST_PAGE(model);
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
107
42170
c9968cbf01d5 Use GPtrArray internally to PurpleRequest{Group,Page}
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42169
diff changeset
108 return page->groups->len;
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
109 }
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
110
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
111 static gpointer
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
112 purple_request_page_get_item(GListModel *model, guint index) {
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
113 PurpleRequestPage *page = PURPLE_REQUEST_PAGE(model);
42132
358f8573573f Fix refs in request page/group list model implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42129
diff changeset
114 PurpleRequestGroup *group = NULL;
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
115
42170
c9968cbf01d5 Use GPtrArray internally to PurpleRequest{Group,Page}
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42169
diff changeset
116 if(index < page->groups->len) {
c9968cbf01d5 Use GPtrArray internally to PurpleRequest{Group,Page}
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42169
diff changeset
117 group = g_ptr_array_index(page->groups, index);
42132
358f8573573f Fix refs in request page/group list model implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42129
diff changeset
118 g_object_ref(group);
358f8573573f Fix refs in request page/group list model implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42129
diff changeset
119 }
358f8573573f Fix refs in request page/group list model implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42129
diff changeset
120
358f8573573f Fix refs in request page/group list model implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42129
diff changeset
121 return group;
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
122 }
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
123
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
124 static void
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
125 purple_request_page_list_model_init(GListModelInterface *iface) {
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
126 iface->get_item_type = purple_request_page_get_item_type;
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
127 iface->get_item = purple_request_page_get_item;
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
128 iface->get_n_items = purple_request_page_get_n_items;
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
129 }
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
130
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
131 /******************************************************************************
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
132 * GObject Implementation
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
133 *****************************************************************************/
42576
ab1ca778ddb2 Make sure all of the final types in libpurple are defined as such
Gary Kramlich <grim@reaperworld.com>
parents: 42327
diff changeset
134 G_DEFINE_FINAL_TYPE_WITH_CODE(PurpleRequestPage, purple_request_page, G_TYPE_OBJECT,
ab1ca778ddb2 Make sure all of the final types in libpurple are defined as such
Gary Kramlich <grim@reaperworld.com>
parents: 42327
diff changeset
135 G_IMPLEMENT_INTERFACE(G_TYPE_LIST_MODEL,
ab1ca778ddb2 Make sure all of the final types in libpurple are defined as such
Gary Kramlich <grim@reaperworld.com>
parents: 42327
diff changeset
136 purple_request_page_list_model_init))
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
137
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
138 static void
42152
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
139 purple_request_page_get_property(GObject *obj, guint param_id, GValue *value,
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
140 GParamSpec *pspec)
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
141 {
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
142 PurpleRequestPage *page = PURPLE_REQUEST_PAGE(obj);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
143
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
144 switch(param_id) {
42667
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
145 case PROP_ITEM_TYPE:
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
146 g_value_set_gtype(value,
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
147 purple_request_page_get_item_type(G_LIST_MODEL(page)));
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
148 break;
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
149 case PROP_N_ITEMS:
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
150 g_value_set_uint(value,
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
151 purple_request_page_get_n_items(G_LIST_MODEL(page)));
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
152 break;
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
153 case PROP_VALID:
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
154 g_value_set_boolean(value, purple_request_page_is_valid(page));
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
155 break;
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
156 default:
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
157 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
158 break;
42152
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
159 }
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
160 }
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
161
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
162 static void
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
163 purple_request_page_finalize(GObject *obj) {
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
164 PurpleRequestPage *page = PURPLE_REQUEST_PAGE(obj);
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
165
42170
c9968cbf01d5 Use GPtrArray internally to PurpleRequest{Group,Page}
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42169
diff changeset
166 g_clear_pointer(&page->groups, g_ptr_array_unref);
42152
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
167 g_clear_pointer(&page->invalid_groups, g_hash_table_destroy);
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
168 g_hash_table_destroy(page->fields);
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
169
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
170 G_OBJECT_CLASS(purple_request_page_parent_class)->finalize(obj);
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
171 }
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
172
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
173 static void
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
174 purple_request_page_init(PurpleRequestPage *page) {
42170
c9968cbf01d5 Use GPtrArray internally to PurpleRequest{Group,Page}
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42169
diff changeset
175 page->groups = g_ptr_array_new_with_free_func(g_object_unref);
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
176 page->fields = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL);
42152
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
177 page->invalid_groups = g_hash_table_new(g_direct_hash, g_direct_equal);
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
178 }
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
179
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
180 static void
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
181 purple_request_page_class_init(PurpleRequestPageClass *klass) {
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
182 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
183
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
184 obj_class->finalize = purple_request_page_finalize;
42152
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
185 obj_class->get_property = purple_request_page_get_property;
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
186
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
187 /**
42667
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
188 * PurpleRequestPage:item-type:
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
189 *
42984
818220289e67 Update the gi-docgen subproject and fix some new issues it found
Gary Kramlich <grim@reaperworld.com>
parents: 42667
diff changeset
190 * The type of items. See [vfunc@Gio.ListModel.get_item_type].
42667
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
191 *
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
192 * Since: 3.0
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
193 */
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
194 properties[PROP_ITEM_TYPE] = g_param_spec_gtype(
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
195 "item-type", "item-type",
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
196 "The type of the contained items.",
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
197 G_TYPE_OBJECT,
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
198 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
199
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
200 /**
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
201 * PurpleRequestPage:n-items:
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
202 *
42984
818220289e67 Update the gi-docgen subproject and fix some new issues it found
Gary Kramlich <grim@reaperworld.com>
parents: 42667
diff changeset
203 * The number of items. See [vfunc@Gio.ListModel.get_n_items].
42667
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
204 *
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
205 * Since: 3.0
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
206 */
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
207 properties[PROP_N_ITEMS] = g_param_spec_uint(
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
208 "n-items", "n-items",
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
209 "The number of contained items.",
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
210 0, G_MAXUINT, 0,
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
211 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
212
cf3379295bb5 Add item-type and n-items properties to PurpleRequestPage
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
213 /**
42152
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
214 * PurpleRequestPage:valid:
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
215 *
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
216 * Whether all fields in a page are valid.
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
217 *
42617
c8eb73bff6e0 Remove the micro version from since tags for libpurple part 6
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
218 * Since: 3.0
42152
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
219 */
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
220 properties[PROP_VALID] = g_param_spec_boolean(
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
221 "valid", "valid",
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
222 "Whether all fields in a page are valid.",
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
223 TRUE,
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
224 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
225
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
226 g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
227 }
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
228
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
229 /******************************************************************************
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
230 * Public API
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
231 *****************************************************************************/
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
232 PurpleRequestPage *
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
233 purple_request_page_new(void) {
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
234 return g_object_new(PURPLE_TYPE_REQUEST_PAGE, NULL);
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
235 }
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
236
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
237 void
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
238 purple_request_page_add_group(PurpleRequestPage *page,
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
239 PurpleRequestGroup *group)
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
240 {
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
241 guint position;
42158
4a65f0fbc3dc Use GListModel API for request fields in libpurple
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42154
diff changeset
242 GListModel *model = NULL;
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
243
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
244 g_return_if_fail(PURPLE_IS_REQUEST_PAGE(page));
42127
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
245 g_return_if_fail(PURPLE_IS_REQUEST_GROUP(group));
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
246
42170
c9968cbf01d5 Use GPtrArray internally to PurpleRequest{Group,Page}
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42169
diff changeset
247 position = page->groups->len;
c9968cbf01d5 Use GPtrArray internally to PurpleRequest{Group,Page}
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42169
diff changeset
248 g_ptr_array_add(page->groups, group);
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
249
42152
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
250 purple_request_page_notify_group_cb(G_OBJECT(group), NULL, page);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
251 g_signal_connect(group, "notify::valid",
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
252 G_CALLBACK(purple_request_page_notify_group_cb), page);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
253
42158
4a65f0fbc3dc Use GListModel API for request fields in libpurple
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42154
diff changeset
254 model = G_LIST_MODEL(group);
4a65f0fbc3dc Use GListModel API for request fields in libpurple
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42154
diff changeset
255 purple_request_page_items_changed_cb(model, 0, 0,
4a65f0fbc3dc Use GListModel API for request fields in libpurple
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42154
diff changeset
256 g_list_model_get_n_items(model),
4a65f0fbc3dc Use GListModel API for request fields in libpurple
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42154
diff changeset
257 page);
4a65f0fbc3dc Use GListModel API for request fields in libpurple
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42154
diff changeset
258 g_signal_connect(group, "items-changed",
4a65f0fbc3dc Use GListModel API for request fields in libpurple
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42154
diff changeset
259 G_CALLBACK(purple_request_page_items_changed_cb), page);
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
260
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
261 g_list_model_items_changed(G_LIST_MODEL(page), position, 0, 1);
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
262 }
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
263
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8285
diff changeset
264 gboolean
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
265 purple_request_page_exists(PurpleRequestPage *page, const char *id) {
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
266 g_return_val_if_fail(PURPLE_IS_REQUEST_PAGE(page), FALSE);
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8285
diff changeset
267 g_return_val_if_fail(id != NULL, FALSE);
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8285
diff changeset
268
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
269 return (g_hash_table_lookup(page->fields, id) != NULL);
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8285
diff changeset
270 }
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8285
diff changeset
271
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8285
diff changeset
272 gboolean
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
273 purple_request_page_is_field_required(PurpleRequestPage *page, const char *id)
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8285
diff changeset
274 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
275 PurpleRequestField *field;
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8285
diff changeset
276
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
277 g_return_val_if_fail(PURPLE_IS_REQUEST_PAGE(page), FALSE);
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8285
diff changeset
278 g_return_val_if_fail(id != NULL, FALSE);
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8285
diff changeset
279
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
280 if((field = purple_request_page_get_field(page, id)) == NULL) {
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8285
diff changeset
281 return FALSE;
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
282 }
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8285
diff changeset
283
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
284 return purple_request_field_is_required(field);
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8285
diff changeset
285 }
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8285
diff changeset
286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8285
diff changeset
287 gboolean
42152
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
288 purple_request_page_is_valid(PurpleRequestPage *page) {
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
289 g_return_val_if_fail(PURPLE_IS_REQUEST_PAGE(page), FALSE);
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8285
diff changeset
290
42152
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42145
diff changeset
291 return g_hash_table_size(page->invalid_groups) == 0;
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8285
diff changeset
292 }
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8285
diff changeset
293
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
294 PurpleRequestField *
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
295 purple_request_page_get_field(PurpleRequestPage *page, const char *id) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
296 PurpleRequestField *field;
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
297
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
298 g_return_val_if_fail(PURPLE_IS_REQUEST_PAGE(page), NULL);
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
299 g_return_val_if_fail(id != NULL, NULL);
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
300
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
301 field = g_hash_table_lookup(page->fields, id);
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
302
42124
472dc8caeda3 Convert PurpleRequestField into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42122
diff changeset
303 g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), NULL);
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
304
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
305 return field;
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
306 }
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
307
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
308 const char *
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
309 purple_request_page_get_string(PurpleRequestPage *page, const char *id) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
310 PurpleRequestField *field;
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
311
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
312 g_return_val_if_fail(PURPLE_IS_REQUEST_PAGE(page), NULL);
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
313 g_return_val_if_fail(id != NULL, NULL);
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
314
42135
1a89a067a0d5 Add a PurpleRequestFieldString subclass
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42134
diff changeset
315 field = purple_request_page_get_field(page, id);
1a89a067a0d5 Add a PurpleRequestFieldString subclass
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42134
diff changeset
316 if(!PURPLE_IS_REQUEST_FIELD_STRING(field)) {
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
317 return NULL;
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
318 }
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
319
42135
1a89a067a0d5 Add a PurpleRequestFieldString subclass
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42134
diff changeset
320 return purple_request_field_string_get_value(PURPLE_REQUEST_FIELD_STRING(field));
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
321 }
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
322
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
323 int
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
324 purple_request_page_get_integer(PurpleRequestPage *page, const char *id) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
325 PurpleRequestField *field;
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
326
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
327 g_return_val_if_fail(PURPLE_IS_REQUEST_PAGE(page), 0);
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
328 g_return_val_if_fail(id != NULL, 0);
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
329
42137
59ceb87dc43c Make PurpleRequestFieldInt into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42136
diff changeset
330 field = purple_request_page_get_field(page, id);
59ceb87dc43c Make PurpleRequestFieldInt into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42136
diff changeset
331 if(!PURPLE_IS_REQUEST_FIELD_INT(field)) {
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
332 return 0;
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
333 }
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
334
42137
59ceb87dc43c Make PurpleRequestFieldInt into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42136
diff changeset
335 return purple_request_field_int_get_value(PURPLE_REQUEST_FIELD_INT(field));
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
336 }
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
337
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
338 gboolean
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
339 purple_request_page_get_bool(PurpleRequestPage *page, const char *id) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
340 PurpleRequestField *field;
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
341
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
342 g_return_val_if_fail(PURPLE_IS_REQUEST_PAGE(page), FALSE);
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
343 g_return_val_if_fail(id != NULL, FALSE);
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
344
42136
cfa707dcda7d Make PurpleRequestFieldBool into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42135
diff changeset
345 field = purple_request_page_get_field(page, id);
cfa707dcda7d Make PurpleRequestFieldBool into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42135
diff changeset
346 if(!PURPLE_IS_REQUEST_FIELD_BOOL(field)) {
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
347 return FALSE;
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
348 }
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
349
42136
cfa707dcda7d Make PurpleRequestFieldBool into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42135
diff changeset
350 return purple_request_field_bool_get_value(PURPLE_REQUEST_FIELD_BOOL(field));
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
351 }
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
352
34338
c652670afac5 Request API refactoring: custom PURPLE_REQUEST_CHOICE values, instead of indexes
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34336
diff changeset
353 gpointer
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
354 purple_request_page_get_choice(PurpleRequestPage *page, const char *id) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
355 PurpleRequestField *field;
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
356
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
357 g_return_val_if_fail(PURPLE_IS_REQUEST_PAGE(page), NULL);
34338
c652670afac5 Request API refactoring: custom PURPLE_REQUEST_CHOICE values, instead of indexes
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34336
diff changeset
358 g_return_val_if_fail(id != NULL, NULL);
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
359
42139
c053558f1236 Make PurpleRequestFieldChoice into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42137
diff changeset
360 field = purple_request_page_get_field(page, id);
c053558f1236 Make PurpleRequestFieldChoice into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42137
diff changeset
361 if(!PURPLE_IS_REQUEST_FIELD_CHOICE(field)) {
34338
c652670afac5 Request API refactoring: custom PURPLE_REQUEST_CHOICE values, instead of indexes
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34336
diff changeset
362 return NULL;
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
363 }
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
364
42139
c053558f1236 Make PurpleRequestFieldChoice into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42137
diff changeset
365 return purple_request_field_choice_get_value(PURPLE_REQUEST_FIELD_CHOICE(field));
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
366 }
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
367
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
368 PurpleAccount *
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
369 purple_request_page_get_account(PurpleRequestPage *page, const char *id) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
370 PurpleRequestField *field;
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8285
diff changeset
371
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
372 g_return_val_if_fail(PURPLE_IS_REQUEST_PAGE(page), NULL);
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8285
diff changeset
373 g_return_val_if_fail(id != NULL, NULL);
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8285
diff changeset
374
42134
1b5ce0f4302d Make PurpleRequestFieldAccount into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42132
diff changeset
375 field = purple_request_page_get_field(page, id);
1b5ce0f4302d Make PurpleRequestFieldAccount into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42132
diff changeset
376 if(!PURPLE_IS_REQUEST_FIELD_ACCOUNT(field)) {
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8285
diff changeset
377 return NULL;
42128
118067ca0367 Convert PurpleRequestPage into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42127
diff changeset
378 }
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8285
diff changeset
379
42134
1b5ce0f4302d Make PurpleRequestFieldAccount into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42132
diff changeset
380 return purple_request_field_account_get_value(PURPLE_REQUEST_FIELD_ACCOUNT(field));
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8285
diff changeset
381 }

mercurial