=================================================================== RCS file: /cvsroot/gaim/gaim/src/buddy.c,v
retrieving revision 1.228
--- src/buddy.c 2001/06/08 23:17:16 1.228 +++ src/buddy.c 2001/06/09 14:40:55 +GtkWidget *buddy_notebook; void BuddyTickerLogonTimeout( gpointer data );
void BuddyTickerLogoutTimeout( gpointer data );
+extern void convo_switch(GtkNotebook *notebook, GtkWidget *page, gint page_num, gpointer data); vbox = gtk_vbox_new(FALSE, 0);
- notebook = gtk_notebook_new(); + buddy_notebook = gtk_notebook_new(); + gtk_signal_connect(GTK_OBJECT(buddy_notebook), "switch-page", GTK_SIGNAL_FUNC(convo_switch), NULL); label = gtk_label_new(_("Online"));
- gtk_notebook_append_page(GTK_NOTEBOOK(notebook), buddypane, label); + gtk_notebook_append_page(GTK_NOTEBOOK(buddy_notebook), buddypane, label); label = gtk_label_new(_("Edit Buddies"));
- gtk_notebook_append_page(GTK_NOTEBOOK(notebook), editpane, label); + gtk_notebook_append_page(GTK_NOTEBOOK(buddy_notebook), editpane, label); - gtk_widget_show_all(notebook); + gtk_widget_show_all(buddy_notebook); /* Pack things in the vbox */
- gtk_widget_show(notebook); + gtk_widget_show(buddy_notebook); gtk_signal_connect(GTK_OBJECT(addbutton), "clicked", GTK_SIGNAL_FUNC(add_buddy_callback), NULL);
gtk_signal_connect(GTK_OBJECT(groupbutton), "clicked", GTK_SIGNAL_FUNC(add_group_callback), NULL);
gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, TRUE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), notebook, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), buddy_notebook, TRUE, TRUE, 0); gtk_container_add(GTK_CONTAINER(blist), vbox);
=================================================================== RCS file: /cvsroot/gaim/gaim/src/buddy_chat.c,v
diff -u -r1.97 buddy_chat.c --- src/buddy_chat.c 2001/05/31 00:40:54 1.97 +++ src/buddy_chat.c 2001/06/09 14:40:56 GtkWidget *label = gtk_notebook_get_tab_label(GTK_NOTEBOOK(chat_notebook),
gtk_notebook_get_nth_page(GTK_NOTEBOOK(chat_notebook), page_num));
- struct conversation *b = g_list_nth_data(chats, page_num); + struct conversation *b = g_list_nth_data(chats, page_num - 2 - g_list_length(conversations)); if (b && b->window && b->entry)
gtk_window_set_focus(GTK_WINDOW(b->window), b->entry);
if (!GTK_WIDGET_REALIZED(label))
int dispstyle = set_dispstyle(1);
- if (display_options & OPT_DISP_ONE_CHAT_WINDOW) { - win = all_chats = b->window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - gtk_window_set_wmclass(GTK_WINDOW(win), "buddy_chat", "Gaim"); - gtk_window_set_policy(GTK_WINDOW(win), TRUE, TRUE, TRUE); - gtk_container_border_width(GTK_CONTAINER(win), 0); - gtk_widget_realize(win); - gtk_window_set_title(GTK_WINDOW(win), _("Gaim - Group Chats")); - gtk_signal_connect(GTK_OBJECT(win), "delete_event", - GTK_SIGNAL_FUNC(delete_all_chats), NULL); + win = b->window = blist; - chat_notebook = gtk_notebook_new(); - if (display_options & OPT_DISP_CHAT_SIDE_TAB) { - if (display_options & OPT_DISP_CHAT_BR_TAB) { - gtk_notebook_set_tab_pos(GTK_NOTEBOOK(chat_notebook), - gtk_notebook_set_tab_pos(GTK_NOTEBOOK(chat_notebook), - if (display_options & OPT_DISP_CHAT_BR_TAB) { - gtk_notebook_set_tab_pos(GTK_NOTEBOOK(chat_notebook), - gtk_notebook_set_tab_pos(GTK_NOTEBOOK(chat_notebook), - gtk_notebook_set_scrollable(GTK_NOTEBOOK(chat_notebook), TRUE); - gtk_notebook_popup_enable(GTK_NOTEBOOK(chat_notebook)); - gtk_container_add(GTK_CONTAINER(win), chat_notebook); - gtk_signal_connect(GTK_OBJECT(chat_notebook), "switch-page", - GTK_SIGNAL_FUNC(chat_switch), NULL); - gtk_widget_show(chat_notebook); - win = b->window = all_chats; - cont = gtk_vbox_new(FALSE, 5); - gtk_container_set_border_width(GTK_CONTAINER(cont), 5); - gtk_notebook_append_page(GTK_NOTEBOOK(chat_notebook), cont, gtk_label_new(b->name)); - win = gtk_window_new(GTK_WINDOW_TOPLEVEL); - gtk_object_set_user_data(GTK_OBJECT(win), b); - gtk_window_set_wmclass(GTK_WINDOW(win), "buddy_chat", "Gaim"); - gtk_window_set_policy(GTK_WINDOW(win), TRUE, TRUE, TRUE); - gtk_container_border_width(GTK_CONTAINER(win), 10); - gtk_widget_realize(win); - g_snprintf(buf, sizeof(buf), "Gaim - %s (chat)", b->name); - gtk_window_set_title(GTK_WINDOW(win), buf); - gtk_signal_connect(GTK_OBJECT(win), "destroy", GTK_SIGNAL_FUNC(close_callback), b); - cont = gtk_vbox_new(FALSE,5); - gtk_container_add(GTK_CONTAINER(win), cont); - if (b->gc->prpl->options & OPT_PROTO_CHAT_TOPIC) { - hbox = gtk_hbox_new(FALSE, 0); - gtk_box_pack_start(GTK_BOX(cont), hbox, FALSE, FALSE, 5); - label = gtk_label_new(_("Topic:")); - gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); - gtk_widget_show(label); - b->topic_text = gtk_entry_new(); - gtk_signal_connect(GTK_OBJECT(b->topic_text), "activate", - GTK_SIGNAL_FUNC(topic_callback), b); - gtk_box_pack_start(GTK_BOX(hbox), b->topic_text, TRUE, TRUE, 5); - gtk_widget_show(b->topic_text); + cont = gtk_vbox_new(FALSE, 5); + gtk_container_set_border_width(GTK_CONTAINER(cont), 5); + gtk_notebook_append_page(GTK_NOTEBOOK(buddy_notebook), cont, gtk_label_new(b->name)); vpaned = gtk_vpaned_new();
gtk_paned_set_gutter_size(GTK_PANED(vpaned), 15);
Index: src/conversation.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/conversation.c,v
retrieving revision 1.228
diff -u -r1.228 conversation.c --- src/conversation.c 2001/06/07 03:12:45 1.228 +++ src/conversation.c 2001/06/09 14:40:56 int close_callback(GtkWidget *widget, struct conversation *c)
- if (c->is_chat && (widget == c->close) && !(display_options & OPT_DISP_ONE_CHAT_WINDOW)) { - GtkWidget *tmp = c->window; - debug_printf("chat clicked close button\n"); - gtk_widget_destroy(tmp); debug_printf("conversation close callback\n");
if (general_options & OPT_GEN_CHECK_SPELLING)
gtkspell_detach(GTK_TEXT(c->entry));
- if (c->gc && c->gc->prpl && c->gc->prpl->remove_convo) - (*c->gc->prpl->remove_convo)(c->gc, c); - if (display_options & OPT_DISP_ONE_WINDOW) { - if (g_list_length(conversations) > 1) { - gtk_notebook_remove_page(GTK_NOTEBOOK(convo_notebook), - g_list_index(conversations, c)); - gtk_widget_destroy(c->window); - gtk_widget_destroy(c->window); + gtk_notebook_remove_page(GTK_NOTEBOOK(buddy_notebook), + g_list_index(conversations, c) + 2); - if (display_options & OPT_DISP_ONE_CHAT_WINDOW) { - if (g_list_length(chats) > 1) { - gtk_notebook_remove_page(GTK_NOTEBOOK(chat_notebook), - g_list_index(chats, c)); - gtk_widget_destroy(c->window); - gtk_widget_destroy(c->window); + gtk_notebook_remove_page(GTK_NOTEBOOK(buddy_notebook), + g_list_index(chats, c) + g_list_length(conversations) + 2); gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event");
- if ((!c->is_chat && (display_options & OPT_DISP_ONE_WINDOW)) || - ( c->is_chat && (display_options & OPT_DISP_ONE_CHAT_WINDOW))) { - GtkWidget *notebook = (c->is_chat ? chat_notebook : convo_notebook); - if (event->keyval == '[') { - gtk_notebook_prev_page(GTK_NOTEBOOK(notebook)); - gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); - } else if (event->keyval == ']') { - gtk_notebook_next_page(GTK_NOTEBOOK(notebook)); - gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); - } else if (event->keyval == GDK_Tab) { - GList *ws = (c->is_chat ? chats : conversations); - GList *cnv = g_list_nth(ws, - gtk_notebook_get_current_page( - GTK_NOTEBOOK(notebook))); - struct conversation *d = NULL; - gtk_notebook_set_page(GTK_NOTEBOOK(notebook), - GTK_NOTEBOOK(notebook), - GTK_NOTEBOOK(notebook), 0); - gtk_notebook_next_page( - GTK_NOTEBOOK(notebook)); - gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); - } else if (((!c->is_chat && (display_options & OPT_DISP_ONE_WINDOW)) || - ( c->is_chat && (display_options & OPT_DISP_ONE_CHAT_WINDOW))) && - (event->state & GDK_MOD1_MASK) && isdigit(event->keyval) && - (event->keyval > '0')) { - GtkWidget *notebook = (c->is_chat ? chat_notebook : convo_notebook); - gtk_notebook_set_page(GTK_NOTEBOOK(notebook), event->keyval - '1'); - gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); if (((flags & WFLAG_RECV) || (flags & WFLAG_SYSTEM)) &&
((!c->is_chat && (display_options & OPT_DISP_ONE_WINDOW) &&
- (gtk_notebook_get_current_page(GTK_NOTEBOOK(convo_notebook)) - != g_list_index(conversations, c))) || + (gtk_notebook_get_current_page(GTK_NOTEBOOK(buddy_notebook)) + != g_list_index(conversations, c) + 2)) || ( c->is_chat && (display_options & OPT_DISP_ONE_CHAT_WINDOW) &&
- (gtk_notebook_get_current_page(GTK_NOTEBOOK(chat_notebook)) - != g_list_index(chats, c))))) { - GtkWidget *notebook = (c->is_chat ? chat_notebook : convo_notebook); + (gtk_notebook_get_current_page(GTK_NOTEBOOK(buddy_notebook)) + != g_list_index(chats, c) + g_list_length(conversations) + 2)))) { GList *ws = (c->is_chat ? chats : conversations);
- GtkWidget *label = gtk_notebook_get_tab_label(GTK_NOTEBOOK(notebook), - gtk_notebook_get_nth_page(GTK_NOTEBOOK(notebook), g_list_index(ws, c))); + int add = (c->is_chat ? 2 + g_list_length(conversations) : 2); + GtkWidget *label = gtk_notebook_get_tab_label(GTK_NOTEBOOK(buddy_notebook), + gtk_notebook_get_nth_page(GTK_NOTEBOOK(buddy_notebook), + g_list_index(ws, c) + add)); GtkStyle *style = gtk_style_new();
if (!GTK_WIDGET_REALIZED(label))
gtk_widget_realize(label);
-static void convo_switch(GtkNotebook *notebook, GtkWidget *page, gint page_num, gpointer data) +void convo_switch(GtkNotebook *notebook, GtkWidget *page, gint page_num, gpointer data) - GtkWidget *label = gtk_notebook_get_tab_label(GTK_NOTEBOOK(convo_notebook), - gtk_notebook_get_nth_page(GTK_NOTEBOOK(convo_notebook), page_num)); + GtkWidget *label = gtk_notebook_get_tab_label(GTK_NOTEBOOK(buddy_notebook), + gtk_notebook_get_nth_page(GTK_NOTEBOOK(buddy_notebook), page_num)); - struct conversation *c = g_list_nth_data(conversations, page_num); + struct conversation *c = (page_num >= 2 + g_list_length(conversations)) ? + g_list_nth_data(chats, page_num - 2 - g_list_length(conversations)) : + page_num >= 2 ? g_list_nth_data(conversations, page_num - 2) : NULL; if (c && c->window && c->entry)
gtk_window_set_focus(GTK_WINDOW(c->window), c->entry);
if (!GTK_WIDGET_REALIZED(label))
- if (display_options & OPT_DISP_ONE_WINDOW) { - win = all_convos = c->window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - gtk_window_set_wmclass(GTK_WINDOW(win), "conversation", "Gaim"); - gtk_window_set_policy(GTK_WINDOW(win), TRUE, TRUE, TRUE); - gtk_container_border_width(GTK_CONTAINER(win), 0); - gtk_widget_realize(win); - gtk_window_set_title(GTK_WINDOW(win), _("Gaim - Conversations")); - gtk_signal_connect(GTK_OBJECT(win), "delete_event", - GTK_SIGNAL_FUNC(delete_all_convo), NULL); - convo_notebook = gtk_notebook_new(); - if (display_options & OPT_DISP_CONV_SIDE_TAB) { - if (display_options & OPT_DISP_CONV_BR_TAB) { - gtk_notebook_set_tab_pos(GTK_NOTEBOOK(convo_notebook), - gtk_notebook_set_tab_pos(GTK_NOTEBOOK(convo_notebook), - if (display_options & OPT_DISP_CONV_BR_TAB) { - gtk_notebook_set_tab_pos(GTK_NOTEBOOK(convo_notebook), - gtk_notebook_set_tab_pos(GTK_NOTEBOOK(convo_notebook), - gtk_notebook_set_scrollable(GTK_NOTEBOOK(convo_notebook), TRUE); - gtk_notebook_popup_enable(GTK_NOTEBOOK(convo_notebook)); - gtk_container_add(GTK_CONTAINER(win), convo_notebook); - gtk_signal_connect(GTK_OBJECT(convo_notebook), "switch-page", - GTK_SIGNAL_FUNC(convo_switch), NULL); - gtk_widget_show(convo_notebook); - win = c->window = all_convos; + win = c->window = blist; - cont = gtk_vbox_new(FALSE, 5); - gtk_container_set_border_width(GTK_CONTAINER(cont), 5); - gtk_notebook_append_page(GTK_NOTEBOOK(convo_notebook), cont, gtk_label_new(c->name)); - cont = win = gtk_window_new(GTK_WINDOW_TOPLEVEL); - gtk_object_set_user_data(GTK_OBJECT(win), c); - gtk_window_set_wmclass(GTK_WINDOW(win), "conversation", "Gaim"); - gtk_window_set_policy(GTK_WINDOW(win), TRUE, TRUE, TRUE); - gtk_container_border_width(GTK_CONTAINER(win), 10); - gtk_widget_realize(win); - if ((find_log_info(c->name)) || ((logging_options & OPT_LOG_ALL))) - g_snprintf(buf, sizeof(buf), LOG_CONVERSATION_TITLE, c->name); - g_snprintf(buf, sizeof(buf), CONVERSATION_TITLE, c->name); - gtk_window_set_title(GTK_WINDOW(win), buf); - gtk_signal_connect(GTK_OBJECT(win), "delete_event", - GTK_SIGNAL_FUNC(delete_event_convo), c); + cont = gtk_vbox_new(FALSE, 5); + gtk_container_set_border_width(GTK_CONTAINER(cont), 5); + gtk_notebook_insert_page(GTK_NOTEBOOK(buddy_notebook), cont, gtk_label_new(c->name), + 1 + g_list_length(conversations)); paned = gtk_vpaned_new();
gtk_paned_set_gutter_size(GTK_PANED(paned), 15);
void set_convo_tab_label(struct conversation *c, char *text)
- gtk_label_set_text(GTK_LABEL(gtk_notebook_get_tab_label(GTK_NOTEBOOK(convo_notebook), - gtk_notebook_get_nth_page(GTK_NOTEBOOK(convo_notebook), - g_list_index(conversations, c)))), text); + gtk_label_set_text(GTK_LABEL(gtk_notebook_get_tab_label(GTK_NOTEBOOK(buddy_notebook), + gtk_notebook_get_nth_page(GTK_NOTEBOOK(buddy_notebook), + g_list_index(conversations, c) + 2))), text); void raise_convo_tab(struct conversation *c)
- gtk_notebook_set_page(GTK_NOTEBOOK(convo_notebook), g_list_index(conversations, c)); + gtk_notebook_set_page(GTK_NOTEBOOK(buddy_notebook), g_list_index(conversations, c) + 2); gdk_window_show(c->window->window);
=================================================================== RCS file: /cvsroot/gaim/gaim/src/gaim.h,v
retrieving revision 1.230
--- src/gaim.h 2001/06/01 23:56:52 1.230 +++ src/gaim.h 2001/06/09 14:40:57 extern GtkWidget *all_chats;
extern GtkWidget *chat_notebook;
+extern GtkWidget *buddy_notebook; extern GtkWidget *joinchat;