| 1085 |
1085 |
| 1086 it = purple_request_fields_get_autosensitive(fields); |
1086 it = purple_request_fields_get_autosensitive(fields); |
| 1087 for (; it != NULL; it = g_list_next(it)) { |
1087 for (; it != NULL; it = g_list_next(it)) { |
| 1088 PurpleRequestField *field = it->data; |
1088 PurpleRequestField *field = it->data; |
| 1089 GtkWidget *widget = purple_request_field_get_ui_data(field); |
1089 GtkWidget *widget = purple_request_field_get_ui_data(field); |
| 1090 |
1090 gboolean sensitive; |
| 1091 gtk_widget_set_sensitive(widget, |
1091 |
| 1092 purple_request_field_is_sensitive(field)); |
1092 sensitive = purple_request_field_is_sensitive(field); |
| 1093 /* TODO: string fields and set_editable */ |
1093 gtk_widget_set_sensitive(widget, sensitive); |
| |
1094 |
| |
1095 /* XXX: and what about multiline? */ |
| |
1096 if (GTK_IS_EDITABLE(widget)) |
| |
1097 gtk_editable_set_editable(GTK_EDITABLE(widget), sensitive); |
| 1094 } |
1098 } |
| 1095 } |
1099 } |
| 1096 |
1100 |
| 1097 static void |
1101 static void |
| 1098 setup_entry_field(GtkWidget *entry, PurpleRequestField *field) |
1102 setup_entry_field(GtkWidget *entry, PurpleRequestField *field) |
| 1147 const char *value; |
1151 const char *value; |
| 1148 GtkWidget *widget; |
1152 GtkWidget *widget; |
| 1149 gboolean is_editable; |
1153 gboolean is_editable; |
| 1150 |
1154 |
| 1151 value = purple_request_field_string_get_default_value(field); |
1155 value = purple_request_field_string_get_default_value(field); |
| 1152 is_editable = purple_request_field_string_is_editable(field); |
1156 is_editable = purple_request_field_is_sensitive(field); |
| 1153 |
1157 |
| 1154 if (purple_request_field_string_is_multiline(field)) |
1158 if (purple_request_field_string_is_multiline(field)) |
| 1155 { |
1159 { |
| 1156 GtkWidget *textview; |
1160 GtkWidget *textview; |
| 1157 |
1161 |
| 1176 } |
1180 } |
| 1177 |
1181 |
| 1178 gtk_widget_set_tooltip_text(textview, purple_request_field_get_tooltip(field)); |
1182 gtk_widget_set_tooltip_text(textview, purple_request_field_get_tooltip(field)); |
| 1179 |
1183 |
| 1180 gtk_text_view_set_editable(GTK_TEXT_VIEW(textview), is_editable); |
1184 gtk_text_view_set_editable(GTK_TEXT_VIEW(textview), is_editable); |
| 1181 gtk_widget_set_sensitive(textview, is_editable); |
|
| 1182 |
1185 |
| 1183 g_signal_connect(G_OBJECT(textview), "focus-out-event", |
1186 g_signal_connect(G_OBJECT(textview), "focus-out-event", |
| 1184 G_CALLBACK(field_string_focus_out_cb), field); |
1187 G_CALLBACK(field_string_focus_out_cb), field); |
| 1185 |
1188 |
| 1186 if (purple_request_field_is_required(field)) |
1189 if (purple_request_field_is_required(field)) |
| 1207 { |
1210 { |
| 1208 gtk_entry_set_visibility(GTK_ENTRY(widget), FALSE); |
1211 gtk_entry_set_visibility(GTK_ENTRY(widget), FALSE); |
| 1209 } |
1212 } |
| 1210 |
1213 |
| 1211 gtk_editable_set_editable(GTK_EDITABLE(widget), is_editable); |
1214 gtk_editable_set_editable(GTK_EDITABLE(widget), is_editable); |
| 1212 gtk_widget_set_sensitive(widget, is_editable); |
|
| 1213 |
1215 |
| 1214 g_signal_connect(G_OBJECT(widget), "focus-out-event", |
1216 g_signal_connect(G_OBJECT(widget), "focus-out-event", |
| 1215 G_CALLBACK(field_string_focus_out_cb), field); |
1217 G_CALLBACK(field_string_focus_out_cb), field); |
| 1216 } |
1218 } |
| 1217 |
1219 |