Update of /cvsroot/gaim/gaim/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20701/src Modified Files: Makefile.am Makefile.mingw gtkblist.c gtkdialogs.c gtkdialogs.h prpl.h server.c server.h Removed Files: about.c Log Message: Move show_about to gtkdialogs.c and namespace it Remove about.c A few other minor touchups in gtkdialogs.c Make serv_warn pass a gboolean instead of an int Index: Makefile.am =================================================================== RCS file: /cvsroot/gaim/gaim/src/Makefile.am,v retrieving revision 1.162 retrieving revision 1.163 diff -u -d -p -r1.162 -r1.163 --- Makefile.am 8 Aug 2004 05:37:58 -0000 1.162 +++ Makefile.am 15 Aug 2004 17:05:50 -0000 1.163 @@ -137,7 +137,6 @@ bin_PROGRAMS = gaim gaim-remote gaim_SOURCES = \ $(gaim_coresources) \ - about.c \ away.c \ dnd-hints.c \ gaim-disclosure.c \ Index: Makefile.mingw =================================================================== RCS file: /cvsroot/gaim/gaim/src/Makefile.mingw,v retrieving revision 1.67 retrieving revision 1.68 diff -u -d -p -r1.67 -r1.68 --- Makefile.mingw 8 Aug 2004 00:48:17 -0000 1.67 +++ Makefile.mingw 15 Aug 2004 17:05:50 -0000 1.68 @@ -76,7 +76,7 @@ LIB_PATHS = -L$(GTK_TOP)/lib \ ## SOURCES, OBJECTS ## -DLL_C_SRC = about.c \ +DLL_C_SRC = \ account.c \ accountopt.c \ away.c \ Index: gtkblist.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/gtkblist.c,v retrieving revision 1.158 retrieving revision 1.159 diff -u -d -p -r1.158 -r1.159 --- gtkblist.c 15 Aug 2004 15:08:22 -0000 1.158 +++ gtkblist.c 15 Aug 2004 17:05:50 -0000 1.159 @@ -2353,7 +2353,7 @@ static GtkItemFactoryEntry blist_menu[] { N_("/_Help"), NULL, NULL, 0, "<Branch>" }, { N_("/Help/Online _Help"), "F1", gtk_blist_show_onlinehelp_cb, 0, "<StockItem>", GTK_STOCK_HELP }, { N_("/Help/_Debug Window"), NULL, toggle_debug, 0, NULL }, - { N_("/Help/_About"), NULL, show_about, 0, "<StockItem>", GAIM_STOCK_ABOUT }, + { N_("/Help/_About"), NULL, gaim_gtkdialogs_about, 0, "<StockItem>", GAIM_STOCK_ABOUT }, }; /********************************************************* Index: gtkdialogs.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/gtkdialogs.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -p -r1.4 -r1.5 --- gtkdialogs.c 9 Aug 2004 03:49:46 -0000 1.4 +++ gtkdialogs.c 15 Aug 2004 17:05:51 -0000 1.5 @@ -23,13 +23,10 @@ #include "debug.h" #include "notify.h" -#include "prefs.h" #include "prpl.h" #include "request.h" -#include "status.h" #include "util.h" -#include "away.h" #include "gtkdialogs.h" #include "gtkimhtml.h" #include "gtkimhtmltoolbar.h" @@ -37,11 +34,10 @@ #include "gtkutils.h" #include "stock.h" -/* XXX */ -#include "gaim.h" - static GList *dialogwindows = NULL; +static GtkWidget *about = NULL; + struct warning { GtkWidget *window; GtkWidget *anon; @@ -49,33 +45,231 @@ struct warning { GaimConnection *gc; }; -/*------------------------------------------------------------------------*/ -/* Destroys */ -/*------------------------------------------------------------------------*/ - -static void -destroy_dialog(GtkWidget *w, GtkWidget *w2) +void +gaim_gtkdialogs_destroy_all() { - GtkWidget *dest; - - if (!GTK_IS_WIDGET(w2)) - dest = w; - else - dest = w2; + while (dialogwindows) { + gtk_widget_destroy(dialogwindows->data); + dialogwindows = g_list_remove(dialogwindows, dialogwindows->data); + } +} - dialogwindows = g_list_remove(dialogwindows, dest); - gtk_widget_destroy(dest); +static void destroy_about() +{ + if (about != NULL) + gtk_widget_destroy(about); + about = NULL; } -void -gaim_gtkdialogs_destroy_all() +void gaim_gtkdialogs_about(GtkWidget *w, void *data) { - while (dialogwindows) - destroy_dialog(NULL, dialogwindows->data); + GtkWidget *hbox; + GtkWidget *vbox; + GtkWidget *logo; + GtkWidget *label; + GtkWidget *sw; + GtkWidget *text; + GtkWidget *bbox; + GtkWidget *button; + GtkTextIter iter; + gchar *str, *labeltext; - /* STATUS */ - if (awaymessage) - do_im_back(NULL, NULL); + if (about != NULL) { + gtk_window_present(GTK_WINDOW(about)); + return; + } + + GAIM_DIALOG(about); + gtk_window_set_default_size(GTK_WINDOW(about), 450, -1); + gtk_window_set_title(GTK_WINDOW(about), _("About Gaim")); + gtk_window_set_role(GTK_WINDOW(about), "about"); + gtk_window_set_resizable(GTK_WINDOW(about), TRUE); + + hbox = gtk_hbox_new(FALSE, 12); + gtk_container_set_border_width(GTK_CONTAINER(hbox), 12); + gtk_container_add(GTK_CONTAINER(about), hbox); + + vbox = gtk_vbox_new(FALSE, 12); + gtk_container_add(GTK_CONTAINER(hbox), vbox); + + logo = gtk_image_new_from_stock(GAIM_STOCK_LOGO, gtk_icon_size_from_name(GAIM_ICON_SIZE_LOGO)); + gtk_box_pack_start(GTK_BOX(vbox), logo, FALSE, FALSE, 0); + + labeltext = g_strdup_printf(_("<span weight=\"bold\" size=\"larger\">Gaim v%s</span>"), VERSION); + label = gtk_label_new(NULL); + gtk_label_set_markup(GTK_LABEL(label), labeltext); + gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); + gtk_misc_set_alignment(GTK_MISC(label), 0.5, 0); + gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); + g_free(labeltext); + + sw = gtk_scrolled_window_new(NULL, NULL); + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), + GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); + gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); + gtk_widget_set_size_request(sw, -1, 350); + gtk_box_pack_start(GTK_BOX(vbox), sw, FALSE, FALSE, 0); + + text = gtk_imhtml_new(NULL, NULL); + gtk_container_add(GTK_CONTAINER(sw), text); + gaim_setup_imhtml(text); + + gtk_imhtml_append_text(GTK_IMHTML(text), + _("Gaim is a modular messaging client capable of using " + "AIM, MSN, Yahoo!, Jabber, ICQ, IRC, SILC, " + "Novell GroupWise, Napster, Zephyr, and Gadu-Gadu " + "all at once. It is written using " + "Gtk+ and is licensed under the GPL.<BR><BR>"), GTK_IMHTML_NO_SCROLL); + + gtk_imhtml_append_text(GTK_IMHTML(text), + "<FONT SIZE=\"4\">URL:</FONT> <A HREF=\"" GAIM_WEBSITE "\">" + GAIM_WEBSITE "</A><BR><BR>", GTK_IMHTML_NO_SCROLL); + + gtk_imhtml_append_text(GTK_IMHTML(text), + _("<FONT SIZE=\"4\">IRC:</FONT> #gaim on irc.freenode.net" + "<BR><BR>"), GTK_IMHTML_NO_SCROLL); + + /* Active Developers */ + str = g_strconcat( + "<FONT SIZE=\"4\">", _("Active Developers"), ":</FONT><BR>" + " Rob Flynn (", _("maintainer"), ") " + "<<A HREF=\"mailto:ga...@ro...\">ga...@ro...</A>><BR>" + " Sean Egan (", _("lead developer"), ") " + "<<A HREF=\"mailto:sea...@bi...\">" + "bj...@bi...</A>><BR>" + " Christian 'ChipX86' Hammond (", _("developer & webmaster"), ")<BR>" + " Herman Bloggs (", _("win32 port"), ") " + "<<A HREF=\"mailto:her...@ya...\">" + "her...@ya...</A>><BR>" + " Nathan 'faceprint' Walp (", _("developer"), ")<BR>" + " Mark 'KingAnt' Doliner (", _("developer"), ")<BR>" + " Ethan 'Paco-Paco' Blanton (", _("developer"), ")<br>" + " Tim 'marv' Ringenbach (", _("developer"), ")<br>" + " Luke 'LSchiere' Schierer (", _("support"), ")<BR>" + "<BR>", NULL); + gtk_imhtml_append_text(GTK_IMHTML(text), str, GTK_IMHTML_NO_SCROLL); + g_free(str); + + /* Crazy Patch Writers */ + str = g_strconcat( + "<FONT SIZE=\"4\">", _("Crazy Patch Writers"), ":</FONT><BR>" + " Daniel 'datallah' Atallah<br>" + " Ka-Hing 'javabsp' Cheung<br>" + " Decklin Foster<BR>" + " Gary 'grim' Kramlich<br>" + " Robert 'Robot101' McQueen<BR>" + " Benjamin Miller<BR>" + " Etan 'deryni' Reisner<BR>" + " Kevin 'SimGuy' Stange<br>" + " Stu 'nosnilmot' Tomlinson<br>" + "<BR>", NULL); + gtk_imhtml_append_text(GTK_IMHTML(text), str, GTK_IMHTML_NO_SCROLL); + g_free(str); + + /* Retired Developers */ + str = g_strconcat( + "<FONT SIZE=\"4\">", _("Retired Developers"), ":</FONT><BR>" + " Adam Fritzler (", _("former libfaim maintainer"), ")<BR>" + " Eric Warmenhoven (", _("former lead developer"), ") " + "<<A HREF=\"mailto:war...@ya...\">" + "war...@ya...</A>><BR>" + " Jim Duchek (", _("former maintainer"), ")<BR>" + " Jim Seymour (", _("former Jabber developer"), ")<BR>" + " Mark Spencer (", _("original author"), ") " + "<<A HREF=\"mailto:mar...@ma...\">" + "mar...@ma...</A>><BR>" + " Syd Logan (", _("hacker and designated driver [lazy bum]"), + ")<BR>" + "<BR>", NULL); + gtk_imhtml_append_text(GTK_IMHTML(text), str, GTK_IMHTML_NO_SCROLL); + g_free(str); + + /* Current Translators */ + str = g_strconcat( + "<FONT SIZE=\"4\">", _("Current Translators"), ":</FONT><BR>" + " <b>", _("Bulgarian"), " (bg)</b> - Alexander Shopov <<a href=\"mailto: al_...@us...\">al_...@us...</a>><br>" + " <b>", _("Catalan"), " (ca)</b> - Robert Millan <<a href=\"mailto: zer...@wa...\">zer...@wa...</a>><br>" + " <b>", _("Czech"), " (cs)</b> - Miloslav Trmac <<a href=\"mailto: mi...@vo...\">mi...@vo...</a>><br>" + " <b>", _("Danish"), " (da)</b> - Morten Brix Pedersen <<a href=\"mailto: mo...@wt...\">mo...@wt...</a>><br>" + " <b>", _("British English"), " (en_GB)</b> - Luke Ross <<a href=\"mailto: luk...@sy...\">luk...@sy...</a>><br>" + " <b>", _("Canadian English"), " (en_CA)</b> - Adam Weinberger <<a href=\"mailto: ad...@gn...\">ad...@gn...</a>><br>" + " <b>", _("German"), " (de)</b> - Björn Voigt <<a href=\"mailto: bj...@cs...\">bj...@cs...</a>><br>" + " <b>", _("Spanish"), " (es)</b> - Javier Fernández-Sanguino Peña <<a href=\"mailto: jf...@de...\">jf...@de...</a>><br>" + " <b>", _("Finnish"), " (fi)</b> - Arto Alakulju <<a href=\"mailto: ar...@al...\">ar...@al...</a>><br>" + " <b>", _("French"), " (fr)</b> - Ãric Boumaour <<a href=\"mailto: zon...@us...\">zon...@us...</a>><br>" + " <b>", _("Hebrew"), " (he)</b> - Pavel Bibergal <<a href=\"mailto:cyb...@ho...\">cyb...@ho...</a>><br>" + " <b>", _("Hindi"), " (hi)</b> - Ravishankar Shrivastava <<a href=\"mailto: rav...@ya...\">rav...@ya...</a>><br>" + " <b>", _("Hungarian"), " (hu)</b> - Zoltan Sutto <<a href=\"mailto: sut...@ch...\">sut...@ch...</a>><br>" + " <b>", _("Italian"), " (it)</b> - Claudio Satriano <<a href=\"mailto: sat...@na...\">sat...@na...</a>><br>" + " <b>", _("Japanese"), " (ja)</b> - Takashi Aihana <<a href=\"mailto: ai...@gn...\">ai...@gn...</a>><br>" + " <b>", _("Lithuanian"), " (lt)</b> - Gediminas ÄiÄinskas <<a href=\"mailto: ged...@pa...\">ged...@pa...</a>><br>" + " <b>", _("Korean"), " (ko)</b> - Kyung-uk Son <<a href=\"mailto: vv...@ch...\">vv...@ch...</a>><br>" + " <b>", _("Dutch; Flemish"), " (nl)</b> - Vincent van Adrighem <<a href=\"mailto: V.v...@di...\">V.v...@di...</a>><br>" + " <b>", _("Macedonian"), " (mk)</b> - Tomislav Markovski <<a href=\"mailto: he...@us...\">he...@us...</a>><br>" + " <b>", _("Norwegian"), " (no)</b> - Petter Johan Olsen <<a href=\"mailto:pet...@cc...\">pet...@cc...</a>><br>" + " <b>", _("Polish"), " (pl)</b> - Krzysztof Foltman <<a href=\"mailto:krz...@fo...\">krz...@fo...</a>>, Emil Nowak <<a href=\"mailto:em...@go...\">em...@go...</a>><br>" + " <b>", _("Portuguese"), " (pt)</b> - Duarte Henriques <<a href=\"mailto:dua...@my...\">dua...@my...</a>><br>" + " <b>", _("Portuguese-Brazil"), " (pt_BR)</b> - MaurÃcio de Lemos Rodrigues Collares Neto <<a href=\"mailto: mau...@gm...\">mau...@gm...</a>><br>" + " <b>", _("Romanian"), " (ro)</b> - MiÅu Moldovan <<a href=\"mailto: du...@go...\">du...@go...</a>><br>" + " <b>", _("Russian"), " (ru)</b> - Dmitry Beloglazov <<a href=\"mailto: dm...@us...\">dm...@us...</a>><br>" + " <b>", _("Serbian"), " (sr)</b> - Danilo Å egan <<a href=\"mailto: ds...@gm...\">ds...@gm...</a>>, Aleksandar Urosevic <<a href=\"mailto: ur...@us...\">ur...@us...</a>><br>" + " <b>", _("Slovenian"), " (sl)</b> - Matjaz Horvat <<a href=\"mailto: ma...@ow...\">ma...@ow...</a>><br>" + " <b>", _("Swedish"), " (sv)</b> - Tore Lundqvist <<a href=\"mailto: tl...@mi...\">tl...@mi...</a>><br>" + " <b>", _("Vietnamese"), " (vi)</b> - T.M.Thanh ", _("and the Gnome-Vi Team"), " <<a href=\"mailto: gno...@li...\">gno...@li...</a>><br>" + " <b>", _("Simplified Chinese"), " (zh_CN)</b> - Funda Wang <<a href=\"mailto: fun...@li...\">fun...@li...</a>><br>" + " <b>", _("Traditional Chinese"), " (zh_TW)</b> - Ambrose C. Li <<a href=\"mailto: ac...@ad...\">ac...@ad...</a>>, Paladin R. Liu <<a href=\"mailto: pa...@ms...\">pa...@ms...</a>><br>" + "<BR>", NULL); + gtk_imhtml_append_text(GTK_IMHTML(text), str, GTK_IMHTML_NO_SCROLL); + g_free(str); + + /* Past Translators */ + str = g_strconcat( + "<FONT SIZE=\"4\">", _("Past Translators"), ":</FONT><BR>" + " <b>", _("Amharic"), " (am)</b> - Daniel Yacob<br>" + " <b>", _("Bulgarian"), " (bg)</b> - Hristo Todorov<br>" + " <b>", _("Catalan"), " (ca)</b> - JM Pérez Cáncer<br>" + " <b>", _("Czech"), " (cs)</b> - Honza Král<br>" + " <b>", _("German"), " (de)</b> - Daniel Seifert, Karsten Weiss<br>" + " <b>", _("Spanish"), " (es)</b> - Amaya Rodrigo, Alejandro G Villar, Nicolás Lichtmaier, JM Pérez Cáncer<br>" + " <b>", _("Finnish"), " (fi)</b> - Tero Kuusela<br>" + " <b>", _("French"), " (fr)</b> - Sébastien François, Stéphane Pontier, Stéphane Wirtel, Loïc Jeannin<br>" + " <b>", _("Italian"), " (it)</b> - Salvatore di Maggio<br>" + " <b>", _("Japanese"), " (ja)</b> - Ryosuke Kutsuna, Taku Yasui, Junichi Uekawa<br>" + " <b>", _("Korean"), " (ko)</b> - Sang-hyun S, A Ho-seok Lee<br>" + " <b>", _("Polish"), " (pl)</b> - PrzemysÅaw SuÅek<br>" + " <b>", _("Russian"), " (ru)</b> - Sergey Volozhanin<br>" + " <b>", _("Russian"), "(ru)</b> - Alexandre Prokoudine<br>" + " <b>", _("Slovak"), " (sk)</b> - Daniel Režný<br>" + " <b>", _("Swedish"), " (sv)</b> - Christian Rose<br>" + " <b>", _("Chinese"), " (zh_CN, zh_TW)</b> - Hashao, Rocky S. Lee<br>" + "<BR>", NULL); + gtk_imhtml_append_text(GTK_IMHTML(text), str, GTK_IMHTML_NO_SCROLL); + g_free(str); + + gtk_adjustment_set_value(gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(sw)), 0); + gtk_text_buffer_get_start_iter(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), &iter); + gtk_text_buffer_place_cursor(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), &iter); + + /* Close Button */ + bbox = gtk_hbutton_box_new(); + gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END); + gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0); + + button = gtk_button_new_from_stock(GTK_STOCK_CLOSE); + gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); + + g_signal_connect_swapped(G_OBJECT(button), "clicked", + G_CALLBACK(destroy_about), G_OBJECT(about)); + g_signal_connect(G_OBJECT(about), "destroy", + G_CALLBACK(destroy_about), G_OBJECT(about)); + + /* this makes the sizes not work? */ + GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); + gtk_widget_grab_default(button); + + /* Let's give'em something to talk about -- woah woah woah */ + gtk_widget_show_all(about); + gtk_window_present(GTK_WINDOW(about)); } static void @@ -132,6 +326,9 @@ gaim_gtkdialogs_im_with_user(GaimAccount GaimConvWindow *win; GaimGtkWindow *gtkwin; + g_return_if_fail(account != NULL); + g_return_if_fail(username != NULL); + conv = gaim_find_conversation_with_account(username, account); if (conv == NULL) @@ -321,30 +518,35 @@ static void gaim_gtkdialogs_warn_cb(GtkWidget *widget, gint resp, struct warning *w) { if (resp == GTK_RESPONSE_OK) - serv_warn(w->gc, w->who, (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w->anon))) ? 1 : 0); + serv_warn(w->gc, w->who, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w->anon))); + + dialogwindows = g_list_remove(dialogwindows, w->window); + gtk_widget_destroy(w->window); - destroy_dialog(NULL, w->window); g_free(w->who); g_free(w); } +/* + * XXX - Make this use the request API, if possible. + */ void gaim_gtkdialogs_warn(GaimConnection *gc, const char *who) { - char *labeltext; + gchar *labeltext; GtkWidget *hbox, *vbox; GtkWidget *label; - GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_WARNING, GTK_ICON_SIZE_DIALOG); - GaimConversation *c = gaim_find_conversation_with_account(who, gc->account); + GtkWidget *img; + struct warning *w; - struct warning *w = g_new0(struct warning, 1); + g_return_if_fail(gc != NULL); + g_return_if_fail(who != NULL); + + w = g_new0(struct warning, 1); w->who = g_strdup(who); w->gc = gc; - gtk_misc_set_alignment(GTK_MISC(img), 0, 0); - - w->window = gtk_dialog_new_with_buttons(_("Warn User"), - GTK_WINDOW(GAIM_GTK_WINDOW(c->window)->window), 0, + w->window = gtk_dialog_new_with_buttons(_("Warn User"), NULL, 0, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GAIM_STOCK_WARN, GTK_RESPONSE_OK, NULL); gtk_dialog_set_default_response (GTK_DIALOG(w->window), GTK_RESPONSE_OK); @@ -358,6 +560,9 @@ gaim_gtkdialogs_warn(GaimConnection *gc, hbox = gtk_hbox_new(FALSE, 12); gtk_container_add(GTK_CONTAINER(GTK_DIALOG(w->window)->vbox), hbox); + + img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_WARNING, GTK_ICON_SIZE_DIALOG); + gtk_misc_set_alignment(GTK_MISC(img), 0, 0); gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); vbox = gtk_vbox_new(FALSE, 0); @@ -397,6 +602,8 @@ gaim_gtkdialogs_alias_contact_cb(GaimCon void gaim_gtkdialogs_alias_contact(GaimContact *contact) { + g_return_if_fail(contact != NULL); + gaim_request_input(NULL, _("Alias Contact"), NULL, _("Enter an alias for this contact."), contact->alias, FALSE, FALSE, NULL, @@ -412,14 +619,18 @@ gaim_gtkdialogs_alias_buddy_cb(GaimBuddy } void -gaim_gtkdialogs_alias_buddy(GaimBuddy *b) +gaim_gtkdialogs_alias_buddy(GaimBuddy *buddy) { - char *secondary = g_strdup_printf(_("Enter an alias for %s."), b->name); + gchar *secondary; + + g_return_if_fail(buddy != NULL); + + secondary = g_strdup_printf(_("Enter an alias for %s."), buddy->name); gaim_request_input(NULL, _("Alias Buddy"), NULL, - secondary, b->alias, FALSE, FALSE, NULL, + secondary, buddy->alias, FALSE, FALSE, NULL, _("Alias"), G_CALLBACK(gaim_gtkdialogs_alias_buddy_cb), - _("Cancel"), NULL, b); + _("Cancel"), NULL, buddy); g_free(secondary); } @@ -433,6 +644,8 @@ gaim_gtkdialogs_alias_chat_cb(GaimChat * void gaim_gtkdialogs_alias_chat(GaimChat *chat) { + g_return_if_fail(chat != NULL); + gaim_request_input(NULL, _("Alias Chat"), NULL, _("Enter an alias for this chat."), chat->alias, FALSE, FALSE, NULL, @@ -441,14 +654,11 @@ gaim_gtkdialogs_alias_chat(GaimChat *cha } static void -do_remove_contact(GaimContact *contact) +gaim_gtkdialogs_remove_contact_cb(GaimContact *contact) { GaimBlistNode *bnode, *cnode; GaimGroup *group; - if (!contact) - return; - cnode = (GaimBlistNode *)contact; group = (GaimGroup*)cnode->parent; for (bnode = cnode->child; bnode; bnode = bnode->next) { @@ -464,18 +674,18 @@ gaim_gtkdialogs_remove_contact(GaimConta { GaimBuddy *buddy = gaim_contact_get_priority_buddy(contact); - if (!buddy) - return; + g_return_if_fail(contact != NULL); + g_return_if_fail(buddy != NULL); if (((GaimBlistNode*)contact)->child == (GaimBlistNode*)buddy && !((GaimBlistNode*)buddy)->next) { gaim_gtkdialogs_remove_buddy(buddy); } else { - char *text = g_strdup_printf(_("You are about to remove the contact containing %s and %d other buddies from your buddy list. Do you want to continue?"), + gchar *text = g_strdup_printf(_("You are about to remove the contact containing %s and %d other buddies from your buddy list. Do you want to continue?"), buddy->name, contact->totalsize - 1); gaim_request_action(NULL, NULL, _("Remove Contact"), text, -1, contact, 2, - _("Remove Contact"), G_CALLBACK(do_remove_contact), + _("Remove Contact"), G_CALLBACK(gaim_gtkdialogs_remove_contact_cb), _("Cancel"), NULL); g_free(text); @@ -483,7 +693,7 @@ gaim_gtkdialogs_remove_contact(GaimConta } void -do_remove_group(GaimGroup *group) +gaim_gtkdialogs_remove_group_cb(GaimGroup *group) { GaimBlistNode *cnode, *bnode; @@ -527,33 +737,33 @@ do_remove_group(GaimGroup *group) void gaim_gtkdialogs_remove_group(GaimGroup *group) { - char *text = g_strdup_printf(_("You are about to remove the group %s and all its members from your buddy list. Do you want to continue?"), - group->name); + gchar *text; + + g_return_if_fail(group != NULL); + + text = g_strdup_printf(_("You are about to remove the group %s and all its members from your buddy list. Do you want to continue?"), + group->name); gaim_request_action(NULL, NULL, _("Remove Group"), text, -1, group, 2, - _("Remove Group"), G_CALLBACK(do_remove_group), + _("Remove Group"), G_CALLBACK(gaim_gtkdialogs_remove_group_cb), _("Cancel"), NULL); g_free(text); } static void -do_remove_buddy(GaimBuddy *buddy) +gaim_gtkdialogs_remove_buddy_cb(GaimBuddy *buddy) { GaimGroup *group; GaimConversation *conv; gchar *name; GaimAccount *account; - if (!buddy) - return; - group = gaim_find_buddys_group(buddy); name = g_strdup(buddy->name); /* b->name is a crasher after remove_buddy */ account = buddy->account; - gaim_debug(GAIM_DEBUG_INFO, "blist", - "Removing '%s' from buddy list.\n", buddy->name); + gaim_debug_info("blist", "Removing '%s' from buddy list.\n", buddy->name); /* XXX - Should remove from blist first... then call serv_remove_buddy()? */ serv_remove_buddy(buddy->account->gc, buddy, group); gaim_blist_remove_buddy(buddy); @@ -569,22 +779,22 @@ do_remove_buddy(GaimBuddy *buddy) void gaim_gtkdialogs_remove_buddy(GaimBuddy *buddy) { - char *text; + gchar *text; - if (!buddy) - return; + g_return_if_fail(buddy != NULL); - text = g_strdup_printf(_("You are about to remove %s from your buddy list. Do you want to continue?"), buddy->name); + text = g_strdup_printf(_("You are about to remove %s from your buddy list. Do you want to continue?"), + buddy->name); gaim_request_action(NULL, NULL, _("Remove Buddy"), text, -1, buddy, 2, - _("Remove Buddy"), G_CALLBACK(do_remove_buddy), + _("Remove Buddy"), G_CALLBACK(gaim_gtkdialogs_remove_buddy_cb), _("Cancel"), NULL); g_free(text); } static void -do_remove_chat(GaimChat *chat) +gaim_gtkdialogs_remove_chat_cb(GaimChat *chat) { gaim_blist_remove_chat(chat); } @@ -592,11 +802,13 @@ do_remove_chat(GaimChat *chat) void gaim_gtkdialogs_remove_chat(GaimChat *chat) { - char *name = gaim_chat_get_display_name(chat); - char *text = g_strdup_printf(_("You are about to remove the chat %s from your buddy list. Do you want to continue?"), name); + gchar *name = gaim_chat_get_display_name(chat); + gchar *text = g_strdup_printf(_("You are about to remove the chat %s from your buddy list. Do you want to continue?"), name); + + g_return_if_fail(chat != NULL); gaim_request_action(NULL, NULL, _("Remove Chat"), text, -1, chat, 2, - _("Remove Chat"), G_CALLBACK(do_remove_chat), + _("Remove Chat"), G_CALLBACK(gaim_gtkdialogs_remove_chat_cb), _("Cancel"), NULL); g_free(name); Index: gtkdialogs.h =================================================================== RCS file: /cvsroot/gaim/gaim/src/gtkdialogs.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -p -r1.6 -r1.7 --- gtkdialogs.h 9 Aug 2004 03:49:46 -0000 1.6 +++ gtkdialogs.h 15 Aug 2004 17:05:51 -0000 1.7 @@ -32,6 +32,7 @@ /* Functions in gtkdialogs.c (these should actually stay in this file) */ void gaim_gtkdialogs_destroy_all(); +void gaim_gtkdialogs_about(); void gaim_gtkdialogs_im(); void gaim_gtkdialogs_im_with_user(GaimAccount *, const char *); void gaim_gtkdialogs_info(); @@ -46,9 +47,6 @@ void gaim_gtkdialogs_remove_group(GaimGr void gaim_gtkdialogs_remove_chat(GaimChat *); void gaim_gtkdialogs_remove_contact(GaimContact *); -/* Functions in about.c */ -extern void show_about(GtkWidget *, void *); - /* Everything after this should probably be moved elsewhere */ /** Index: prpl.h =================================================================== RCS file: /cvsroot/gaim/gaim/src/prpl.h,v retrieving revision 1.174 retrieving revision 1.175 diff -u -d -p -r1.174 -r1.175 --- prpl.h 8 Aug 2004 05:37:58 -0000 1.174 +++ prpl.h 15 Aug 2004 17:05:51 -0000 1.175 @@ -252,7 +252,7 @@ struct _GaimPluginProtocolInfo void (*rem_permit)(GaimConnection *, const char *name); void (*rem_deny)(GaimConnection *, const char *name); void (*set_permit_deny)(GaimConnection *); - void (*warn)(GaimConnection *, const char *who, int anonymous); + void (*warn)(GaimConnection *, const char *who, gboolean anonymous); void (*join_chat)(GaimConnection *, GHashTable *components); void (*reject_chat)(GaimConnection *, GHashTable *components); void (*chat_invite)(GaimConnection *, int id, Index: server.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/server.c,v retrieving revision 1.436 retrieving revision 1.437 diff -u -d -p -r1.436 -r1.437 --- server.c 12 Aug 2004 00:26:28 -0000 1.436 +++ server.c 15 Aug 2004 17:05:51 -0000 1.437 @@ -670,7 +670,7 @@ void serv_set_idle(GaimConnection *g, in prpl_info->set_idle(g, time); } -void serv_warn(GaimConnection *g, const char *name, int anon) +void serv_warn(GaimConnection *g, const char *name, gboolean anonymous) { GaimPluginProtocolInfo *prpl_info = NULL; @@ -678,7 +678,7 @@ void serv_warn(GaimConnection *g, const prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(g->prpl); if (prpl_info && g_list_find(gaim_connections_get_all(), g) && prpl_info->warn) - prpl_info->warn(g, name, anon); + prpl_info->warn(g, name, anonymous); } void serv_join_chat(GaimConnection *g, GHashTable *data) Index: server.h =================================================================== RCS file: /cvsroot/gaim/gaim/src/server.h,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -p -r1.19 -r1.20 --- server.h 8 Aug 2004 14:24:42 -0000 1.19 +++ server.h 15 Aug 2004 17:05:51 -0000 1.20 @@ -63,7 +63,7 @@ void serv_add_deny(GaimConnection *, con void serv_rem_permit(GaimConnection *, const char *); void serv_rem_deny(GaimConnection *, const char *); void serv_set_permit_deny(GaimConnection *); -void serv_warn(GaimConnection *, const char *, int); +void serv_warn(GaimConnection *, const char *, gboolean); void serv_set_dir(GaimConnection *, const char *, const char *, const char *, const char *, const char *, const char *, const char *, int); --- about.c DELETED --- |