comparison finch/gntrequest.c @ 22217:ad357ca94de9

We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Sat, 26 Jan 2008 22:33:08 +0000
parents 6bb29f94862c
children 1f256f63c52c
comparison
equal deleted inserted replaced
22216:b99d6d21cd79 22217:ad357ca94de9
306 { 306 {
307 PurpleRequestField *field = fields->data; 307 PurpleRequestField *field = fields->data;
308 PurpleRequestFieldType type = purple_request_field_get_type(field); 308 PurpleRequestFieldType type = purple_request_field_get_type(field);
309 if (type == PURPLE_REQUEST_FIELD_BOOLEAN) 309 if (type == PURPLE_REQUEST_FIELD_BOOLEAN)
310 { 310 {
311 GntWidget *check = field->ui_data; 311 GntWidget *check = FINCH_GET_DATA(field);
312 gboolean value = gnt_check_box_get_checked(GNT_CHECK_BOX(check)); 312 gboolean value = gnt_check_box_get_checked(GNT_CHECK_BOX(check));
313 purple_request_field_bool_set_value(field, value); 313 purple_request_field_bool_set_value(field, value);
314 } 314 }
315 else if (type == PURPLE_REQUEST_FIELD_STRING) 315 else if (type == PURPLE_REQUEST_FIELD_STRING)
316 { 316 {
317 GntWidget *entry = field->ui_data; 317 GntWidget *entry = FINCH_GET_DATA(field);
318 const char *text = gnt_entry_get_text(GNT_ENTRY(entry)); 318 const char *text = gnt_entry_get_text(GNT_ENTRY(entry));
319 purple_request_field_string_set_value(field, (text && *text) ? text : NULL); 319 purple_request_field_string_set_value(field, (text && *text) ? text : NULL);
320 } 320 }
321 else if (type == PURPLE_REQUEST_FIELD_INTEGER) 321 else if (type == PURPLE_REQUEST_FIELD_INTEGER)
322 { 322 {
323 GntWidget *entry = field->ui_data; 323 GntWidget *entry = FINCH_GET_DATA(field);
324 const char *text = gnt_entry_get_text(GNT_ENTRY(entry)); 324 const char *text = gnt_entry_get_text(GNT_ENTRY(entry));
325 int value = (text && *text) ? atoi(text) : 0; 325 int value = (text && *text) ? atoi(text) : 0;
326 purple_request_field_int_set_value(field, value); 326 purple_request_field_int_set_value(field, value);
327 } 327 }
328 else if (type == PURPLE_REQUEST_FIELD_CHOICE) 328 else if (type == PURPLE_REQUEST_FIELD_CHOICE)
329 { 329 {
330 GntWidget *combo = field->ui_data; 330 GntWidget *combo = FINCH_GET_DATA(field);
331 int id; 331 int id;
332 id = GPOINTER_TO_INT(gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo))); 332 id = GPOINTER_TO_INT(gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo)));
333 purple_request_field_choice_set_value(field, id); 333 purple_request_field_choice_set_value(field, id);
334 } 334 }
335 else if (type == PURPLE_REQUEST_FIELD_LIST) 335 else if (type == PURPLE_REQUEST_FIELD_LIST)
336 { 336 {
337 GList *list = NULL; 337 GList *list = NULL;
338 if (purple_request_field_list_get_multi_select(field)) 338 if (purple_request_field_list_get_multi_select(field))
339 { 339 {
340 GList *iter; 340 GList *iter;
341 GntWidget *tree = field->ui_data; 341 GntWidget *tree = FINCH_GET_DATA(field);
342 342
343 iter = purple_request_field_list_get_items(field); 343 iter = purple_request_field_list_get_items(field);
344 for (; iter; iter = iter->next) 344 for (; iter; iter = iter->next)
345 { 345 {
346 const char *text = iter->data; 346 const char *text = iter->data;
349 list = g_list_prepend(list, key); 349 list = g_list_prepend(list, key);
350 } 350 }
351 } 351 }
352 else 352 else
353 { 353 {
354 GntWidget *combo = field->ui_data; 354 GntWidget *combo = FINCH_GET_DATA(field);
355 gpointer data = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo)); 355 gpointer data = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo));
356 list = g_list_append(list, data); 356 list = g_list_append(list, data);
357 } 357 }
358 358
359 purple_request_field_list_set_selected(field, list); 359 purple_request_field_list_set_selected(field, list);
360 g_list_free(list); 360 g_list_free(list);
361 } 361 }
362 else if (type == PURPLE_REQUEST_FIELD_ACCOUNT) 362 else if (type == PURPLE_REQUEST_FIELD_ACCOUNT)
363 { 363 {
364 GntWidget *combo = field->ui_data; 364 GntWidget *combo = FINCH_GET_DATA(field);
365 PurpleAccount *acc = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo)); 365 PurpleAccount *acc = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo));
366 purple_request_field_account_set_value(field, acc); 366 purple_request_field_account_set_value(field, acc);
367 } 367 }
368 } 368 }
369 } 369 }
592 gnt_box_add_widget(GNT_BOX(hbox), l); 592 gnt_box_add_widget(GNT_BOX(hbox), l);
593 } 593 }
594 594
595 if (type == PURPLE_REQUEST_FIELD_BOOLEAN) 595 if (type == PURPLE_REQUEST_FIELD_BOOLEAN)
596 { 596 {
597 field->ui_data = create_boolean_field(field); 597 FINCH_SET_DATA(field, create_boolean_field(field));
598 } 598 }
599 else if (type == PURPLE_REQUEST_FIELD_STRING) 599 else if (type == PURPLE_REQUEST_FIELD_STRING)
600 { 600 {
601 field->ui_data = create_string_field(field, &screenname); 601 FINCH_SET_DATA(field, create_string_field(field, &screenname));
602 } 602 }
603 else if (type == PURPLE_REQUEST_FIELD_INTEGER) 603 else if (type == PURPLE_REQUEST_FIELD_INTEGER)
604 { 604 {
605 field->ui_data = create_integer_field(field); 605 FINCH_SET_DATA(field, create_integer_field(field));
606 } 606 }
607 else if (type == PURPLE_REQUEST_FIELD_CHOICE) 607 else if (type == PURPLE_REQUEST_FIELD_CHOICE)
608 { 608 {
609 field->ui_data = create_choice_field(field); 609 FINCH_SET_DATA(field, create_choice_field(field));
610 } 610 }
611 else if (type == PURPLE_REQUEST_FIELD_LIST) 611 else if (type == PURPLE_REQUEST_FIELD_LIST)
612 { 612 {
613 field->ui_data = create_list_field(field); 613 FINCH_SET_DATA(field, create_list_field(field));
614 } 614 }
615 else if (type == PURPLE_REQUEST_FIELD_ACCOUNT) 615 else if (type == PURPLE_REQUEST_FIELD_ACCOUNT)
616 { 616 {
617 accountlist = field->ui_data = create_account_field(field); 617 accountlist = FINCH_SET_DATA(field, create_account_field(field));
618 } 618 }
619 else 619 else
620 { 620 {
621 field->ui_data = gnt_label_new_with_format(_("Not implemented yet."), 621 FINCH_SET_DATA(field, gnt_label_new_with_format(_("Not implemented yet."),
622 GNT_TEXT_FLAG_BOLD); 622 GNT_TEXT_FLAG_BOLD));
623 } 623 }
624 gnt_box_set_alignment(GNT_BOX(hbox), GNT_ALIGN_MID); 624 gnt_box_set_alignment(GNT_BOX(hbox), GNT_ALIGN_MID);
625 gnt_box_add_widget(GNT_BOX(hbox), GNT_WIDGET(field->ui_data)); 625 gnt_box_add_widget(GNT_BOX(hbox), GNT_WIDGET(FINCH_GET_DATA(field)));
626 } 626 }
627 if (grlist->next) 627 if (grlist->next)
628 gnt_box_add_widget(GNT_BOX(box), gnt_hline_new()); 628 gnt_box_add_widget(GNT_BOX(box), gnt_hline_new());
629 } 629 }
630 gnt_box_add_widget(GNT_BOX(window), box); 630 gnt_box_add_widget(GNT_BOX(window), box);