| 264 sw = pidgin_make_scrollable(imhtml, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC, GTK_SHADOW_NONE, -1, -1); |
265 sw = pidgin_make_scrollable(imhtml, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC, GTK_SHADOW_NONE, -1, -1); |
| 265 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0); |
266 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0); |
| 266 |
267 |
| 267 if (imhtml_ret != NULL) |
268 if (imhtml_ret != NULL) |
| 268 *imhtml_ret = imhtml; |
269 *imhtml_ret = imhtml; |
| |
270 |
| |
271 if (editable && (toolbar_ret != NULL)) |
| |
272 *toolbar_ret = toolbar; |
| |
273 |
| |
274 if (sw_ret != NULL) |
| |
275 *sw_ret = sw; |
| |
276 |
| |
277 return frame; |
| |
278 } |
| |
279 |
| |
280 GtkWidget * |
| |
281 pidgin_create_webview(gboolean editable, GtkWidget **webview_ret, GtkWidget **toolbar_ret, GtkWidget **sw_ret) |
| |
282 { |
| |
283 GtkWidget *frame; |
| |
284 GtkWidget *webview; |
| |
285 GtkWidget *sep; |
| |
286 GtkWidget *sw; |
| |
287 GtkWidget *toolbar = NULL; |
| |
288 GtkWidget *vbox; |
| |
289 |
| |
290 frame = gtk_frame_new(NULL); |
| |
291 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN); |
| |
292 |
| |
293 vbox = gtk_vbox_new(FALSE, 0); |
| |
294 gtk_container_add(GTK_CONTAINER(frame), vbox); |
| |
295 gtk_widget_show(vbox); |
| |
296 |
| |
297 if (editable) { |
| |
298 toolbar = gtk_imhtmltoolbar_new(); |
| |
299 gtk_box_pack_start(GTK_BOX(vbox), toolbar, FALSE, FALSE, 0); |
| |
300 gtk_widget_show(toolbar); |
| |
301 |
| |
302 sep = gtk_hseparator_new(); |
| |
303 gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, FALSE, 0); |
| |
304 g_signal_connect_swapped(G_OBJECT(toolbar), "show", G_CALLBACK(gtk_widget_show), sep); |
| |
305 g_signal_connect_swapped(G_OBJECT(toolbar), "hide", G_CALLBACK(gtk_widget_hide), sep); |
| |
306 gtk_widget_show(sep); |
| |
307 } |
| |
308 |
| |
309 webview = gtk_webview_new(); |
| |
310 #if 0 |
| |
311 /* FIXME: Don't have editable webview yet. */ |
| |
312 gtk_webview_set_editable(GTK_WEBVIEW(webview), editable); |
| |
313 #endif |
| |
314 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(webview), GTK_WRAP_WORD_CHAR); |
| |
315 #ifdef USE_GTKSPELL |
| |
316 if (editable && purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/conversations/spellcheck")) |
| |
317 pidgin_setup_gtkspell(GTK_TEXT_VIEW(webview)); |
| |
318 #endif |
| |
319 gtk_widget_show(webview); |
| |
320 |
| |
321 if (editable) { |
| |
322 gtk_imhtmltoolbar_attach(GTK_IMHTMLTOOLBAR(toolbar), webview); |
| |
323 gtk_imhtmltoolbar_associate_smileys(GTK_IMHTMLTOOLBAR(toolbar), "default"); |
| |
324 } |
| |
325 |
| |
326 sw = pidgin_make_scrollable(webview, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC, GTK_SHADOW_NONE, -1, -1); |
| |
327 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0); |
| |
328 |
| |
329 gtk_webview_set_vadjustment(GTK_WEBVIEW(webview), |
| |
330 gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(sw))); |
| |
331 |
| |
332 if (webview_ret != NULL) |
| |
333 *webview_ret = webview; |
| 269 |
334 |
| 270 if (editable && (toolbar_ret != NULL)) |
335 if (editable && (toolbar_ret != NULL)) |
| 271 *toolbar_ret = toolbar; |
336 *toolbar_ret = toolbar; |
| 272 |
337 |
| 273 if (sw_ret != NULL) |
338 if (sw_ret != NULL) |