| 41 return FALSE; |
41 return FALSE; |
| 42 } |
42 } |
| 43 |
43 |
| 44 |
44 |
| 45 static void |
45 static void |
| 46 webview_cb(GtkWebView *webview, gpointer data) |
46 webview_cb(PidginWebView *webview, gpointer data) |
| 47 { |
47 { |
| 48 char *pref; |
48 char *pref; |
| 49 char *text; |
49 char *text; |
| 50 |
50 |
| 51 pref = g_object_get_data(G_OBJECT(webview), "pref-key"); |
51 pref = g_object_get_data(G_OBJECT(webview), "pref-key"); |
| 52 g_return_if_fail(pref); |
52 g_return_if_fail(pref); |
| 53 |
53 |
| 54 text = gtk_webview_get_body_html(webview); |
54 text = pidgin_webview_get_body_html(webview); |
| 55 purple_prefs_set_string(pref, text); |
55 purple_prefs_set_string(pref, text); |
| 56 g_free(text); |
56 g_free(text); |
| 57 } |
57 } |
| 58 |
58 |
| 59 static void |
59 static void |
| 125 |
125 |
| 126 if ((format & PURPLE_STRING_FORMAT_TYPE_HTML) != 0) { |
126 if ((format & PURPLE_STRING_FORMAT_TYPE_HTML) != 0) { |
| 127 frame = pidgin_create_webview(TRUE, &webview, NULL); |
127 frame = pidgin_create_webview(TRUE, &webview, NULL); |
| 128 } else { |
128 } else { |
| 129 frame = pidgin_create_webview(FALSE, &webview, NULL); |
129 frame = pidgin_create_webview(FALSE, &webview, NULL); |
| 130 gtk_webview_set_format_functions(GTK_WEBVIEW(webview), 0); |
130 pidgin_webview_set_format_functions(PIDGIN_WEBVIEW(webview), 0); |
| 131 } |
131 } |
| 132 |
132 |
| 133 if (format & PURPLE_STRING_FORMAT_TYPE_MULTILINE) { |
133 if (format & PURPLE_STRING_FORMAT_TYPE_MULTILINE) { |
| 134 gchar *tmp = purple_strreplace(purple_prefs_get_string(pref_name), "\n", "<br>"); |
134 gchar *tmp = purple_strreplace(purple_prefs_get_string(pref_name), "\n", "<br>"); |
| 135 gtk_webview_append_html(GTK_WEBVIEW(webview), tmp); |
135 pidgin_webview_append_html(PIDGIN_WEBVIEW(webview), tmp); |
| 136 g_free(tmp); |
136 g_free(tmp); |
| 137 } else |
137 } else |
| 138 gtk_webview_append_html(GTK_WEBVIEW(webview), purple_prefs_get_string(pref_name)); |
138 pidgin_webview_append_html(PIDGIN_WEBVIEW(webview), purple_prefs_get_string(pref_name)); |
| 139 gtk_label_set_mnemonic_widget(GTK_LABEL(gtk_label), webview); |
139 gtk_label_set_mnemonic_widget(GTK_LABEL(gtk_label), webview); |
| 140 gtk_widget_show_all(frame); |
140 gtk_widget_show_all(frame); |
| 141 g_object_set_data(G_OBJECT(webview), "pref-key", (gpointer)pref_name); |
141 g_object_set_data(G_OBJECT(webview), "pref-key", (gpointer)pref_name); |
| 142 g_signal_connect(G_OBJECT(webview), "changed", |
142 g_signal_connect(G_OBJECT(webview), "changed", |
| 143 G_CALLBACK(webview_cb), NULL); |
143 G_CALLBACK(webview_cb), NULL); |