Mercurial > pidgin.yaz
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; |