| 91 |
91 |
| 92 gaim_request_close(GAIM_REQUEST_INPUT, data); |
92 gaim_request_close(GAIM_REQUEST_INPUT, data); |
| 93 } |
93 } |
| 94 |
94 |
| 95 static void |
95 static void |
| |
96 field_string_focus_out_cb(GtkEntry *entry, GaimRequestField *field) |
| |
97 { |
| |
98 gaim_request_field_string_set_value(field, |
| |
99 gtk_entry_get_text(entry)); |
| |
100 } |
| |
101 |
| |
102 static void |
| |
103 field_int_focus_out_cb(GtkEntry *entry, GaimRequestField *field) |
| |
104 { |
| |
105 gaim_request_field_int_set_value(field, |
| |
106 atoi(gtk_entry_get_text(entry))); |
| |
107 } |
| |
108 |
| |
109 static void |
| |
110 field_bool_cb(GtkToggleButton *button, GaimRequestField *field) |
| |
111 { |
| |
112 gaim_request_field_bool_set_value(field, |
| |
113 gtk_toggle_button_get_active(button)); |
| |
114 } |
| |
115 |
| |
116 static void |
| |
117 field_choice_menu_cb(GtkOptionMenu *menu, GaimRequestField *field) |
| |
118 { |
| |
119 gaim_request_field_choice_set_value(field, |
| |
120 gtk_option_menu_get_history(menu)); |
| |
121 } |
| |
122 |
| |
123 static void |
| |
124 field_choice_option_cb(GtkRadioButton *button, GaimRequestField *field) |
| |
125 { |
| |
126 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button))) |
| |
127 gaim_request_field_choice_set_value(field, |
| |
128 g_slist_index(gtk_radio_button_get_group(button), button)); |
| |
129 } |
| |
130 |
| |
131 static void |
| 96 multifield_ok_cb(GtkWidget *button, GaimGtkRequestData *data) |
132 multifield_ok_cb(GtkWidget *button, GaimGtkRequestData *data) |
| 97 { |
133 { |
| 98 if (data->cbs[0] != NULL) |
134 if (data->cbs[0] != NULL) |
| 99 ((GaimRequestFieldsCb)data->cbs[0])(data->user_data, |
135 ((GaimRequestFieldsCb)data->cbs[0])(data->user_data, |
| 100 data->u.multifield.fields); |
136 data->u.multifield.fields); |
| 487 |
523 |
| 488 value = gaim_request_field_string_get_default_value(field); |
524 value = gaim_request_field_string_get_default_value(field); |
| 489 |
525 |
| 490 if (value != NULL) |
526 if (value != NULL) |
| 491 gtk_entry_set_text(GTK_ENTRY(widget), value); |
527 gtk_entry_set_text(GTK_ENTRY(widget), value); |
| |
528 |
| |
529 g_signal_connect(G_OBJECT(widget), "focus-out-event", |
| |
530 G_CALLBACK(field_string_focus_out_cb), |
| |
531 field); |
| 492 } |
532 } |
| 493 else if (type == GAIM_REQUEST_FIELD_INTEGER) { |
533 else if (type == GAIM_REQUEST_FIELD_INTEGER) { |
| 494 int value; |
534 int value; |
| 495 |
535 |
| 496 widget = gtk_entry_new(); |
536 widget = gtk_entry_new(); |
| 502 |
542 |
| 503 g_snprintf(buf, sizeof(buf), "%d", value); |
543 g_snprintf(buf, sizeof(buf), "%d", value); |
| 504 |
544 |
| 505 gtk_entry_set_text(GTK_ENTRY(widget), buf); |
545 gtk_entry_set_text(GTK_ENTRY(widget), buf); |
| 506 } |
546 } |
| |
547 |
| |
548 g_signal_connect(G_OBJECT(widget), "focus-out-event", |
| |
549 G_CALLBACK(field_int_focus_out_cb), |
| |
550 field); |
| 507 } |
551 } |
| 508 else if (type == GAIM_REQUEST_FIELD_BOOLEAN) { |
552 else if (type == GAIM_REQUEST_FIELD_BOOLEAN) { |
| 509 widget = gtk_check_button_new_with_label( |
553 widget = gtk_check_button_new_with_label( |
| 510 gaim_request_field_get_label(field)); |
554 gaim_request_field_get_label(field)); |
| 511 |
555 |
| 512 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), |
556 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), |
| 513 gaim_request_field_bool_get_default_value(field)); |
557 gaim_request_field_bool_get_default_value(field)); |
| |
558 |
| |
559 g_signal_connect(G_OBJECT(widget), "toggled", |
| |
560 G_CALLBACK(field_bool_cb), field); |
| 514 } |
561 } |
| 515 else if (type == GAIM_REQUEST_FIELD_CHOICE) { |
562 else if (type == GAIM_REQUEST_FIELD_CHOICE) { |
| 516 GList *labels; |
563 GList *labels; |
| 517 GList *l; |
564 GList *l; |
| 518 |
565 |
| 533 |
580 |
| 534 item = gtk_menu_item_new_with_label(text); |
581 item = gtk_menu_item_new_with_label(text); |
| 535 |
582 |
| 536 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); |
583 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); |
| 537 } |
584 } |
| |
585 |
| |
586 g_signal_connect(G_OBJECT(widget), "changed", |
| |
587 G_CALLBACK(field_choice_menu_cb), |
| |
588 field); |
| 538 } |
589 } |
| 539 else { |
590 else { |
| 540 GtkWidget *box; |
591 GtkWidget *box; |
| 541 GtkWidget *first_radio = NULL; |
592 GtkWidget *first_radio = NULL; |
| 542 GtkWidget *radio; |
593 GtkWidget *radio; |
| 559 first_radio = radio; |
610 first_radio = radio; |
| 560 |
611 |
| 561 gtk_box_pack_start(GTK_BOX(box), radio, |
612 gtk_box_pack_start(GTK_BOX(box), radio, |
| 562 TRUE, TRUE, 0); |
613 TRUE, TRUE, 0); |
| 563 gtk_widget_show(radio); |
614 gtk_widget_show(radio); |
| |
615 |
| |
616 g_signal_connect(G_OBJECT(widget), "toggled", |
| |
617 G_CALLBACK(field_choice_option_cb), |
| |
618 field); |
| 564 } |
619 } |
| 565 } |
620 } |
| 566 } |
621 } |
| 567 |
622 |
| 568 if (type != GAIM_REQUEST_FIELD_BOOLEAN) { |
623 if (type != GAIM_REQUEST_FIELD_BOOLEAN) { |