# HG changeset patch # User Mark Doliner # Date 1072674856 0 # Node ID b356e2a9d7fcfb3c9cbc7e2a31368e65f2968f64 # Parent 68c3dcba731008e32841db35d087bc2ca8ada351 [gaim-migrate @ 8623] Add scrollbars to the text input widgets for away messages and conversations. committer: Tailor Script diff -r 68c3dcba7310 -r b356e2a9d7fc src/dialogs.c --- a/src/dialogs.c Mon Dec 29 02:30:38 2003 +0000 +++ b/src/dialogs.c Mon Dec 29 05:14:16 2003 +0000 @@ -1217,12 +1217,9 @@ void create_away_mess(GtkWidget *widget, void *dummy) { - GtkWidget *hbox; - GtkWidget *titlebox; - GtkWidget *tbox; + GtkWidget *vbox, *hbox; GtkWidget *label; - GtkWidget *frame; - GtkWidget *fbox; + GtkWidget *sw; GtkWidget *button; struct create_away *ca = g_new0(struct create_away, 1); @@ -1230,35 +1227,42 @@ /* Set up window */ GAIM_DIALOG(ca->window); gtk_widget_set_size_request(ca->window, -1, 250); - gtk_container_set_border_width(GTK_CONTAINER(ca->window), 5); + gtk_container_set_border_width(GTK_CONTAINER(ca->window), 6); gtk_window_set_role(GTK_WINDOW(ca->window), "away_mess"); gtk_window_set_title(GTK_WINDOW(ca->window), _("New away message")); g_signal_connect(G_OBJECT(ca->window), "delete_event", G_CALLBACK(destroy_dialog), ca->window); - tbox = gtk_vbox_new(FALSE, 5); - gtk_container_add(GTK_CONTAINER(ca->window), tbox); - - frame = gtk_frame_new(_("New away message")); - gtk_box_pack_start(GTK_BOX(tbox), frame, TRUE, TRUE, 0); + /* + * This would be higgy... but I think it's pretty ugly --Mark + * If you want to use this, make sure you add the vbox to the hbox below + */ + /* + hbox = gtk_hbox_new(FALSE, 12); + gtk_container_set_border_width(GTK_CONTAINER(hbox), 12); + gtk_container_add(GTK_CONTAINER(ca->window), hbox); + */ - fbox = gtk_vbox_new(FALSE, 5); - gtk_container_set_border_width(GTK_CONTAINER(fbox), 5); - gtk_container_add(GTK_CONTAINER(frame), fbox); + vbox = gtk_vbox_new(FALSE, 12); + gtk_container_add(GTK_CONTAINER(ca->window), vbox); - titlebox = gtk_hbox_new(FALSE, 5); - gtk_box_pack_start(GTK_BOX(fbox), titlebox, FALSE, FALSE, 0); + /* Away message title */ + hbox = gtk_hbox_new(FALSE, 0); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); label = gtk_label_new(_("Away title: ")); - gtk_box_pack_start(GTK_BOX(titlebox), label, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); ca->entry = gtk_entry_new(); - gtk_box_pack_start(GTK_BOX(titlebox), ca->entry, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(hbox), ca->entry, TRUE, TRUE, 0); gtk_widget_grab_focus(ca->entry); - frame = gtk_frame_new(NULL); - gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN); - gtk_box_pack_start(GTK_BOX(fbox), frame, TRUE, TRUE, 0); + /* Away message text */ + sw = gtk_scrolled_window_new(NULL, NULL); + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), + GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); + gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0); ca->text = gtk_text_view_new(); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(ca->text), GTK_WRAP_WORD_CHAR); @@ -1266,7 +1270,7 @@ if (gaim_prefs_get_bool("/gaim/gtk/conversations/spellcheck")) gaim_gtk_setup_gtkspell(GTK_TEXT_VIEW(ca->text)); - gtk_container_add(GTK_CONTAINER(frame), ca->text); + gtk_container_add(GTK_CONTAINER(sw), ca->text); if (dummy) { struct away_message *amt; @@ -1291,7 +1295,7 @@ } hbox = gtk_hbox_new(FALSE, 5); - gtk_box_pack_start(GTK_BOX(tbox), hbox, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); button = gaim_pixbuf_button_from_stock(_("Save"), GTK_STOCK_SAVE, GAIM_BUTTON_HORIZONTAL); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(save_away_mess), ca); diff -r 68c3dcba7310 -r b356e2a9d7fc src/gtkconv.c --- a/src/gtkconv.c Mon Dec 29 02:30:38 2003 +0000 +++ b/src/gtkconv.c Mon Dec 29 05:14:16 2003 +0000 @@ -3514,10 +3514,9 @@ GtkWidget *vbox, *hbox; GtkWidget *lbox, *bbox; GtkWidget *label; - GtkWidget *sw2; GtkWidget *list; GtkWidget *button; - GtkWidget *frame; + GtkWidget *sw; GtkListStore *ls; GtkCellRenderer *rend; GtkTreeViewColumn *col; @@ -3600,12 +3599,12 @@ gtk_widget_show(gtkchat->count); /* Setup the list of users. */ - sw2 = gtk_scrolled_window_new(NULL, NULL); - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw2), + sw = gtk_scrolled_window_new(NULL, NULL); + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); - gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw2), GTK_SHADOW_IN); - gtk_box_pack_start(GTK_BOX(lbox), sw2, TRUE, TRUE, 0); - gtk_widget_show(sw2); + gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); + gtk_box_pack_start(GTK_BOX(lbox), sw, TRUE, TRUE, 0); + gtk_widget_show(sw); ls = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(ls), 1, @@ -3636,7 +3635,7 @@ gtkchat->list = list; - gtk_container_add(GTK_CONTAINER(sw2), list); + gtk_container_add(GTK_CONTAINER(sw), list); /* Setup the user list toolbar. */ bbox = gtk_hbox_new(TRUE, 5); @@ -3689,36 +3688,37 @@ FALSE, FALSE, 0); /* Setup the entry widget. */ - frame = gtk_frame_new(NULL); - gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN); - gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); - gtk_widget_show(frame); + sw = gtk_scrolled_window_new(NULL, NULL); + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), + GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), + GTK_SHADOW_IN); + gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0); + gtk_widget_show(sw); gtkconv->entry = gtk_imhtml_new(NULL, NULL); gtkconv->entry_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(gtkconv->entry)); - g_object_set_data(G_OBJECT(gtkconv->entry_buffer), "user_data", conv); + gaim_setup_imhtml(gtkconv->entry); gtk_imhtml_set_editable(GTK_IMHTML(gtkconv->entry), TRUE); - gaim_setup_imhtml(gtkconv->entry); default_formatize(conv); - gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(gtkconv->entry), GTK_WRAP_WORD_CHAR); gtk_widget_set_size_request(gtkconv->entry, -1, MAX(gaim_prefs_get_int("/gaim/gtk/conversations/chat/entry_height"), 25)); - - /* Connect the signal handlers. */ + g_object_set_data(G_OBJECT(gtkconv->entry_buffer), "user_data", conv); + g_signal_connect_swapped(G_OBJECT(gtkconv->entry), "key_press_event", G_CALLBACK(entry_key_pressed_cb_1), gtkconv->entry_buffer); + g_signal_connect(G_OBJECT(gtkconv->entry), "key_press_event", + G_CALLBACK(entry_key_pressed_cb_2), conv); g_signal_connect_after(G_OBJECT(gtkconv->entry), "button_press_event", G_CALLBACK(entry_stop_rclick_cb), NULL); - g_signal_connect(G_OBJECT(gtkconv->entry), "key_press_event", - G_CALLBACK(entry_key_pressed_cb_2), conv); if (gaim_prefs_get_bool("/gaim/gtk/conversations/spellcheck")) gaim_gtk_setup_gtkspell(GTK_TEXT_VIEW(gtkconv->entry)); - gtk_container_add(GTK_CONTAINER(frame), GTK_WIDGET(gtkconv->entry)); + gtk_container_add(GTK_CONTAINER(sw), GTK_WIDGET(gtkconv->entry)); gtk_widget_show(gtkconv->entry); /* Setup the bottom button box. */ @@ -3739,7 +3739,7 @@ GtkWidget *paned; GtkWidget *vbox; GtkWidget *vbox2; - GtkWidget *frame; + GtkWidget *sw; gtkconv = GAIM_GTK_CONVERSATION(conv); gtkim = gtkconv->u.im; @@ -3778,7 +3778,6 @@ gaim_prefs_get_bool("/gaim/gtk/conversations/show_timestamps")); gaim_setup_imhtml(gtkconv->imhtml); - gtk_widget_show(gtkconv->imhtml); vbox2 = gtk_vbox_new(FALSE, 5); @@ -3791,21 +3790,24 @@ FALSE, FALSE, 0); /* Setup the entry widget. */ - frame = gtk_frame_new(NULL); - gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN); - gtk_box_pack_start(GTK_BOX(vbox2), frame, TRUE, TRUE, 0); - gtk_widget_show(frame); + sw = gtk_scrolled_window_new(NULL, NULL); + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), + GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), + GTK_SHADOW_IN); + gtk_box_pack_start(GTK_BOX(vbox2), sw, TRUE, TRUE, 0); + gtk_widget_show(sw); gtkconv->entry = gtk_imhtml_new(NULL, NULL); + gtkconv->entry_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(gtkconv->entry)); + gaim_setup_imhtml(gtkconv->entry); gtk_imhtml_set_editable(GTK_IMHTML(gtkconv->entry), TRUE); - gaim_setup_imhtml(gtkconv->entry); default_formatize(conv); - gtkconv->entry_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(gtkconv->entry)); - g_object_set_data(G_OBJECT(gtkconv->entry_buffer), "user_data", conv); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(gtkconv->entry), GTK_WRAP_WORD_CHAR); gtk_widget_set_size_request(gtkconv->entry, -1, MAX(gaim_prefs_get_int("/gaim/gtk/conversations/im/entry_height"), 25)); + g_object_set_data(G_OBJECT(gtkconv->entry_buffer), "user_data", conv); g_signal_connect_swapped(G_OBJECT(gtkconv->entry), "key_press_event", G_CALLBACK(entry_key_pressed_cb_1), @@ -3823,7 +3825,7 @@ if (gaim_prefs_get_bool("/gaim/gtk/conversations/spellcheck")) gaim_gtk_setup_gtkspell(GTK_TEXT_VIEW(gtkconv->entry)); - gtk_container_add(GTK_CONTAINER(frame), GTK_WIDGET(gtkconv->entry)); + gtk_container_add(GTK_CONTAINER(sw), GTK_WIDGET(gtkconv->entry)); gtk_widget_show(gtkconv->entry); gtkconv->bbox = gtk_hbox_new(FALSE, 5);