Mercurial > pidgin
diff src/buddy.c @ 3570:b791019b2492
[gaim-migrate @ 3666]
You win, McQueen.
committer: Tailor Script <tailor@pidgin.im>
| author | Sean Egan <seanegan@gmail.com> |
|---|---|
| date | Sun, 29 Sep 2002 04:48:40 +0000 |
| parents | 3c4b8982068a |
| children | 9682c0e022c6 |
line wrap: on
line diff
--- a/src/buddy.c Sun Sep 29 04:26:50 2002 +0000 +++ b/src/buddy.c Sun Sep 29 04:48:40 2002 +0000 @@ -1993,35 +1993,6 @@ return g; } - -void docklet_toggle() { - /* Useful for the docklet plugin and also for the win32 tray icon*/ - /* This is called when one of those is clicked--it will show/hide the - buddy list/login window--depending on which is active */ - if (connections) { - if (GTK_WIDGET_VISIBLE(blist)) { - if (GAIM_WINDOW_ICONIFIED(blist)) { - unhide_buddy_list(); - } else { - hide_buddy_list(); - } - } else { - unhide_buddy_list(); - } - } else { - if (GTK_WIDGET_VISIBLE(mainwindow)) { - if (GAIM_WINDOW_ICONIFIED(mainwindow)) { - gtk_window_present(GTK_WINDOW(mainwindow)); - } else { - gtk_widget_hide(mainwindow); - } - } else { - gtk_window_present(GTK_WINDOW(mainwindow)); - } - } -} - - /* used by this file, and by iconaway.so */ void hide_buddy_list() { if (blist) { @@ -2072,6 +2043,33 @@ } } +void docklet_toggle() { + /* Useful for the docklet plugin and also for the win32 tray icon*/ + /* This is called when one of those is clicked--it will show/hide the + buddy list/login window--depending on which is active */ + if (connections) { + if (GTK_WIDGET_VISIBLE(blist)) { + if (GAIM_WINDOW_ICONIFIED(blist)) { + unhide_buddy_list(); + } else { + hide_buddy_list(); + } + } else { + unhide_buddy_list(); + } + } else { + if (GTK_WIDGET_VISIBLE(mainwindow)) { + if (GAIM_WINDOW_ICONIFIED(mainwindow)) { + gtk_window_present(GTK_WINDOW(mainwindow)); + } else { + gtk_widget_hide(mainwindow); + } + } else { + gtk_window_present(GTK_WINDOW(mainwindow)); + } + } +} + static gint log_timeout(struct buddy_show *b) { /* this part is really just a bad hack because of a bug I can't find */ @@ -2460,10 +2458,10 @@ } static void change_state_blist_window(GtkWidget *w, GdkEventWindowState *event, void *dummy) { - if (event->new_window_state & GDK_WINDOW_STATE_ICONIFIED && - docklet_count) { - gtk_widget_hide(blist); - } + if (event->new_window_state & GDK_WINDOW_STATE_ICONIFIED && + docklet_count) { + gtk_widget_hide(blist); + } } /******************************************************************* @@ -2501,7 +2499,7 @@ gtk_widget_add_accelerator(menuitem, "activate", accel, str[0], GDK_MOD1_MASK, GTK_ACCEL_LOCKED); - + return menuitem; } @@ -2625,7 +2623,7 @@ } } -void show_buddy_list() +void make_buddy_list() { /* Build the buddy list, based on *config */ @@ -2648,28 +2646,26 @@ GtkWidget *tbox; if (blist) { - unhide_buddy_list(); return; } blist = gtk_window_new(GTK_WINDOW_TOPLEVEL); + gtk_window_set_gravity(GTK_WINDOW(blist), GDK_GRAVITY_STATIC); + gtk_window_set_policy(GTK_WINDOW(blist), TRUE, TRUE, TRUE); + gtk_window_set_title(GTK_WINDOW(blist), _("Gaim - Buddy List")); gtk_window_set_wmclass(GTK_WINDOW(blist), "buddy_list", "Gaim"); gtk_widget_realize(blist); - gtk_window_set_gravity(GTK_WINDOW(blist), GDK_GRAVITY_STATIC); - gtk_window_set_policy(GTK_WINDOW(blist), TRUE, TRUE, TRUE); - accel = gtk_accel_group_new(); - gtk_window_add_accel_group(G_OBJECT(blist), accel); + gtk_window_add_accel_group(GTK_WINDOW(blist), accel); menubar = gtk_menu_bar_new(); menu = gtk_menu_new(); gtk_menu_set_accel_group(GTK_MENU(menu), accel); - menuitem = gaim_new_item(NULL, _("File")); gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), menu); gtk_menu_bar_append(GTK_MENU_BAR(menubar), menuitem); @@ -2687,15 +2683,13 @@ gaim_new_item_with_pixmap(menu, _("Import Buddy List"), import_small_xpm, GTK_SIGNAL_FUNC(import_callback), NULL, 0, 0, 0); - /*gaim_new_item_with_pixmap(menu, _("Export Buddy List"), export_small_xpm, - GTK_SIGNAL_FUNC(show_export_dialog), 0, 0, 0); */ + gaim_separator(menu); + gaim_new_item_with_pixmap(menu, _("Signoff"), logout_menu_xpm, GTK_SIGNAL_FUNC(signoff_all), (void*)1, 'd', GDK_CONTROL_MASK, "Ctl+D"); - gaim_new_item_with_pixmap(menu, _("Hide"), close_small_xpm, GTK_SIGNAL_FUNC(hide_buddy_list), NULL, 'h', GDK_CONTROL_MASK, "Ctl+H"); - gaim_new_item_with_pixmap(menu, _("Quit"), exit_small_xpm, GTK_SIGNAL_FUNC(do_quit), NULL, 'q', GDK_CONTROL_MASK, "Ctl+Q"); @@ -2723,8 +2717,7 @@ #endif protomenu = gtk_menu_new(); - menuitem = - gaim_new_item_with_pixmap(menu, _("Protocol Actions"), prefs_small_xpm, NULL, NULL, 0, 0, 0); + menuitem = gaim_new_item_with_pixmap(menu, _("Protocol Actions"), prefs_small_xpm, NULL, NULL, 0, 0, 0); gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), protomenu); do_proto_menu(); @@ -2745,7 +2738,6 @@ gaim_new_item_with_pixmap(menu, _("Debug Window"), search_small_xpm, GTK_SIGNAL_FUNC(clicked_debug), NULL, 0, 0, NULL); gaim_new_item_with_pixmap(menu, _("About Gaim"), about_small_xpm, GTK_SIGNAL_FUNC(show_about), NULL, GDK_F1, GDK_CONTROL_MASK, NULL); - gtk_widget_show(menubar); vbox = gtk_vbox_new(FALSE, 0); @@ -2777,20 +2769,9 @@ if (!(blist_options & OPT_BLIST_NO_BUTTONS)) build_imchat_box(TRUE); - /* Swing the edit buddy */ editpane = gtk_vbox_new(FALSE, 1); - addbutton = gtk_button_new_with_label(_("Add")); - groupbutton = gtk_button_new_with_label(_("Group")); - rembutton = gtk_button_new_with_label(_("Remove")); - - if (misc_options & OPT_MISC_COOL_LOOK) { - gtk_button_set_relief(GTK_BUTTON(addbutton), GTK_RELIEF_NONE); - gtk_button_set_relief(GTK_BUTTON(groupbutton), GTK_RELIEF_NONE); - gtk_button_set_relief(GTK_BUTTON(rembutton), GTK_RELIEF_NONE); - } - edittree = gtk_ctree_new(1, 0); gtk_ctree_set_line_style(GTK_CTREE(edittree), GTK_CTREE_LINES_SOLID);; gtk_ctree_set_expander_style(GTK_CTREE(edittree), GTK_CTREE_EXPANDER_SQUARE); @@ -2809,7 +2790,18 @@ bbox = gtk_hbox_new(TRUE, 5); gtk_container_set_border_width(GTK_CONTAINER(bbox), 5); tbox = gtk_scrolled_window_new(NULL, NULL); - /* Put the buttons in the box */ + + /* buttons */ + addbutton = gtk_button_new_with_label(_("Add")); + groupbutton = gtk_button_new_with_label(_("Group")); + rembutton = gtk_button_new_with_label(_("Remove")); + + if (misc_options & OPT_MISC_COOL_LOOK) { + gtk_button_set_relief(GTK_BUTTON(addbutton), GTK_RELIEF_NONE); + gtk_button_set_relief(GTK_BUTTON(groupbutton), GTK_RELIEF_NONE); + gtk_button_set_relief(GTK_BUTTON(rembutton), GTK_RELIEF_NONE); + } + gtk_box_pack_start(GTK_BOX(bbox), addbutton, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(bbox), groupbutton, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(bbox), rembutton, TRUE, TRUE, 0); @@ -2818,14 +2810,14 @@ gtk_tooltips_set_tip(tips, groupbutton, _("Add a new Group"), "Penguin"); gtk_tooltips_set_tip(tips, rembutton, _("Remove selected Buddy/Group"), "Penguin"); + g_signal_connect(G_OBJECT(rembutton), "clicked", G_CALLBACK(do_del_buddy), edittree); + g_signal_connect(G_OBJECT(addbutton), "clicked", G_CALLBACK(add_buddy_callback), NULL); + g_signal_connect(G_OBJECT(groupbutton), "clicked", G_CALLBACK(add_group_callback), NULL); + /* And the boxes in the box */ gtk_box_pack_start(GTK_BOX(editpane), tbox, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(editpane), bbox, FALSE, FALSE, 0); - /* Handle closes right */ - - - /* Finish up */ gtk_widget_show(addbutton); gtk_widget_show(groupbutton); @@ -2835,12 +2827,8 @@ gtk_widget_show(bbox); gtk_widget_show(editpane); - - update_button_pix(); - - label = gtk_label_new(_("Online")); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), buddypane, label); label = gtk_label_new(_("Edit Buddies")); @@ -2853,47 +2841,24 @@ /* Pack things in the vbox */ gtk_widget_show(vbox); - - - gtk_widget_show(notebook); - - /* Enable buttons */ - - gtk_signal_connect(GTK_OBJECT(rembutton), "clicked", GTK_SIGNAL_FUNC(do_del_buddy), edittree); - 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_container_add(GTK_CONTAINER(blist), vbox); - gtk_signal_connect(GTK_OBJECT(blist), "delete_event", GTK_SIGNAL_FUNC(close_buddy_list), - NULL); - - gtk_signal_connect(GTK_OBJECT(blist), "configure_event", GTK_SIGNAL_FUNC(configure_blist_window), - NULL); - gtk_signal_connect(GTK_OBJECT(blist), "window_state_event", GTK_SIGNAL_FUNC(change_state_blist_window), - NULL); - - + g_signal_connect(G_OBJECT(blist), "delete_event", G_CALLBACK(close_buddy_list), NULL); + g_signal_connect(G_OBJECT(blist), "configure_event", G_CALLBACK(configure_blist_window), NULL); + g_signal_connect(G_OBJECT(blist), "window_state_event", G_CALLBACK(change_state_blist_window), NULL); /* The edit tree */ gtk_container_add(GTK_CONTAINER(tbox), edittree); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(tbox), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - - - gtk_window_set_title(GTK_WINDOW(blist), _("Gaim - Buddy List")); - - /* this conveniently moves it to the right place and stuff */ - unhide_buddy_list(); } -void refresh_buddy_window() +void show_buddy_list() { + make_buddy_list(); + unhide_buddy_list(); build_edit_tree(); - update_button_pix(); - gtk_widget_show(blist); }
