pidgin/gtkconv.c

changeset 32518
f3ed9129c573
parent 32513
9352b4c92d13
child 32525
61504dc20f31
equal deleted inserted replaced
32517:cab76b54eb8b 32518:f3ed9129c573
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, &gtkconv->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);

mercurial