comparison pidgin/gtkrequest.c @ 32779:d72f2f13b60f

merge of 'c8c73eea7431e6f940916315ace40a41c8da3faa' and 'fec428131bde0ae8247941bd6a3d996c984c9189'
author Ethan Blanton <elb@pidgin.im>
date Fri, 21 Oct 2011 14:36:18 +0000
parents 91e431815449
children
comparison
equal deleted inserted replaced
32778:14787acaf9d7 32779:d72f2f13b60f
747 747
748 static void 748 static void
749 req_entry_field_changed_cb(GtkWidget *entry, PurpleRequestField *field) 749 req_entry_field_changed_cb(GtkWidget *entry, PurpleRequestField *field)
750 { 750 {
751 PurpleRequestFieldGroup *group; 751 PurpleRequestFieldGroup *group;
752 PurpleRequestFields *fields;
752 PidginRequestData *req_data; 753 PidginRequestData *req_data;
753 754
754 if (purple_request_field_string_is_multiline(field)) 755 if (purple_request_field_string_is_multiline(field))
755 { 756 {
756 char *text; 757 char *text;
769 text = gtk_entry_get_text(GTK_ENTRY(entry)); 770 text = gtk_entry_get_text(GTK_ENTRY(entry));
770 purple_request_field_string_set_value(field, (*text == '\0') ? NULL : text); 771 purple_request_field_string_set_value(field, (*text == '\0') ? NULL : text);
771 } 772 }
772 773
773 group = purple_request_field_get_group(field); 774 group = purple_request_field_get_group(field);
774 req_data = (PidginRequestData *)group->fields_list->ui_data; 775 fields = purple_request_field_group_get_fields_list(group);
776 req_data = purple_request_fields_get_ui_data(fields);
775 777
776 gtk_widget_set_sensitive(req_data->ok_button, 778 gtk_widget_set_sensitive(req_data->ok_button,
777 purple_request_fields_all_required_filled(group->fields_list)); 779 purple_request_fields_all_required_filled(fields));
778 } 780 }
779 781
780 static void 782 static void
781 setup_entry_field(GtkWidget *entry, PurpleRequestField *field) 783 setup_entry_field(GtkWidget *entry, PurpleRequestField *field)
782 { 784 {
794 { 796 {
795 if (purple_str_has_prefix(type_hint, "screenname")) 797 if (purple_str_has_prefix(type_hint, "screenname"))
796 { 798 {
797 GtkWidget *optmenu = NULL; 799 GtkWidget *optmenu = NULL;
798 PurpleRequestFieldGroup *group = purple_request_field_get_group(field); 800 PurpleRequestFieldGroup *group = purple_request_field_get_group(field);
799 GList *fields = group->fields; 801 GList *fields = purple_request_field_group_get_fields(group);
800 802
801 /* Ensure the account option menu is created (if the widget hasn't 803 /* Ensure the account option menu is created (if the widget hasn't
802 * been initialized already) for username auto-completion. */ 804 * been initialized already) for username auto-completion. */
803 while (fields) 805 while (fields)
804 { 806 {
855 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview)); 857 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview));
856 858
857 gtk_text_buffer_set_text(buffer, value, -1); 859 gtk_text_buffer_set_text(buffer, value, -1);
858 } 860 }
859 861
862 #if GTK_CHECK_VERSION(2,12,0)
863 gtk_widget_set_tooltip_text(textview, purple_request_field_get_tooltip(field));
864 #endif
865
860 gtk_text_view_set_editable(GTK_TEXT_VIEW(textview), 866 gtk_text_view_set_editable(GTK_TEXT_VIEW(textview),
861 purple_request_field_string_is_editable(field)); 867 purple_request_field_string_is_editable(field));
862 868
863 g_signal_connect(G_OBJECT(textview), "focus-out-event", 869 g_signal_connect(G_OBJECT(textview), "focus-out-event",
864 G_CALLBACK(field_string_focus_out_cb), field); 870 G_CALLBACK(field_string_focus_out_cb), field);
878 884
879 setup_entry_field(widget, field); 885 setup_entry_field(widget, field);
880 886
881 if (value != NULL) 887 if (value != NULL)
882 gtk_entry_set_text(GTK_ENTRY(widget), value); 888 gtk_entry_set_text(GTK_ENTRY(widget), value);
889
890 #if GTK_CHECK_VERSION(2,12,0)
891 gtk_widget_set_tooltip_text(widget, purple_request_field_get_tooltip(field));
892 #endif
883 893
884 if (purple_request_field_string_is_masked(field)) 894 if (purple_request_field_string_is_masked(field))
885 { 895 {
886 gtk_entry_set_visibility(GTK_ENTRY(widget), FALSE); 896 gtk_entry_set_visibility(GTK_ENTRY(widget), FALSE);
887 #if !GTK_CHECK_VERSION(2,16,0) 897 #if !GTK_CHECK_VERSION(2,16,0)
919 g_snprintf(buf, sizeof(buf), "%d", value); 929 g_snprintf(buf, sizeof(buf), "%d", value);
920 930
921 gtk_entry_set_text(GTK_ENTRY(widget), buf); 931 gtk_entry_set_text(GTK_ENTRY(widget), buf);
922 } 932 }
923 933
934 #if GTK_CHECK_VERSION(2,12,0)
935 gtk_widget_set_tooltip_text(widget, purple_request_field_get_tooltip(field));
936 #endif
937
924 g_signal_connect(G_OBJECT(widget), "focus-out-event", 938 g_signal_connect(G_OBJECT(widget), "focus-out-event",
925 G_CALLBACK(field_int_focus_out_cb), field); 939 G_CALLBACK(field_int_focus_out_cb), field);
926 940
927 return widget; 941 return widget;
928 } 942 }
932 { 946 {
933 GtkWidget *widget; 947 GtkWidget *widget;
934 948
935 widget = gtk_check_button_new_with_label( 949 widget = gtk_check_button_new_with_label(
936 purple_request_field_get_label(field)); 950 purple_request_field_get_label(field));
951
952 #if GTK_CHECK_VERSION(2,12,0)
953 gtk_widget_set_tooltip_text(widget, purple_request_field_get_tooltip(field));
954 #endif
937 955
938 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), 956 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget),
939 purple_request_field_bool_get_default_value(field)); 957 purple_request_field_bool_get_default_value(field));
940 958
941 g_signal_connect(G_OBJECT(widget), "toggled", 959 g_signal_connect(G_OBJECT(widget), "toggled",
962 gtk_combo_box_append_text(GTK_COMBO_BOX(widget), text); 980 gtk_combo_box_append_text(GTK_COMBO_BOX(widget), text);
963 } 981 }
964 982
965 gtk_combo_box_set_active(GTK_COMBO_BOX(widget), 983 gtk_combo_box_set_active(GTK_COMBO_BOX(widget),
966 purple_request_field_choice_get_default_value(field)); 984 purple_request_field_choice_get_default_value(field));
985
986 #if GTK_CHECK_VERSION(2,12,0)
987 gtk_widget_set_tooltip_text(widget, purple_request_field_get_tooltip(field));
988 #endif
967 989
968 g_signal_connect(G_OBJECT(widget), "changed", 990 g_signal_connect(G_OBJECT(widget), "changed",
969 G_CALLBACK(field_choice_menu_cb), field); 991 G_CALLBACK(field_choice_menu_cb), field);
970 } 992 }
971 else 993 else
979 box = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE); 1001 box = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
980 else 1002 else
981 box = gtk_vbox_new(FALSE, 0); 1003 box = gtk_vbox_new(FALSE, 0);
982 1004
983 widget = box; 1005 widget = box;
1006
1007 #if GTK_CHECK_VERSION(2,12,0)
1008 gtk_widget_set_tooltip_text(widget, purple_request_field_get_tooltip(field));
1009 #endif
984 1010
985 for (l = labels, i = 0; l != NULL; l = l->next, i++) 1011 for (l = labels, i = 0; l != NULL; l = l->next, i++)
986 { 1012 {
987 const char *text = l->data; 1013 const char *text = l->data;
988 1014
1022 GDK_INTERP_BILINEAR); 1048 GDK_INTERP_BILINEAR);
1023 widget = gtk_image_new_from_pixbuf(scale); 1049 widget = gtk_image_new_from_pixbuf(scale);
1024 g_object_unref(G_OBJECT(buf)); 1050 g_object_unref(G_OBJECT(buf));
1025 g_object_unref(G_OBJECT(scale)); 1051 g_object_unref(G_OBJECT(scale));
1026 1052
1053 #if GTK_CHECK_VERSION(2,12,0)
1054 gtk_widget_set_tooltip_text(widget, purple_request_field_get_tooltip(field));
1055 #endif
1056
1027 return widget; 1057 return widget;
1028 } 1058 }
1029 1059
1030 static GtkWidget * 1060 static GtkWidget *
1031 create_account_field(PurpleRequestField *field) 1061 create_account_field(PurpleRequestField *field)
1036 purple_request_field_account_get_default_value(field), 1066 purple_request_field_account_get_default_value(field),
1037 purple_request_field_account_get_show_all(field), 1067 purple_request_field_account_get_show_all(field),
1038 G_CALLBACK(field_account_cb), 1068 G_CALLBACK(field_account_cb),
1039 purple_request_field_account_get_filter(field), 1069 purple_request_field_account_get_filter(field),
1040 field); 1070 field);
1071
1072 #if GTK_CHECK_VERSION(2,12,0)
1073 gtk_widget_set_tooltip_text(widget, purple_request_field_get_tooltip(field));
1074 #endif
1041 1075
1042 return widget; 1076 return widget;
1043 } 1077 }
1044 1078
1045 static void 1079 static void
1186 data = g_new0(PidginRequestData, 1); 1220 data = g_new0(PidginRequestData, 1);
1187 data->type = PURPLE_REQUEST_FIELDS; 1221 data->type = PURPLE_REQUEST_FIELDS;
1188 data->user_data = user_data; 1222 data->user_data = user_data;
1189 data->u.multifield.fields = fields; 1223 data->u.multifield.fields = fields;
1190 1224
1191 fields->ui_data = data; 1225 purple_request_fields_set_ui_data(fields, data);
1192 1226
1193 data->cb_count = 2; 1227 data->cb_count = 2;
1194 data->cbs = g_new0(GCallback, 2); 1228 data->cbs = g_new0(GCallback, 2);
1195 1229
1196 data->cbs[0] = ok_cb; 1230 data->cbs[0] = ok_cb;