| 52 PROP_ADD, |
52 PROP_ADD, |
| 53 N_PROPERTIES, |
53 N_PROPERTIES, |
| 54 }; |
54 }; |
| 55 static GParamSpec *properties[N_PROPERTIES] = {NULL, }; |
55 static GParamSpec *properties[N_PROPERTIES] = {NULL, }; |
| 56 |
56 |
| 57 G_DEFINE_FINAL_TYPE(PurpleAuthorizationRequest, purple_authorization_request, |
|
| 58 G_TYPE_OBJECT) |
|
| 59 |
|
| 60 /****************************************************************************** |
57 /****************************************************************************** |
| 61 * Helpers |
58 * Helpers |
| 62 *****************************************************************************/ |
59 *****************************************************************************/ |
| 63 static void |
60 static void |
| 64 purple_authorization_request_set_account(PurpleAuthorizationRequest *request, |
61 purple_authorization_request_set_account(PurpleAuthorizationRequest *request, |
| 72 } |
69 } |
| 73 } |
70 } |
| 74 |
71 |
| 75 static void |
72 static void |
| 76 purple_authorization_request_set_username(PurpleAuthorizationRequest *request, |
73 purple_authorization_request_set_username(PurpleAuthorizationRequest *request, |
| 77 const gchar *username) |
74 const char *username) |
| 78 { |
75 { |
| 79 g_return_if_fail(PURPLE_IS_AUTHORIZATION_REQUEST(request)); |
76 g_return_if_fail(PURPLE_IS_AUTHORIZATION_REQUEST(request)); |
| 80 |
77 |
| 81 if(g_set_str(&request->username, username)) { |
78 if(g_set_str(&request->username, username)) { |
| 82 g_object_notify_by_pspec(G_OBJECT(request), properties[PROP_USERNAME]); |
79 g_object_notify_by_pspec(G_OBJECT(request), properties[PROP_USERNAME]); |
| 84 } |
81 } |
| 85 |
82 |
| 86 /****************************************************************************** |
83 /****************************************************************************** |
| 87 * GObject Implementation |
84 * GObject Implementation |
| 88 *****************************************************************************/ |
85 *****************************************************************************/ |
| |
86 G_DEFINE_FINAL_TYPE(PurpleAuthorizationRequest, purple_authorization_request, |
| |
87 G_TYPE_OBJECT) |
| |
88 |
| 89 static void |
89 static void |
| 90 purple_authorization_request_get_property(GObject *obj, guint param_id, |
90 purple_authorization_request_get_property(GObject *obj, guint param_id, |
| 91 GValue *value, GParamSpec *pspec) |
91 GValue *value, GParamSpec *pspec) |
| 92 { |
92 { |
| 93 PurpleAuthorizationRequest *request = PURPLE_AUTHORIZATION_REQUEST(obj); |
93 PurpleAuthorizationRequest *request = PURPLE_AUTHORIZATION_REQUEST(obj); |
| 94 |
94 |
| 95 switch(param_id) { |
95 switch(param_id) { |
| 96 case PROP_ACCOUNT: |
96 case PROP_ACCOUNT: |
| 97 g_value_set_object(value, |
97 g_value_set_object(value, |
| 98 purple_authorization_request_get_account(request)); |
98 purple_authorization_request_get_account(request)); |
| 99 break; |
99 break; |
| 100 case PROP_USERNAME: |
100 case PROP_USERNAME: |
| 101 g_value_set_string(value, |
101 g_value_set_string(value, |
| 102 purple_authorization_request_get_username(request)); |
102 purple_authorization_request_get_username(request)); |
| 103 break; |
103 break; |
| 104 case PROP_ALIAS: |
104 case PROP_ALIAS: |
| 105 g_value_set_string(value, |
105 g_value_set_string(value, |
| 106 purple_authorization_request_get_alias(request)); |
106 purple_authorization_request_get_alias(request)); |
| 107 break; |
107 break; |
| 108 case PROP_MESSAGE: |
108 case PROP_MESSAGE: |
| 109 g_value_set_string(value, |
109 g_value_set_string(value, |
| 110 purple_authorization_request_get_message(request)); |
110 purple_authorization_request_get_message(request)); |
| 111 break; |
111 break; |
| 112 case PROP_ADD: |
112 case PROP_ADD: |
| 113 g_value_set_boolean(value, |
113 g_value_set_boolean(value, |
| 114 purple_authorization_request_get_add(request)); |
114 purple_authorization_request_get_add(request)); |
| 115 break; |
115 break; |
| 116 default: |
116 default: |
| 117 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); |
117 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); |
| 118 break; |
118 break; |
| 119 } |
119 } |
| 120 } |
120 } |
| 121 |
121 |
| 122 static void |
122 static void |
| 123 purple_authorization_request_set_property(GObject *obj, guint param_id, |
123 purple_authorization_request_set_property(GObject *obj, guint param_id, |
| 125 GParamSpec *pspec) |
125 GParamSpec *pspec) |
| 126 { |
126 { |
| 127 PurpleAuthorizationRequest *request = PURPLE_AUTHORIZATION_REQUEST(obj); |
127 PurpleAuthorizationRequest *request = PURPLE_AUTHORIZATION_REQUEST(obj); |
| 128 |
128 |
| 129 switch(param_id) { |
129 switch(param_id) { |
| 130 case PROP_ACCOUNT: |
130 case PROP_ACCOUNT: |
| 131 purple_authorization_request_set_account(request, |
131 purple_authorization_request_set_account(request, |
| 132 g_value_get_object(value)); |
132 g_value_get_object(value)); |
| 133 break; |
133 break; |
| 134 case PROP_USERNAME: |
134 case PROP_USERNAME: |
| 135 purple_authorization_request_set_username(request, |
135 purple_authorization_request_set_username(request, |
| 136 g_value_get_string(value)); |
136 g_value_get_string(value)); |
| 137 break; |
137 break; |
| 138 case PROP_ALIAS: |
138 case PROP_ALIAS: |
| 139 purple_authorization_request_set_alias(request, |
139 purple_authorization_request_set_alias(request, |
| 140 g_value_get_string(value)); |
140 g_value_get_string(value)); |
| 141 break; |
141 break; |
| 142 case PROP_MESSAGE: |
142 case PROP_MESSAGE: |
| 143 purple_authorization_request_set_message(request, |
143 purple_authorization_request_set_message(request, |
| 144 g_value_get_string(value)); |
144 g_value_get_string(value)); |
| 145 break; |
145 break; |
| 146 case PROP_ADD: |
146 case PROP_ADD: |
| 147 purple_authorization_request_set_add(request, |
147 purple_authorization_request_set_add(request, |
| 148 g_value_get_boolean(value)); |
148 g_value_get_boolean(value)); |
| 149 break; |
149 break; |
| 150 default: |
150 default: |
| 151 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); |
151 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); |
| 152 break; |
152 break; |
| 153 } |
153 } |
| 154 } |
154 } |
| 155 |
155 |
| 156 static void |
156 static void |
| 157 purple_authorization_request_dispose(GObject *obj) { |
157 purple_authorization_request_dispose(GObject *obj) { |
| 187 obj_class->set_property = purple_authorization_request_set_property; |
187 obj_class->set_property = purple_authorization_request_set_property; |
| 188 obj_class->dispose = purple_authorization_request_dispose; |
188 obj_class->dispose = purple_authorization_request_dispose; |
| 189 obj_class->finalize = purple_authorization_request_finalize; |
189 obj_class->finalize = purple_authorization_request_finalize; |
| 190 |
190 |
| 191 /** |
191 /** |
| |
192 * PurpleAuthorizationRequest:account: |
| |
193 * |
| |
194 * The account that this authorization request is for. |
| |
195 * |
| |
196 * Since: 3.0 |
| |
197 */ |
| |
198 properties[PROP_ACCOUNT] = g_param_spec_object( |
| |
199 "account", NULL, NULL, |
| |
200 PURPLE_TYPE_ACCOUNT, |
| |
201 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); |
| |
202 |
| |
203 /** |
| |
204 * PurpleAuthorizationRequest:username: |
| |
205 * |
| |
206 * The username of the remote user that is requesting authorization. |
| |
207 * |
| |
208 * Since: 3.0 |
| |
209 */ |
| |
210 properties[PROP_USERNAME] = g_param_spec_string( |
| |
211 "username", NULL, NULL, |
| |
212 NULL, |
| |
213 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); |
| |
214 |
| |
215 /** |
| |
216 * PurpleAuthorizationRequest:alias: |
| |
217 * |
| |
218 * The alias of the remote user that is requesting authorization. |
| |
219 * |
| |
220 * Since: 3.0 |
| |
221 */ |
| |
222 properties[PROP_ALIAS] = g_param_spec_string( |
| |
223 "alias", NULL, NULL, |
| |
224 NULL, |
| |
225 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); |
| |
226 |
| |
227 /** |
| |
228 * PurpleAuthorizationRequest:message: |
| |
229 * |
| |
230 * The optional message sent from the remote user. |
| |
231 * |
| |
232 * Since: 3.0 |
| |
233 */ |
| |
234 properties[PROP_MESSAGE] = g_param_spec_string( |
| |
235 "message", NULL, NULL, |
| |
236 NULL, |
| |
237 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); |
| |
238 |
| |
239 /** |
| |
240 * PurpleAuthorizationRequest:add: |
| |
241 * |
| |
242 * Whether or not the user interface should ask the end user to add the |
| |
243 * remote user after accepting the end user's friend request. |
| |
244 * |
| |
245 * Since: 3.0 |
| |
246 */ |
| |
247 properties[PROP_ADD] = g_param_spec_boolean( |
| |
248 "add", NULL, NULL, |
| |
249 FALSE, |
| |
250 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); |
| |
251 |
| |
252 g_object_class_install_properties(obj_class, N_PROPERTIES, properties); |
| |
253 |
| |
254 /** |
| 192 * PurpleAuthorizationRequest::accepted: |
255 * PurpleAuthorizationRequest::accepted: |
| 193 * @request: The [class@AuthorizationRequest] instance. |
256 * @request: The [class@AuthorizationRequest] instance. |
| 194 * |
257 * |
| 195 * Emitted when the user has accepted @request. This is typically emitted |
258 * Emitted when the user has accepted @request. This is typically emitted |
| 196 * by the user interface calling [method@AuthorizationRequest.accept]. |
259 * by the user interface calling [method@AuthorizationRequest.accept]. |
| 227 NULL, |
290 NULL, |
| 228 NULL, |
291 NULL, |
| 229 G_TYPE_NONE, |
292 G_TYPE_NONE, |
| 230 1, |
293 1, |
| 231 G_TYPE_STRING); |
294 G_TYPE_STRING); |
| 232 |
|
| 233 /** |
|
| 234 * PurpleAuthorizationRequest:account: |
|
| 235 * |
|
| 236 * The account that this authorization request is for. |
|
| 237 * |
|
| 238 * Since: 3.0 |
|
| 239 */ |
|
| 240 properties[PROP_ACCOUNT] = g_param_spec_object( |
|
| 241 "account", "account", |
|
| 242 "The account for this authorization request", |
|
| 243 PURPLE_TYPE_ACCOUNT, |
|
| 244 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); |
|
| 245 |
|
| 246 /** |
|
| 247 * PurpleAuthorizationRequest:username: |
|
| 248 * |
|
| 249 * The username of the remote user that is requesting authorization. |
|
| 250 * |
|
| 251 * Since: 3.0 |
|
| 252 */ |
|
| 253 properties[PROP_USERNAME] = g_param_spec_string( |
|
| 254 "username", "username", |
|
| 255 "The username of the remote user that is requesting authorization", |
|
| 256 NULL, |
|
| 257 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); |
|
| 258 |
|
| 259 /** |
|
| 260 * PurpleAuthorizationRequest:alias: |
|
| 261 * |
|
| 262 * The alias of the remote user that is requesting authorization. |
|
| 263 * |
|
| 264 * Since: 3.0 |
|
| 265 */ |
|
| 266 properties[PROP_ALIAS] = g_param_spec_string( |
|
| 267 "alias", "alias", |
|
| 268 "The alias of the remote user that is requesting authorization", |
|
| 269 NULL, |
|
| 270 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); |
|
| 271 |
|
| 272 /** |
|
| 273 * PurpleAuthorizationRequest:message: |
|
| 274 * |
|
| 275 * The optional message sent from the remote user. |
|
| 276 * |
|
| 277 * Since: 3.0 |
|
| 278 */ |
|
| 279 properties[PROP_MESSAGE] = g_param_spec_string( |
|
| 280 "message", "message", |
|
| 281 "The optional message sent by the remote user", |
|
| 282 NULL, |
|
| 283 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); |
|
| 284 |
|
| 285 /** |
|
| 286 * PurpleAuthorizationRequest:add: |
|
| 287 * |
|
| 288 * Whether or not the user interface should ask the end user to add the |
|
| 289 * remote user after accepting the end user's friend request. |
|
| 290 * |
|
| 291 * Since: 3.0 |
|
| 292 */ |
|
| 293 properties[PROP_ADD] = g_param_spec_boolean( |
|
| 294 "add", "add", |
|
| 295 "Whether or not to add the remote user back", |
|
| 296 FALSE, |
|
| 297 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); |
|
| 298 |
|
| 299 g_object_class_install_properties(obj_class, N_PROPERTIES, properties); |
|
| 300 } |
295 } |
| 301 |
296 |
| 302 /****************************************************************************** |
297 /****************************************************************************** |
| 303 * Public API |
298 * Public API |
| 304 *****************************************************************************/ |
299 *****************************************************************************/ |
| 305 PurpleAuthorizationRequest * |
300 PurpleAuthorizationRequest * |
| 306 purple_authorization_request_new(PurpleAccount *account, const gchar *username) |
301 purple_authorization_request_new(PurpleAccount *account, const char *username) |
| 307 { |
302 { |
| 308 g_return_val_if_fail(PURPLE_IS_ACCOUNT(account), NULL); |
303 g_return_val_if_fail(PURPLE_IS_ACCOUNT(account), NULL); |
| 309 g_return_val_if_fail(username != NULL, NULL); |
304 g_return_val_if_fail(username != NULL, NULL); |
| 310 |
305 |
| 311 return g_object_new( |
306 return g_object_new( |
| 320 g_return_val_if_fail(PURPLE_IS_AUTHORIZATION_REQUEST(request), NULL); |
315 g_return_val_if_fail(PURPLE_IS_AUTHORIZATION_REQUEST(request), NULL); |
| 321 |
316 |
| 322 return request->account; |
317 return request->account; |
| 323 } |
318 } |
| 324 |
319 |
| 325 const gchar * |
320 const char * |
| 326 purple_authorization_request_get_username(PurpleAuthorizationRequest *request) |
321 purple_authorization_request_get_username(PurpleAuthorizationRequest *request) |
| 327 { |
322 { |
| 328 g_return_val_if_fail(PURPLE_IS_AUTHORIZATION_REQUEST(request), NULL); |
323 g_return_val_if_fail(PURPLE_IS_AUTHORIZATION_REQUEST(request), NULL); |
| 329 |
324 |
| 330 return request->username; |
325 return request->username; |
| 331 } |
326 } |
| 332 |
327 |
| 333 void |
328 void |
| 334 purple_authorization_request_set_alias(PurpleAuthorizationRequest *request, |
329 purple_authorization_request_set_alias(PurpleAuthorizationRequest *request, |
| 335 const gchar *alias) |
330 const char *alias) |
| 336 { |
331 { |
| 337 g_return_if_fail(PURPLE_IS_AUTHORIZATION_REQUEST(request)); |
332 g_return_if_fail(PURPLE_IS_AUTHORIZATION_REQUEST(request)); |
| 338 |
333 |
| 339 if(g_set_str(&request->alias, alias)) { |
334 if(g_set_str(&request->alias, alias)) { |
| 340 g_object_notify_by_pspec(G_OBJECT(request), properties[PROP_ALIAS]); |
335 g_object_notify_by_pspec(G_OBJECT(request), properties[PROP_ALIAS]); |
| 341 } |
336 } |
| 342 } |
337 } |
| 343 |
338 |
| 344 const gchar * |
339 const char * |
| 345 purple_authorization_request_get_alias(PurpleAuthorizationRequest *request) { |
340 purple_authorization_request_get_alias(PurpleAuthorizationRequest *request) { |
| 346 g_return_val_if_fail(PURPLE_IS_AUTHORIZATION_REQUEST(request), NULL); |
341 g_return_val_if_fail(PURPLE_IS_AUTHORIZATION_REQUEST(request), NULL); |
| 347 |
342 |
| 348 return request->alias; |
343 return request->alias; |
| 349 } |
344 } |
| 350 |
345 |
| 351 void |
346 void |
| 352 purple_authorization_request_set_message(PurpleAuthorizationRequest *request, |
347 purple_authorization_request_set_message(PurpleAuthorizationRequest *request, |
| 353 const gchar *message) |
348 const char *message) |
| 354 { |
349 { |
| 355 g_return_if_fail(PURPLE_IS_AUTHORIZATION_REQUEST(request)); |
350 g_return_if_fail(PURPLE_IS_AUTHORIZATION_REQUEST(request)); |
| 356 |
351 |
| 357 if(g_set_str(&request->message, message)) { |
352 if(g_set_str(&request->message, message)) { |
| 358 g_object_notify_by_pspec(G_OBJECT(request), properties[PROP_MESSAGE]); |
353 g_object_notify_by_pspec(G_OBJECT(request), properties[PROP_MESSAGE]); |
| 359 } |
354 } |
| 360 } |
355 } |
| 361 |
356 |
| 362 const gchar * |
357 const char * |
| 363 purple_authorization_request_get_message(PurpleAuthorizationRequest *request) { |
358 purple_authorization_request_get_message(PurpleAuthorizationRequest *request) { |
| 364 g_return_val_if_fail(PURPLE_IS_AUTHORIZATION_REQUEST(request), NULL); |
359 g_return_val_if_fail(PURPLE_IS_AUTHORIZATION_REQUEST(request), NULL); |
| 365 |
360 |
| 366 return request->message; |
361 return request->message; |
| 367 } |
362 } |
| 396 g_signal_emit(request, signals[SIG_ACCEPTED], 0); |
391 g_signal_emit(request, signals[SIG_ACCEPTED], 0); |
| 397 } |
392 } |
| 398 |
393 |
| 399 void |
394 void |
| 400 purple_authorization_request_deny(PurpleAuthorizationRequest *request, |
395 purple_authorization_request_deny(PurpleAuthorizationRequest *request, |
| 401 const gchar *message) |
396 const char *message) |
| 402 { |
397 { |
| 403 g_return_if_fail(PURPLE_IS_AUTHORIZATION_REQUEST(request)); |
398 g_return_if_fail(PURPLE_IS_AUTHORIZATION_REQUEST(request)); |
| 404 |
399 |
| 405 /* Calling this multiple times is a programming error. */ |
400 /* Calling this multiple times is a programming error. */ |
| 406 g_return_if_fail(request->handled == FALSE); |
401 g_return_if_fail(request->handled == FALSE); |