| 227 { |
227 { |
| 228 purple_request_field_bool_set_value(field, |
228 purple_request_field_bool_set_value(field, |
| 229 gtk_toggle_button_get_active(button)); |
229 gtk_toggle_button_get_active(button)); |
| 230 } |
230 } |
| 231 |
231 |
| |
232 #if GTK_CHECK_VERSION(2,4,0) |
| |
233 static void |
| |
234 field_choice_menu_cb(GtkComboBox *menu, PurpleRequestField *field) |
| |
235 { |
| |
236 purple_request_field_choice_set_value(field, |
| |
237 gtk_combo_box_get_active(menu)); |
| |
238 } |
| |
239 #else |
| 232 static void |
240 static void |
| 233 field_choice_menu_cb(GtkOptionMenu *menu, PurpleRequestField *field) |
241 field_choice_menu_cb(GtkOptionMenu *menu, PurpleRequestField *field) |
| 234 { |
242 { |
| 235 purple_request_field_choice_set_value(field, |
243 purple_request_field_choice_set_value(field, |
| 236 gtk_option_menu_get_history(menu)); |
244 gtk_option_menu_get_history(menu)); |
| 237 } |
245 } |
| |
246 #endif |
| 238 |
247 |
| 239 static void |
248 static void |
| 240 field_choice_option_cb(GtkRadioButton *button, PurpleRequestField *field) |
249 field_choice_option_cb(GtkRadioButton *button, PurpleRequestField *field) |
| 241 { |
250 { |
| 242 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button))) |
251 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button))) |
| 928 int num_labels = g_list_length(labels); |
937 int num_labels = g_list_length(labels); |
| 929 GList *l; |
938 GList *l; |
| 930 |
939 |
| 931 if (num_labels > 5) |
940 if (num_labels > 5) |
| 932 { |
941 { |
| |
942 #if GTK_CHECK_VERSION(2,4,0) |
| |
943 widget = gtk_combo_box_new_text(); |
| |
944 |
| |
945 for (l = labels; l != NULL; l = l->next) |
| |
946 { |
| |
947 const char *text = l->data; |
| |
948 gtk_combo_box_append_text(GTK_COMBO_BOX(widget), text); |
| |
949 } |
| |
950 |
| |
951 gtk_combo_box_set_active(GTK_COMBO_BOX(widget), |
| |
952 purple_request_field_choice_get_default_value(field)); |
| |
953 |
| |
954 g_signal_connect(G_OBJECT(widget), "changed", |
| |
955 G_CALLBACK(field_choice_menu_cb), field); |
| |
956 #else |
| 933 GtkWidget *menu; |
957 GtkWidget *menu; |
| 934 GtkWidget *item; |
958 GtkWidget *item; |
| 935 |
959 |
| 936 widget = gtk_option_menu_new(); |
960 widget = gtk_option_menu_new(); |
| 937 |
961 |
| 952 gtk_option_menu_set_history(GTK_OPTION_MENU(widget), |
976 gtk_option_menu_set_history(GTK_OPTION_MENU(widget), |
| 953 purple_request_field_choice_get_default_value(field)); |
977 purple_request_field_choice_get_default_value(field)); |
| 954 |
978 |
| 955 g_signal_connect(G_OBJECT(widget), "changed", |
979 g_signal_connect(G_OBJECT(widget), "changed", |
| 956 G_CALLBACK(field_choice_menu_cb), field); |
980 G_CALLBACK(field_choice_menu_cb), field); |
| |
981 #endif |
| 957 } |
982 } |
| 958 else |
983 else |
| 959 { |
984 { |
| 960 GtkWidget *box; |
985 GtkWidget *box; |
| 961 GtkWidget *first_radio = NULL; |
986 GtkWidget *first_radio = NULL; |