Mercurial > pidgin
changeset 1750:d2eca7a46cfd
[gaim-migrate @ 1760]
someday
maybe she'll come back to me
and i'll say
WHY DON'T YOU GO FUCK YOURSELF
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Wed, 25 Apr 2001 19:15:50 +0000 |
parents | 5bfc58c20e82 |
children | 14494564481e |
files | TODO libfaim/CHANGES libfaim/login.c src/aim.c src/buddy.c src/prefs.c src/ticker.c |
diffstat | 7 files changed, 328 insertions(+), 296 deletions(-) [+] |
line wrap: on
line diff
--- a/TODO Wed Apr 25 08:34:46 2001 +0000 +++ b/TODO Wed Apr 25 19:15:50 2001 +0000 @@ -44,6 +44,7 @@ Offline Messaging ICQ: + Authorization (is requesting Auth necessary?) Chat File Transfer New User Registration
--- a/libfaim/CHANGES Wed Apr 25 08:34:46 2001 +0000 +++ b/libfaim/CHANGES Wed Apr 25 19:15:50 2001 +0000 @@ -1,6 +1,9 @@ No release numbers ------------------ + - Wed Apr 25 11:51:39 PDT 2001 + - I think this was a bug. + - Tue Apr 24 17:36:03 PDT 2001 - Let Eric generate the hash if he wants.
--- a/libfaim/login.c Wed Apr 25 08:34:46 2001 +0000 +++ b/libfaim/login.c Wed Apr 25 19:15:50 2001 +0000 @@ -768,7 +768,7 @@ struct command_tx_struct *tx; int i = 0; - if (!sess || !conn || ((offset == 0) && !buf)) + if (!sess || !conn) return 0; if (!(tx = aim_tx_new(sess, conn, AIM_FRAMETYPE_OSCAR, 0x0002, 10+2+16)))
--- a/src/aim.c Wed Apr 25 08:34:46 2001 +0000 +++ b/src/aim.c Wed Apr 25 19:15:50 2001 +0000 @@ -603,7 +603,6 @@ set_defaults(FALSE); load_prefs(); - SetTickerPrefs(); /* set the default username */ if (opt_user_arg != NULL) {
--- a/src/buddy.c Wed Apr 25 08:34:46 2001 +0000 +++ b/src/buddy.c Wed Apr 25 19:15:50 2001 +0000 @@ -81,8 +81,6 @@ static GtkWidget *imbutton, *infobutton, *chatbutton; static GtkWidget *addbutton, *groupbutton, *rembutton; -extern int ticker_prefs; - GtkWidget *blist = NULL; GtkWidget *bpmenu; GtkWidget *buddies; @@ -534,7 +532,7 @@ #else show_login(); #endif /* USE_APPLET */ - if ( ticker_prefs & OPT_DISP_SHOW_BUDDYTICKER ) + if ( display_options & OPT_DISP_SHOW_BUDDYTICKER ) BuddyTickerSignoff(); } @@ -2083,7 +2081,7 @@ gtk_widget_show(b->pix); if (!(display_options & OPT_DISP_SHOW_PIXMAPS)) gtk_widget_hide(b->pix); - if (ticker_prefs & OPT_DISP_SHOW_BUDDYTICKER) + if (display_options & OPT_DISP_SHOW_BUDDYTICKER) BuddyTickerSetPixmap(b->name, pm, bm); gdk_pixmap_unref(pm); gdk_bitmap_unref(bm); @@ -2261,7 +2259,7 @@ gtk_widget_hide(bs->pix); gtk_pixmap_set(GTK_PIXMAP(bs->pix), pm, bm); gtk_widget_show(bs->pix); - if (ticker_prefs & OPT_DISP_SHOW_BUDDYTICKER) { + if (display_options & OPT_DISP_SHOW_BUDDYTICKER) { BuddyTickerAddUser(b->name, pm, bm); gtk_timeout_add(10000, (GtkFunction)BuddyTickerLogonTimeout, b->name); } @@ -2292,7 +2290,7 @@ gtk_widget_show(bs->pix); if (!(display_options & OPT_DISP_SHOW_PIXMAPS)) gtk_widget_hide(bs->pix); - if (ticker_prefs & OPT_DISP_SHOW_BUDDYTICKER) + if (display_options & OPT_DISP_SHOW_BUDDYTICKER) BuddyTickerSetPixmap(b->name, pm, bm); gdk_pixmap_unref(pm); gdk_bitmap_unref(bm); @@ -2318,7 +2316,7 @@ gtk_widget_hide(bs->pix); gtk_pixmap_set(GTK_PIXMAP(bs->pix), pm, bm); gtk_widget_show(bs->pix); - if (ticker_prefs & OPT_DISP_SHOW_BUDDYTICKER) { + if (display_options & OPT_DISP_SHOW_BUDDYTICKER) { BuddyTickerSetPixmap(b->name, pm, bm); gtk_timeout_add(10000, (GtkFunction)BuddyTickerLogoutTimeout, b->name); }
--- a/src/prefs.c Wed Apr 25 08:34:46 2001 +0000 +++ b/src/prefs.c Wed Apr 25 19:15:50 2001 +0000 @@ -62,6 +62,10 @@ static GtkWidget *sounddialog = NULL; static GtkWidget *prefdialog = NULL; static GtkWidget *debugbutton = NULL; +static GtkWidget *tickerbutton = NULL; + +extern GtkWidget *tickerwindow; +extern void BuddyTickerShow(); GtkWidget *prefs_away_list = NULL; GtkWidget *prefs_away_menu = NULL; @@ -75,6 +79,12 @@ debugbutton = NULL; } +static void desttkr(GtkWidget *m, gpointer n) +{ + gtk_widget_destroy(tickerbutton); + tickerbutton = NULL; +} + static void set_idle(GtkWidget *w, int *data) { report_idle = (int)data; @@ -100,59 +110,6 @@ return opt; } -static void general_page() -{ - GtkWidget *parent; - GtkWidget *box, *box2; - GtkWidget *label; - GtkWidget *sep; - GtkWidget *idle; - - parent = prefdialog->parent; - gtk_widget_destroy(prefdialog); - - prefdialog = gtk_frame_new(_("General Options")); - gtk_container_add(GTK_CONTAINER(parent), prefdialog); - - box = gtk_vbox_new(FALSE, 5); - gtk_container_set_border_width(GTK_CONTAINER(box), 5); - gtk_container_add(GTK_CONTAINER(prefdialog), box); - gtk_widget_show(box); - - label = gtk_label_new(_("All options take effect immediately unless otherwise noted.")); - gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 5); - gtk_widget_show(label); - - gaim_button(_("Use borderless buttons (requires restart for some buttons)"), &display_options, - OPT_DISP_COOL_LOOK, box); - gaim_button(_("Show Buddy Ticker after restart"), &display_options, OPT_DISP_SHOW_BUDDYTICKER, - box); - if (!dw && (general_options & OPT_GEN_DEBUG)) - general_options = general_options ^ OPT_GEN_DEBUG; - debugbutton = gaim_button(_("Show Debug Window"), &general_options, OPT_GEN_DEBUG, box); - gtk_signal_connect_object(GTK_OBJECT(debugbutton), "clicked", GTK_SIGNAL_FUNC(show_debug), 0); - gtk_signal_connect(GTK_OBJECT(debugbutton), "destroy", GTK_SIGNAL_FUNC(destdeb), 0); - - sep = gtk_hseparator_new(); - gtk_box_pack_start(GTK_BOX(box), sep, FALSE, FALSE, 5); - gtk_widget_show(sep); - - box2 = gtk_hbox_new(FALSE, 5); - gtk_box_pack_start(GTK_BOX(box), box2, FALSE, FALSE, 5); - gtk_widget_show(box2); - - label = gtk_label_new(_("Report Idle Times:")); - gtk_box_pack_start(GTK_BOX(box2), label, FALSE, FALSE, 5); - gtk_widget_show(label); - idle = idle_radio(_("None"), IDLE_NONE, box2, NULL); - idle = idle_radio(_("GAIM Use"), IDLE_GAIM, box2, idle); -#ifdef USE_SCREENSAVER - idle = idle_radio(_("X Use"), IDLE_SCREENSAVER, box2, idle); -#endif - - gtk_widget_show(prefdialog); -} - static GtkWidget *browser_entry = NULL; static GtkWidget *new_window = NULL; @@ -211,17 +168,23 @@ new_window = NULL; } -static void browser_page() +static void general_page() { GtkWidget *parent; GtkWidget *box; GtkWidget *label; + GtkWidget *hbox; + GtkWidget *vbox; + GtkWidget *frame; + GtkWidget *mbox; + GtkWidget *sep; + GtkWidget *idle; GtkWidget *opt; parent = prefdialog->parent; gtk_widget_destroy(prefdialog); - prefdialog = gtk_frame_new(_("Browser Options")); + prefdialog = gtk_frame_new(_("General Options")); gtk_container_add(GTK_CONTAINER(parent), prefdialog); box = gtk_vbox_new(FALSE, 5); @@ -233,24 +196,107 @@ gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 5); gtk_widget_show(label); - opt = browser_radio(_("Netscape"), BROWSER_NETSCAPE, box, NULL); - opt = browser_radio(_("KFM"), BROWSER_KFM, box, opt); + hbox = gtk_hbox_new(FALSE, 5); + gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 5); + gtk_widget_show(hbox); + + vbox = gtk_vbox_new(TRUE, 5); + gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5); + gtk_widget_show(vbox); + + frame = gtk_frame_new(_("Miscellaneous")); + gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 5); + gtk_widget_show(frame); + + mbox = gtk_vbox_new(TRUE, 5); + gtk_container_add(GTK_CONTAINER(frame), mbox); + gtk_widget_show(mbox); + + gaim_button(_("Use borderless buttons"), &display_options, + OPT_DISP_COOL_LOOK, mbox); + + if (!tickerwindow && (display_options & OPT_DISP_SHOW_BUDDYTICKER)) + display_options = display_options ^ OPT_DISP_SHOW_BUDDYTICKER; + tickerbutton = gaim_button(_("Show Buddy Ticker"), &display_options, OPT_DISP_SHOW_BUDDYTICKER, mbox); + gtk_signal_connect_object(GTK_OBJECT(tickerbutton), "clicked", GTK_SIGNAL_FUNC(BuddyTickerShow), 0); + gtk_signal_connect(GTK_OBJECT(tickerbutton), "destroy", GTK_SIGNAL_FUNC(desttkr), 0); + + if (!dw && (general_options & OPT_GEN_DEBUG)) + general_options = general_options ^ OPT_GEN_DEBUG; + debugbutton = gaim_button(_("Show Debug Window"), &general_options, OPT_GEN_DEBUG, mbox); + gtk_signal_connect_object(GTK_OBJECT(debugbutton), "clicked", GTK_SIGNAL_FUNC(show_debug), 0); + gtk_signal_connect(GTK_OBJECT(debugbutton), "destroy", GTK_SIGNAL_FUNC(destdeb), 0); + + frame = gtk_frame_new(_("Report Idle Times")); + gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 5); + gtk_widget_show(frame); + + mbox = gtk_vbox_new(TRUE, 5); + gtk_container_add(GTK_CONTAINER(frame), mbox); + gtk_widget_show(mbox); + + idle = idle_radio(_("None"), IDLE_NONE, mbox, NULL); + idle = idle_radio(_("GAIM Use"), IDLE_GAIM, mbox, idle); +#ifdef USE_SCREENSAVER + idle = idle_radio(_("X Use"), IDLE_SCREENSAVER, mbox, idle); +#endif + + frame = gtk_frame_new(_("Logging")); + gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, 5); + gtk_widget_show(frame); + + mbox = gtk_vbox_new(TRUE, 5); + gtk_container_add(GTK_CONTAINER(frame), mbox); + gtk_widget_show(mbox); + + gaim_button(_("Log all conversations"), &logging_options, OPT_LOG_ALL, mbox); + gaim_button(_("Strip HTML from logs"), &logging_options, OPT_LOG_STRIP_HTML, mbox); + + sep = gtk_hseparator_new(); + gtk_box_pack_start(GTK_BOX(mbox), sep, FALSE, FALSE, 0); + gtk_widget_show(sep); + + gaim_button(_("Log when buddies sign on/sign off"), &logging_options, OPT_LOG_BUDDY_SIGNON, mbox); + gaim_button(_("Log when buddies become idle/un-idle"), &logging_options, OPT_LOG_BUDDY_IDLE, mbox); + gaim_button(_("Log when buddies go away/come back"), &logging_options, OPT_LOG_BUDDY_AWAY, mbox); + gaim_button(_("Log your own signons/idleness/awayness"), &logging_options, OPT_LOG_MY_SIGNON, mbox); + gaim_button(_("Individual log file for each buddy's signons"), &logging_options, OPT_LOG_INDIVIDUAL, mbox); + + frame = gtk_frame_new(_("Browser")); + gtk_box_pack_start(GTK_BOX(box), frame, FALSE, FALSE, 5); + gtk_widget_show(frame); + + hbox = gtk_hbox_new(FALSE, 5); + gtk_container_add(GTK_CONTAINER(frame), hbox); + gtk_widget_show(hbox); + + vbox = gtk_vbox_new(FALSE, 5); + gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5); + gtk_widget_show(vbox); + + opt = browser_radio(_("KFM"), BROWSER_KFM, vbox, NULL); + opt = browser_radio(_("Netscape"), BROWSER_NETSCAPE, vbox, opt); + + new_window = + gaim_button(_("Pop up new window by default"), &general_options, OPT_GEN_BROWSER_POPUP, vbox); + + vbox = gtk_vbox_new(FALSE, 5); + gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5); + gtk_widget_show(vbox); + #ifdef USE_GNOME - opt = browser_radio(_("GNOME URL Handler"), BROWSER_GNOME, box, opt); + opt = browser_radio(_("GNOME URL Handler"), BROWSER_GNOME, vbox, opt); #endif /* USE_GNOME */ - opt = browser_radio(_("Manual"), BROWSER_MANUAL, box, opt); + opt = browser_radio(_("Manual"), BROWSER_MANUAL, vbox, opt); browser_entry = gtk_entry_new(); - gtk_box_pack_start(GTK_BOX(box), browser_entry, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(vbox), browser_entry, FALSE, FALSE, 0); gtk_entry_set_text(GTK_ENTRY(browser_entry), web_command); gtk_signal_connect(GTK_OBJECT(browser_entry), "focus_out_event", GTK_SIGNAL_FUNC(manualentry_key_pressed), NULL); gtk_signal_connect(GTK_OBJECT(browser_entry), "destroy", GTK_SIGNAL_FUNC(brentdes), NULL); gtk_widget_show(browser_entry); - new_window = - gaim_button(_("Pop up new window by default"), &general_options, OPT_GEN_BROWSER_POPUP, box); - if (web_browser != BROWSER_MANUAL) { gtk_widget_set_sensitive(browser_entry, FALSE); } else { @@ -266,44 +312,6 @@ gtk_widget_show(prefdialog); } -static void logging_page() -{ - GtkWidget *parent; - GtkWidget *box; - GtkWidget *label; - GtkWidget *sep; - - parent = prefdialog->parent; - gtk_widget_destroy(prefdialog); - - prefdialog = gtk_frame_new(_("Logging Options")); - gtk_container_add(GTK_CONTAINER(parent), prefdialog); - - box = gtk_vbox_new(FALSE, 5); - gtk_container_set_border_width(GTK_CONTAINER(box), 5); - gtk_container_add(GTK_CONTAINER(prefdialog), box); - gtk_widget_show(box); - - label = gtk_label_new(_("All options take effect immediately unless otherwise noted.")); - gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 5); - gtk_widget_show(label); - - gaim_button(_("Log all conversations"), &logging_options, OPT_LOG_ALL, box); - gaim_button(_("Strip HTML from logs"), &logging_options, OPT_LOG_STRIP_HTML, box); - - sep = gtk_hseparator_new(); - gtk_box_pack_start(GTK_BOX(box), sep, FALSE, FALSE, 5); - gtk_widget_show(sep); - - gaim_button(_("Log when buddies sign on/sign off"), &logging_options, OPT_LOG_BUDDY_SIGNON, box); - gaim_button(_("Log when buddies become idle/un-idle"), &logging_options, OPT_LOG_BUDDY_IDLE, box); - gaim_button(_("Log when buddies go away/come back"), &logging_options, OPT_LOG_BUDDY_AWAY, box); - gaim_button(_("Log your own signons/idleness/awayness (as set by options above)"), &logging_options, OPT_LOG_MY_SIGNON, box); - gaim_button(_("Individual log file for each buddy's signons"), &logging_options, OPT_LOG_INDIVIDUAL, box); - - gtk_widget_show(prefdialog); -} - static void buddy_page() { GtkWidget *parent; @@ -363,12 +371,14 @@ GtkWidget *parent; GtkWidget *box; GtkWidget *label; - GtkWidget *sep; + GtkWidget *frame; + GtkWidget *hbox; + GtkWidget *vbox; parent = prefdialog->parent; gtk_widget_destroy(prefdialog); - prefdialog = gtk_frame_new(_("Conversation Window Options")); + prefdialog = gtk_frame_new(_("Conversation Options")); gtk_container_add(GTK_CONTAINER(parent), prefdialog); box = gtk_vbox_new(FALSE, 5); @@ -380,31 +390,57 @@ gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 5); gtk_widget_show(label); - gaim_button(_("Enter sends message"), &general_options, OPT_GEN_ENTER_SENDS, box); - gaim_button(_("Control-Enter sends message"), &general_options, OPT_GEN_CTL_ENTER, box); - gaim_button(_("Escape closes window"), &general_options, OPT_GEN_ESC_CAN_CLOSE, box); - gaim_button(_("Control-{B/I/U/S} inserts HTML tags"), &general_options, OPT_GEN_CTL_CHARS, box); - gaim_button(_("Control-(number) inserts smileys"), &general_options, OPT_GEN_CTL_SMILEYS, box); - gaim_button(_("F2 toggles timestamp display"), &general_options, OPT_GEN_F2_TOGGLES, box); - - sep = gtk_hseparator_new(); - gtk_box_pack_start(GTK_BOX(box), sep, FALSE, FALSE, 5); - gtk_widget_show(sep); - - gaim_button(_("Show graphical smileys"), &display_options, OPT_DISP_SHOW_SMILEY, box); - gaim_button(_("Show timestamp on messages"), &display_options, OPT_DISP_SHOW_TIME, box); - gaim_button(_("Ignore colors"), &display_options, OPT_DISP_IGNORE_COLOUR, box); - gaim_button(_("Ignore font faces"), &display_options, OPT_DISP_IGNORE_FONTS, box); - gaim_button(_("Ignore font sizes"), &display_options, OPT_DISP_IGNORE_SIZES, box); - - sep = gtk_hseparator_new(); - gtk_box_pack_start(GTK_BOX(box), sep, FALSE, FALSE, 5); - gtk_widget_show(sep); - - gaim_button(_("Highlight misspelled words"), &general_options, OPT_GEN_CHECK_SPELLING, box); - gaim_button(_("Show URLs as links"), &general_options, OPT_GEN_SEND_LINKS, box); - gaim_button(_("Sending messages removes away status"), &general_options, OPT_GEN_BACK_ON_IM, - box); + frame = gtk_frame_new(_("Keyboard Options")); + gtk_box_pack_start(GTK_BOX(box), frame, FALSE, FALSE, 5); + gtk_widget_show(frame); + + hbox = gtk_hbox_new(TRUE, 5); + gtk_container_add(GTK_CONTAINER(frame), hbox); + gtk_widget_show(hbox); + + vbox = gtk_vbox_new(TRUE, 5); + gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5); + gtk_widget_show(vbox); + + gaim_button(_("Enter sends message"), &general_options, OPT_GEN_ENTER_SENDS, vbox); + gaim_button(_("Control-Enter sends message"), &general_options, OPT_GEN_CTL_ENTER, vbox); + gaim_button(_("Escape closes window"), &general_options, OPT_GEN_ESC_CAN_CLOSE, vbox); + + vbox = gtk_vbox_new(TRUE, 5); + gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5); + gtk_widget_show(vbox); + + gaim_button(_("Control-{B/I/U/S} inserts HTML tags"), &general_options, OPT_GEN_CTL_CHARS, vbox); + gaim_button(_("Control-(number) inserts smileys"), &general_options, OPT_GEN_CTL_SMILEYS, vbox); + gaim_button(_("F2 toggles timestamp display"), &general_options, OPT_GEN_F2_TOGGLES, vbox); + + frame = gtk_frame_new(_("Display and General Options")); + gtk_box_pack_start(GTK_BOX(box), frame, FALSE, FALSE, 5); + gtk_widget_show(frame); + + hbox = gtk_hbox_new(TRUE, 5); + gtk_container_add(GTK_CONTAINER(frame), hbox); + gtk_widget_show(hbox); + + vbox = gtk_vbox_new(TRUE, 5); + gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5); + gtk_widget_show(vbox); + + gaim_button(_("Show graphical smileys"), &display_options, OPT_DISP_SHOW_SMILEY, vbox); + gaim_button(_("Show timestamp on messages"), &display_options, OPT_DISP_SHOW_TIME, vbox); + gaim_button(_("Show URLs as links"), &general_options, OPT_GEN_SEND_LINKS, vbox); + gaim_button(_("Highlight misspelled words"), &general_options, OPT_GEN_CHECK_SPELLING, vbox); + gaim_button(_("Sending messages removes away status"), &general_options, OPT_GEN_BACK_ON_IM, vbox); + + vbox = gtk_vbox_new(TRUE, 5); + gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5); + gtk_widget_show(vbox); + + gaim_button(_("Ignore colors"), &display_options, OPT_DISP_IGNORE_COLOUR, vbox); + gaim_button(_("Ignore font faces"), &display_options, OPT_DISP_IGNORE_FONTS, vbox); + gaim_button(_("Ignore font sizes"), &display_options, OPT_DISP_IGNORE_SIZES, vbox); + gaim_button(_("Ignore TiK Automated Messages"), &general_options, OPT_GEN_TIK_HACK, vbox); + gaim_button(_("Ignore new conversations when away"), &general_options, OPT_GEN_DISCARD_WHEN_AWAY, vbox); gtk_widget_show(prefdialog); } @@ -425,57 +461,67 @@ update_im_button_pix(); } -static void im_buttons_menu_init(GtkWidget *omenu) +/* i like everclear */ +static GtkWidget *am_radio(char *label, int which, GtkWidget *box, GtkWidget *set) { - GtkWidget *menu, *opt; - int index; - - switch (display_options & (OPT_DISP_CONV_BUTTON_TEXT | OPT_DISP_CONV_BUTTON_XPM)) { - case OPT_DISP_CONV_BUTTON_TEXT: - index = 2; - break; - case OPT_DISP_CONV_BUTTON_XPM: - index = 1; - break; - default: /* both or neither */ - index = 0; - break; + GtkWidget *opt; + + if (!set) + opt = gtk_radio_button_new_with_label(NULL, label); + else + opt = + gtk_radio_button_new_with_label(gtk_radio_button_group(GTK_RADIO_BUTTON(set)), + label); + gtk_box_pack_start(GTK_BOX(box), opt, FALSE, FALSE, 0); + gtk_signal_connect(GTK_OBJECT(opt), "clicked", GTK_SIGNAL_FUNC(set_buttons_opt), (void *)which); + gtk_widget_show(opt); + if (which & 1) { + if (which == (OPT_DISP_CHAT_BUTTON_TEXT | 1)) { + if ( (display_options & OPT_DISP_CHAT_BUTTON_TEXT) && + !(display_options & OPT_DISP_CHAT_BUTTON_XPM)) + gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE); + } else if (which == (OPT_DISP_CHAT_BUTTON_XPM | 1)) { + if (!(display_options & OPT_DISP_CHAT_BUTTON_TEXT) && + (display_options & OPT_DISP_CHAT_BUTTON_XPM)) + gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE); + } else { + if (((display_options & OPT_DISP_CHAT_BUTTON_TEXT) && + (display_options & OPT_DISP_CHAT_BUTTON_XPM)) || + (!(display_options & OPT_DISP_CHAT_BUTTON_TEXT) && + !(display_options & OPT_DISP_CHAT_BUTTON_XPM))) + gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE); + } + } else { + if (which == OPT_DISP_CONV_BUTTON_TEXT) { + if ( (display_options & OPT_DISP_CONV_BUTTON_TEXT) && + !(display_options & OPT_DISP_CONV_BUTTON_XPM)) + gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE); + } else if (which == OPT_DISP_CONV_BUTTON_XPM) { + if (!(display_options & OPT_DISP_CONV_BUTTON_TEXT) && + (display_options & OPT_DISP_CONV_BUTTON_XPM)) + gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE); + } else { + if (((display_options & OPT_DISP_CONV_BUTTON_TEXT) && + (display_options & OPT_DISP_CONV_BUTTON_XPM)) || + (!(display_options & OPT_DISP_CONV_BUTTON_TEXT) && + !(display_options & OPT_DISP_CONV_BUTTON_XPM))) + gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE); + } } - menu = gtk_menu_new(); - - opt = gtk_menu_item_new_with_label(_("Pictures and Text")); - gtk_signal_connect(GTK_OBJECT(opt), "activate", GTK_SIGNAL_FUNC(set_buttons_opt), - (void *)(OPT_DISP_CONV_BUTTON_TEXT | OPT_DISP_CONV_BUTTON_XPM)); - gtk_widget_show(opt); - gtk_menu_append(GTK_MENU(menu), opt); - - opt = gtk_menu_item_new_with_label(_("Pictures Only")); - gtk_signal_connect(GTK_OBJECT(opt), "activate", GTK_SIGNAL_FUNC(set_buttons_opt), - (void *)OPT_DISP_CONV_BUTTON_XPM); - gtk_widget_show(opt); - gtk_menu_append(GTK_MENU(menu), opt); - - opt = gtk_menu_item_new_with_label(_("Text Only")); - gtk_signal_connect(GTK_OBJECT(opt), "activate", GTK_SIGNAL_FUNC(set_buttons_opt), - (void *)OPT_DISP_CONV_BUTTON_TEXT); - gtk_widget_show(opt); - gtk_menu_append(GTK_MENU(menu), opt); - - set_default_away(menu, (gpointer)g_slist_index(away_messages, default_away)); - - gtk_option_menu_remove_menu(GTK_OPTION_MENU(omenu)); - gtk_option_menu_set_menu(GTK_OPTION_MENU(omenu), menu); - gtk_option_menu_set_history(GTK_OPTION_MENU(omenu), index); + return opt; } static void im_page() { GtkWidget *parent; GtkWidget *box; + GtkWidget *label; + GtkWidget *frame; GtkWidget *hbox; - GtkWidget *label; + GtkWidget *vbox; GtkWidget *opt; + GtkWidget *sep; parent = prefdialog->parent; gtk_widget_destroy(prefdialog); @@ -492,117 +538,71 @@ gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 5); gtk_widget_show(label); - gaim_button(_("Show all conversations in one tabbed window"), &display_options, OPT_DISP_ONE_WINDOW, box); - gaim_button(_("Show logins in window"), &display_options, OPT_DISP_SHOW_LOGON, box); - - hbox = gtk_hbox_new(FALSE, 0); - gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 5); + frame = gtk_frame_new(_("IM Window")); + gtk_box_pack_start(GTK_BOX(box), frame, FALSE, FALSE, 5); + gtk_widget_show(frame); + + hbox = gtk_hbox_new(FALSE, 5); + gtk_container_add(GTK_CONTAINER(frame), hbox); gtk_widget_show(hbox); + vbox = gtk_vbox_new(TRUE, 5); + gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 5); + gtk_widget_show(vbox); + label = gtk_label_new(_("Show buttons as ")); - gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); + gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 5); gtk_widget_show(label); - opt = gtk_option_menu_new(); - gtk_box_pack_start(GTK_BOX(hbox), opt, FALSE, FALSE, 5); - im_buttons_menu_init(opt); - gtk_widget_show(opt); - - gaim_button(_("Show larger entry box on new windows"), &display_options, OPT_DISP_CONV_BIG_ENTRY, - box); - gaim_button(_("Raise windows on events"), &general_options, OPT_GEN_POPUP_WINDOWS, box); - gaim_button(_("Ignore new conversations when away"), &general_options, OPT_GEN_DISCARD_WHEN_AWAY, - box); - gaim_button(_("Ignore TiK Automated Messages"), &general_options, OPT_GEN_TIK_HACK, box); - - gtk_widget_show(prefdialog); -} - -static void chat_buttons_menu_init(GtkWidget *omenu) -{ - GtkWidget *menu, *opt; - int index; - - switch (display_options & (OPT_DISP_CHAT_BUTTON_TEXT | OPT_DISP_CHAT_BUTTON_XPM)) { - case OPT_DISP_CHAT_BUTTON_TEXT: - index = 2; - break; - case OPT_DISP_CHAT_BUTTON_XPM: - index = 1; - break; - default: /* both or neither */ - index = 0; - break; - } - - menu = gtk_menu_new(); - - opt = gtk_menu_item_new_with_label(_("Pictures and Text")); - gtk_signal_connect(GTK_OBJECT(opt), "activate", GTK_SIGNAL_FUNC(set_buttons_opt), - (void *)(OPT_DISP_CHAT_BUTTON_TEXT | OPT_DISP_CHAT_BUTTON_XPM | 1)); - gtk_widget_show(opt); - gtk_menu_append(GTK_MENU(menu), opt); - - opt = gtk_menu_item_new_with_label(_("Pictures Only")); - gtk_signal_connect(GTK_OBJECT(opt), "activate", GTK_SIGNAL_FUNC(set_buttons_opt), - (void *)(OPT_DISP_CHAT_BUTTON_XPM | 1)); - gtk_widget_show(opt); - gtk_menu_append(GTK_MENU(menu), opt); - - opt = gtk_menu_item_new_with_label(_("Text Only")); - gtk_signal_connect(GTK_OBJECT(opt), "activate", GTK_SIGNAL_FUNC(set_buttons_opt), - (void *)(OPT_DISP_CHAT_BUTTON_TEXT | 1)); - gtk_widget_show(opt); - gtk_menu_append(GTK_MENU(menu), opt); - - gtk_option_menu_remove_menu(GTK_OPTION_MENU(omenu)); - gtk_option_menu_set_menu(GTK_OPTION_MENU(omenu), menu); - gtk_option_menu_set_history(GTK_OPTION_MENU(omenu), index); -} - -static void chat_page() -{ - GtkWidget *parent; - GtkWidget *box; - GtkWidget *hbox; - GtkWidget *label; - GtkWidget *opt; - - parent = prefdialog->parent; - gtk_widget_destroy(prefdialog); - - prefdialog = gtk_frame_new(_("Chat Options")); - gtk_container_add(GTK_CONTAINER(parent), prefdialog); - - box = gtk_vbox_new(FALSE, 5); - gtk_container_set_border_width(GTK_CONTAINER(box), 5); - gtk_container_add(GTK_CONTAINER(prefdialog), box); - gtk_widget_show(box); - - label = gtk_label_new(_("All options take effect immediately unless otherwise noted.")); - gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 5); - gtk_widget_show(label); - - gaim_button(_("Show all chats in one tabbed window"), &display_options, OPT_DISP_ONE_CHAT_WINDOW, box); - gaim_button(_("Show people joining/leaving in window"), &display_options, OPT_DISP_CHAT_LOGON, box); - - hbox = gtk_hbox_new(FALSE, 0); - gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 5); + opt = am_radio(_("Pictures And Text"), OPT_DISP_CONV_BUTTON_TEXT | OPT_DISP_CONV_BUTTON_XPM, vbox, NULL); + opt = am_radio(_("Pictures"), OPT_DISP_CONV_BUTTON_XPM, vbox, opt); + opt = am_radio(_("Text"), OPT_DISP_CONV_BUTTON_TEXT, vbox, opt); + + sep = gtk_vseparator_new(); + gtk_box_pack_start(GTK_BOX(hbox), sep, FALSE, FALSE, 5); + gtk_widget_show(sep); + + vbox = gtk_vbox_new(TRUE, 5); + gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5); + gtk_widget_show(vbox); + + gaim_button(_("Show all conversations in one tabbed window"), &display_options, OPT_DISP_ONE_WINDOW, vbox); + gaim_button(_("Raise windows on events"), &general_options, OPT_GEN_POPUP_WINDOWS, vbox); + gaim_button(_("Show logins in window"), &display_options, OPT_DISP_SHOW_LOGON, vbox); + gaim_button(_("Show larger entry box on new windows"), &display_options, OPT_DISP_CONV_BIG_ENTRY, vbox); + + frame = gtk_frame_new(_("IM Window")); + gtk_box_pack_start(GTK_BOX(box), frame, FALSE, FALSE, 5); + gtk_widget_show(frame); + + hbox = gtk_hbox_new(FALSE, 5); + gtk_container_add(GTK_CONTAINER(frame), hbox); gtk_widget_show(hbox); + vbox = gtk_vbox_new(TRUE, 5); + gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 5); + gtk_widget_show(vbox); + label = gtk_label_new(_("Show buttons as ")); - gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); + gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 5); gtk_widget_show(label); - opt = gtk_option_menu_new(); - gtk_box_pack_start(GTK_BOX(hbox), opt, FALSE, FALSE, 5); - chat_buttons_menu_init(opt); - gtk_widget_show(opt); - - - gaim_button(_("Show larger entry box on new windows"), &display_options, OPT_DISP_CHAT_BIG_ENTRY, - box); - gaim_button(_("Raise windows on events"), &general_options, OPT_GEN_POPUP_CHAT, box); + opt = am_radio(_("Pictures And Text"), OPT_DISP_CHAT_BUTTON_TEXT | OPT_DISP_CHAT_BUTTON_XPM | 1, vbox, NULL); + opt = am_radio(_("Pictures"), OPT_DISP_CHAT_BUTTON_XPM | 1, vbox, opt); + opt = am_radio(_("Text"), OPT_DISP_CHAT_BUTTON_TEXT | 1, vbox, opt); + + sep = gtk_vseparator_new(); + gtk_box_pack_start(GTK_BOX(hbox), sep, FALSE, FALSE, 5); + gtk_widget_show(sep); + + vbox = gtk_vbox_new(TRUE, 5); + gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5); + gtk_widget_show(vbox); + + gaim_button(_("Show all chats in one tabbed window"), &display_options, OPT_DISP_ONE_CHAT_WINDOW, vbox); + gaim_button(_("Raise windows on events"), &general_options, OPT_GEN_POPUP_CHAT, vbox); + gaim_button(_("Show people joining/leaving in window"), &display_options, OPT_DISP_CHAT_LOGON, vbox); + gaim_button(_("Show larger entry box on new windows"), &display_options, OPT_DISP_CHAT_BIG_ENTRY, vbox); gtk_widget_show(prefdialog); } @@ -2194,6 +2194,7 @@ text, 5, NULL, NULL, NULL, NULL, 0, 1); gtk_ctree_node_set_row_data(GTK_CTREE(preftree), general_node, general_page); + /* text[0] = _("Browser"); node = gtk_ctree_insert_node(GTK_CTREE(preftree), general_node, NULL, text, 5, NULL, NULL, NULL, NULL, 0, 1); @@ -2203,6 +2204,7 @@ node = gtk_ctree_insert_node(GTK_CTREE(preftree), general_node, NULL, text, 5, NULL, NULL, NULL, NULL, 0, 1); gtk_ctree_node_set_row_data(GTK_CTREE(preftree), node, logging_page); + */ gtk_ctree_select(GTK_CTREE(preftree), general_node); } @@ -2220,7 +2222,7 @@ void prefs_build_convo() { - GtkCTreeNode *parent, *node, *node2; + GtkCTreeNode *parent, *node; char *text[1]; text[0] = _("Conversations"); @@ -2228,25 +2230,27 @@ text, 5, NULL, NULL, NULL, NULL, 0, 1); gtk_ctree_node_set_row_data(GTK_CTREE(preftree), parent, convo_page); - text[0] = _("IM Window"); + text[0] = _("Windows"); node = gtk_ctree_insert_node(GTK_CTREE(preftree), parent, NULL, text, 5, NULL, NULL, NULL, NULL, 0, 1); gtk_ctree_node_set_row_data(GTK_CTREE(preftree), node, im_page); + /* text[0] = _("Chat Window"); node = gtk_ctree_insert_node(GTK_CTREE(preftree), parent, NULL, text, 5, NULL, NULL, NULL, NULL, 0, 1); gtk_ctree_node_set_row_data(GTK_CTREE(preftree), node, chat_page); - - text[0] = _("Chat Rooms"); - node2 = gtk_ctree_insert_node(GTK_CTREE(preftree), node, NULL, - text, 5, NULL, NULL, NULL, NULL, 1, 0); - gtk_ctree_node_set_row_data(GTK_CTREE(preftree), node2, room_page); + */ text[0] = _("Font Options"); node = gtk_ctree_insert_node(GTK_CTREE(preftree), parent, NULL, text, 5, NULL, NULL, NULL, NULL, 0, 1); gtk_ctree_node_set_row_data(GTK_CTREE(preftree), node, font_page); + + text[0] = _("Chat Rooms"); + node = gtk_ctree_insert_node(GTK_CTREE(preftree), parent, NULL, + text, 5, NULL, NULL, NULL, NULL, 0, 1); + gtk_ctree_node_set_row_data(GTK_CTREE(preftree), node, room_page); } void prefs_build_sound()
--- a/src/ticker.c Wed Apr 25 08:34:46 2001 +0000 +++ b/src/ticker.c Wed Apr 25 19:15:50 2001 +0000 @@ -26,6 +26,8 @@ #include <string.h> #include <stdlib.h> #include "gaim.h" +#include "prpl.h" +#include "pixmaps/no_icon.xpm" GtkWidget *tickerwindow = NULL; GtkWidget *ticker; @@ -52,18 +54,9 @@ GList * BuddyTickerFindUser( char *name ); int BuddyTickerMessageRemove( gpointer data ); extern void pressed_ticker(char *); - -// this pref is startup only, so make a shadow here of settings at startup -// code uses this variable, not display_prefs +void BuddyTickerShow(); extern int display_options; -int ticker_prefs; - -void -SetTickerPrefs( void ) -{ - ticker_prefs = display_options; -} void BuddyTickerDestroyWindow( GtkWidget *window ) @@ -185,7 +178,7 @@ void BuddyTickerSetPixmap( char *name, GdkPixmap *pm, GdkBitmap *bm ) { - GList *p; + GList *p; TickerData *data; if ( userclose == TRUE ) @@ -275,4 +268,38 @@ tickerbuds = (GList *) NULL; } +void BuddyTickerShow() +{ + GdkPixmap *pm; + GdkBitmap *bm; + struct gaim_connection *gc; + struct group *g; + struct buddy *b; + GSList *gcons, *grps, *buds; + char **xpm; + + if( !(display_options & OPT_DISP_SHOW_BUDDYTICKER) ) { + BuddyTickerSignoff(); + display_options &= ~OPT_DISP_SHOW_BUDDYTICKER; + return; + } + for( gcons = connections; gcons; gcons = gcons->next ) { + gc = (struct gaim_connection *)gcons->data; + for( grps = gc->groups; grps; grps = grps->next ) { + g = (struct group *)grps->data; + for( buds = g->members; buds; buds = buds->next ) { + b = (struct buddy *)buds->data; + if( b->present ) { + xpm = NULL; + if (gc->prpl->list_icon) + xpm = (*gc->prpl->list_icon)(b->uc); + if (xpm == NULL) + xpm = (char **)no_icon_xpm; + pm = gdk_pixmap_create_from_xpm_d(blist->window, &bm, NULL, xpm); + BuddyTickerAddUser( b->name, pm, bm ); + } + } + } + } +}