pidgin/gtkrequest.c

branch
soc.2013.gobjectification.plugins
changeset 36930
c1b0e75051e3
parent 36783
8eadcfdb65ca
parent 35047
cf8ca70094ff
child 36939
6587e5c7d9e3
equal deleted inserted replaced
36929:eed15b8d51a1 36930:c1b0e75051e3
1071 req_field_changed_cb(GtkWidget *widget, PurpleRequestField *field) 1071 req_field_changed_cb(GtkWidget *widget, PurpleRequestField *field)
1072 { 1072 {
1073 PurpleRequestFieldGroup *group; 1073 PurpleRequestFieldGroup *group;
1074 PurpleRequestFields *fields; 1074 PurpleRequestFields *fields;
1075 PidginRequestData *req_data; 1075 PidginRequestData *req_data;
1076 const GList *it;
1076 1077
1077 group = purple_request_field_get_group(field); 1078 group = purple_request_field_get_group(field);
1078 fields = purple_request_field_group_get_fields_list(group); 1079 fields = purple_request_field_group_get_fields_list(group);
1079 req_data = purple_request_fields_get_ui_data(fields); 1080 req_data = purple_request_fields_get_ui_data(fields);
1080 1081
1081 gtk_widget_set_sensitive(req_data->ok_button, 1082 gtk_widget_set_sensitive(req_data->ok_button,
1082 purple_request_fields_all_required_filled(fields) && 1083 purple_request_fields_all_required_filled(fields) &&
1083 purple_request_fields_all_valid(fields)); 1084 purple_request_fields_all_valid(fields));
1085
1086 it = purple_request_fields_get_autosensitive(fields);
1087 for (; it != NULL; it = g_list_next(it)) {
1088 PurpleRequestField *field = it->data;
1089 GtkWidget *widget = purple_request_field_get_ui_data(field);
1090 gboolean sensitive;
1091
1092 sensitive = purple_request_field_is_sensitive(field);
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);
1098 }
1084 } 1099 }
1085 1100
1086 static void 1101 static void
1087 setup_entry_field(GtkWidget *entry, PurpleRequestField *field) 1102 setup_entry_field(GtkWidget *entry, PurpleRequestField *field)
1088 { 1103 {
1136 const char *value; 1151 const char *value;
1137 GtkWidget *widget; 1152 GtkWidget *widget;
1138 gboolean is_editable; 1153 gboolean is_editable;
1139 1154
1140 value = purple_request_field_string_get_default_value(field); 1155 value = purple_request_field_string_get_default_value(field);
1141 is_editable = purple_request_field_string_is_editable(field); 1156 is_editable = purple_request_field_is_sensitive(field);
1142 1157
1143 if (purple_request_field_string_is_multiline(field)) 1158 if (purple_request_field_string_is_multiline(field))
1144 { 1159 {
1145 GtkWidget *textview; 1160 GtkWidget *textview;
1146 1161
1165 } 1180 }
1166 1181
1167 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));
1168 1183
1169 gtk_text_view_set_editable(GTK_TEXT_VIEW(textview), is_editable); 1184 gtk_text_view_set_editable(GTK_TEXT_VIEW(textview), is_editable);
1170 gtk_widget_set_sensitive(textview, is_editable);
1171 1185
1172 g_signal_connect(G_OBJECT(textview), "focus-out-event", 1186 g_signal_connect(G_OBJECT(textview), "focus-out-event",
1173 G_CALLBACK(field_string_focus_out_cb), field); 1187 G_CALLBACK(field_string_focus_out_cb), field);
1174 1188
1175 if (purple_request_field_is_required(field)) 1189 if (purple_request_field_is_required(field))
1196 { 1210 {
1197 gtk_entry_set_visibility(GTK_ENTRY(widget), FALSE); 1211 gtk_entry_set_visibility(GTK_ENTRY(widget), FALSE);
1198 } 1212 }
1199 1213
1200 gtk_editable_set_editable(GTK_EDITABLE(widget), is_editable); 1214 gtk_editable_set_editable(GTK_EDITABLE(widget), is_editable);
1201 gtk_widget_set_sensitive(widget, is_editable);
1202 1215
1203 g_signal_connect(G_OBJECT(widget), "focus-out-event", 1216 g_signal_connect(G_OBJECT(widget), "focus-out-event",
1204 G_CALLBACK(field_string_focus_out_cb), field); 1217 G_CALLBACK(field_string_focus_out_cb), field);
1205 } 1218 }
1206 1219
1873 else if (type == PURPLE_REQUEST_FIELD_CERTIFICATE) 1886 else if (type == PURPLE_REQUEST_FIELD_CERTIFICATE)
1874 widget = create_certificate_field(field); 1887 widget = create_certificate_field(field);
1875 else 1888 else
1876 continue; 1889 continue;
1877 } 1890 }
1891
1892 gtk_widget_set_sensitive(widget,
1893 purple_request_field_is_sensitive(field));
1878 1894
1879 if (label) 1895 if (label)
1880 gtk_label_set_mnemonic_widget(GTK_LABEL(label), widget); 1896 gtk_label_set_mnemonic_widget(GTK_LABEL(label), widget);
1881 1897
1882 if (type == PURPLE_REQUEST_FIELD_STRING && 1898 if (type == PURPLE_REQUEST_FIELD_STRING &&

mercurial