pidgin/gtkrequest.c

changeset 32890
35d644c6df3b
parent 32887
442a78eea36e
child 32893
6063be322695
equal deleted inserted replaced
32889:b1a7793d2fe7 32890:35d644c6df3b
37 #include "pidginstock.h" 37 #include "pidginstock.h"
38 #include "gtkblist.h" 38 #include "gtkblist.h"
39 39
40 #include <gdk/gdkkeysyms.h> 40 #include <gdk/gdkkeysyms.h>
41 41
42 #ifdef ENABLE_GCR
43 #define GCR_API_SUBJECT_TO_CHANGE
44 #include <gcr/gcr.h>
45 #include <gcr/gcr-simple-certificate.h>
46 #endif
47
42 static GtkWidget * create_account_field(PurpleRequestField *field); 48 static GtkWidget * create_account_field(PurpleRequestField *field);
43 49
44 typedef struct 50 typedef struct
45 { 51 {
46 PurpleRequestType type; 52 PurpleRequestType type;
1192 } 1198 }
1193 1199
1194 static GtkWidget * 1200 static GtkWidget *
1195 create_certificate_field(PurpleRequestField *field) 1201 create_certificate_field(PurpleRequestField *field)
1196 { 1202 {
1203 PurpleCertificate *cert;
1204 #ifdef ENABLE_GCR
1205 GcrCertificateBasicsWidget *cert_widget;
1206 GByteArray *der;
1207 GcrCertificate *gcrt;
1208 #else
1197 GtkWidget *cert_label; 1209 GtkWidget *cert_label;
1198 PurpleCertificate *cert;
1199 char *str; 1210 char *str;
1200 char *escaped; 1211 char *escaped;
1212 #endif
1201 1213
1202 cert = purple_request_field_certificate_get_value(field); 1214 cert = purple_request_field_certificate_get_value(field);
1215
1216 #ifdef ENABLE_GCR
1217 der = purple_certificate_get_der_data(crt);
1218 g_return_val_if_fail(der, NULL);
1219
1220 gcrt = gcr_simple_certificate_new(der->data, der->len);
1221 g_return_val_if_fail(gcrt, NULL);
1222
1223 cert_widget = gcr_certificate_basics_widget_new(gcrt);
1224
1225 g_byte_array_free(der, TRUE);
1226 g_object_unref(G_OBJECT(gcrt));
1227
1228 return cert_widget;
1229 #else
1203 str = purple_certificate_get_display_string(cert); 1230 str = purple_certificate_get_display_string(cert);
1204 escaped = g_markup_escape_text(str, -1); 1231 escaped = g_markup_escape_text(str, -1);
1205 1232
1206 cert_label = gtk_label_new(NULL); 1233 cert_label = gtk_label_new(NULL);
1207 gtk_label_set_markup(GTK_LABEL(cert_label), escaped); 1234 gtk_label_set_markup(GTK_LABEL(cert_label), escaped);
1210 1237
1211 g_free(str); 1238 g_free(str);
1212 g_free(escaped); 1239 g_free(escaped);
1213 1240
1214 return cert_label; 1241 return cert_label;
1242 #endif
1215 } 1243 }
1216 1244
1217 static void * 1245 static void *
1218 pidgin_request_fields(const char *title, const char *primary, 1246 pidgin_request_fields(const char *title, const char *primary,
1219 const char *secondary, PurpleRequestFields *fields, 1247 const char *secondary, PurpleRequestFields *fields,

mercurial