| 4945 GtkCellRenderer *rend; |
4945 GtkCellRenderer *rend; |
| 4946 GtkTreePath *path; |
4946 GtkTreePath *path; |
| 4947 PurpleConversation *conv = gtkconv->active_conv; |
4947 PurpleConversation *conv = gtkconv->active_conv; |
| 4948 PurpleBuddy *buddy; |
4948 PurpleBuddy *buddy; |
| 4949 gboolean chat = (conv->type == PURPLE_CONV_TYPE_CHAT); |
4949 gboolean chat = (conv->type == PURPLE_CONV_TYPE_CHAT); |
| 4950 GtkPolicyType webview_sw_hscroll; |
|
| 4951 int buddyicon_size = 0; |
4950 int buddyicon_size = 0; |
| 4952 |
4951 |
| 4953 /* Setup the top part of the pane */ |
4952 /* Setup the top part of the pane */ |
| 4954 vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BOX_SPACE); |
4953 vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BOX_SPACE); |
| 4955 gtk_widget_show(vbox); |
4954 gtk_widget_show(vbox); |
| 5037 gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(gtkconv->infopane), rend, FALSE); |
5036 gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(gtkconv->infopane), rend, FALSE); |
| 5038 gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(gtkconv->infopane), rend, "pixbuf", CONV_EMBLEM_COLUMN, NULL); |
5037 gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(gtkconv->infopane), rend, "pixbuf", CONV_EMBLEM_COLUMN, NULL); |
| 5039 g_object_set(rend, "xalign", 0.0, "xpad", 6, "ypad", 0, NULL); |
5038 g_object_set(rend, "xalign", 0.0, "xpad", 6, "ypad", 0, NULL); |
| 5040 |
5039 |
| 5041 /* Setup the webkit widget */ |
5040 /* Setup the webkit widget */ |
| 5042 /* TODO: create a pidgin_create_webview() function in utils*/ |
5041 frame = pidgin_create_webview(FALSE, >kconv->webview, NULL, &webview_sw); |
| 5043 webview_sw = gtk_scrolled_window_new(NULL, NULL); |
|
| 5044 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(webview_sw), GTK_SHADOW_IN); |
|
| 5045 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(webview_sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); |
|
| 5046 |
|
| 5047 gtkconv->webview = gtk_webview_new(); |
|
| 5048 gtk_webview_set_vadjustment(GTK_WEBVIEW(gtkconv->webview), |
|
| 5049 gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(webview_sw))); |
|
| 5050 gtk_container_add(GTK_CONTAINER(webview_sw), gtkconv->webview); |
|
| 5051 |
|
| 5052 gtk_widget_set_size_request(gtkconv->webview, -1, 0); |
5042 gtk_widget_set_size_request(gtkconv->webview, -1, 0); |
| 5053 |
5043 |
| 5054 if (chat) { |
5044 if (chat) { |
| 5055 GtkWidget *hpaned; |
5045 GtkWidget *hpaned; |
| 5056 |
5046 |
| 5059 |
5049 |
| 5060 /* Add the gtkimhtml frame */ |
5050 /* Add the gtkimhtml frame */ |
| 5061 hpaned = gtk_hpaned_new(); |
5051 hpaned = gtk_hpaned_new(); |
| 5062 gtk_box_pack_start(GTK_BOX(vbox), hpaned, TRUE, TRUE, 0); |
5052 gtk_box_pack_start(GTK_BOX(vbox), hpaned, TRUE, TRUE, 0); |
| 5063 gtk_widget_show(hpaned); |
5053 gtk_widget_show(hpaned); |
| 5064 gtk_paned_pack1(GTK_PANED(hpaned), webview_sw, TRUE, TRUE); |
5054 gtk_paned_pack1(GTK_PANED(hpaned), frame, TRUE, TRUE); |
| 5065 |
5055 |
| 5066 /* Now add the userlist */ |
5056 /* Now add the userlist */ |
| 5067 setup_chat_userlist(gtkconv, hpaned); |
5057 setup_chat_userlist(gtkconv, hpaned); |
| 5068 } else { |
5058 } else { |
| 5069 gtk_box_pack_start(GTK_BOX(vbox), webview_sw, TRUE, TRUE, 0); |
5059 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); |
| 5070 } |
5060 } |
| 5071 gtk_widget_show_all(webview_sw); |
5061 gtk_widget_show_all(frame); |
| 5072 |
5062 |
| 5073 gtk_widget_set_name(gtkconv->webview, "pidgin_conv_webview"); |
5063 gtk_widget_set_name(gtkconv->webview, "pidgin_conv_webview"); |
| 5074 g_object_set_data(G_OBJECT(gtkconv->webview), "gtkconv", gtkconv); |
5064 g_object_set_data(G_OBJECT(gtkconv->webview), "gtkconv", gtkconv); |
| 5075 |
|
| 5076 gtk_scrolled_window_get_policy(GTK_SCROLLED_WINDOW(webview_sw), |
|
| 5077 &webview_sw_hscroll, NULL); |
|
| 5078 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(webview_sw), |
|
| 5079 webview_sw_hscroll, GTK_POLICY_ALWAYS); |
|
| 5080 |
5065 |
| 5081 g_signal_connect_after(G_OBJECT(gtkconv->webview), "button_press_event", |
5066 g_signal_connect_after(G_OBJECT(gtkconv->webview), "button_press_event", |
| 5082 G_CALLBACK(entry_stop_rclick_cb), NULL); |
5067 G_CALLBACK(entry_stop_rclick_cb), NULL); |
| 5083 g_signal_connect(G_OBJECT(gtkconv->webview), "key_press_event", |
5068 g_signal_connect(G_OBJECT(gtkconv->webview), "key_press_event", |
| 5084 G_CALLBACK(refocus_entry_cb), gtkconv); |
5069 G_CALLBACK(refocus_entry_cb), gtkconv); |