# HG changeset patch # User Mark Doliner # Date 1072558555 0 # Node ID 3e268e113bf13cf9a8e243e4f8e60de6d992da75 # Parent 14b8dc2f54088c2f6c3e19dc91d376ffd5ceb68a [gaim-migrate @ 8613] Tried to make the about window look nicer/follow the HIG more. Also a small patch from javabsp: This fixes my earlier patch. Sometimes things after hr disappears. This fixes that, and doesn't seem to introduce any issue. committer: Tailor Script diff -r 14b8dc2f5408 -r 3e268e113bf1 src/about.c --- a/src/about.c Sat Dec 27 19:39:06 2003 +0000 +++ b/src/about.c Sat Dec 27 20:55:55 2003 +0000 @@ -39,194 +39,194 @@ void show_about(GtkWidget *w, void *data) { + GtkWidget *hbox; GtkWidget *vbox; - GtkWidget *frame; - GtkWidget *fbox; - GtkWidget *hbox; - GtkWidget *button; - GtkWidget *text; - GtkWidget *sw; GtkWidget *logo; - char abouttitle[45]; - char *str; - - if (!about) { + GtkWidget *label; + GtkWidget *sw; + GtkWidget *text; + GtkWidget *bbox; + GtkWidget *button; + char *str, *labeltext; - GAIM_DIALOG(about); - gtk_window_set_default_size(GTK_WINDOW(about), 450, -1); - g_snprintf(abouttitle, sizeof(abouttitle), _("About Gaim v%s"), VERSION); - gtk_window_set_title(GTK_WINDOW(about), abouttitle); - gtk_window_set_role(GTK_WINDOW(about), "about"); - gtk_window_set_resizable(GTK_WINDOW(about), TRUE); - gtk_widget_realize(about); + if (about != NULL) + return; - vbox = gtk_vbox_new(FALSE, 5); - gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); - gtk_container_add(GTK_CONTAINER(about), vbox); + 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); + gtk_widget_realize(about); - frame = gtk_frame_new("Gaim v" VERSION); - gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); - - fbox = gtk_vbox_new(FALSE, 5); - gtk_container_set_border_width(GTK_CONTAINER(fbox), 5); - gtk_container_add(GTK_CONTAINER(frame), fbox); + hbox = gtk_hbox_new(FALSE, 12); + gtk_container_set_border_width(GTK_CONTAINER(hbox), 12); + gtk_container_add(GTK_CONTAINER(about), hbox); - logo = gtk_image_new_from_stock(GAIM_STOCK_LOGO, gtk_icon_size_from_name(GAIM_ICON_SIZE_LOGO)); - gtk_box_pack_start(GTK_BOX(fbox), logo, FALSE, FALSE, 0); + 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); - 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(sw), GTK_SHADOW_IN); - gtk_box_pack_start(GTK_BOX(fbox), sw, TRUE, TRUE, 0); - - text = gtk_imhtml_new(NULL, NULL); - gtk_container_add(GTK_CONTAINER(sw), text); - gtk_widget_set_size_request(sw, -1, 350); - gaim_setup_imhtml(text); + labeltext = g_strdup_printf(_("Gaim v%s"), 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); - gtk_imhtml_append_text(GTK_IMHTML(text), - _("Gaim is a modular Instant Messaging client capable of " - "using AIM, ICQ, Yahoo!, MSN, IRC, Jabber, Napster, " - "Zephyr, and Gadu-Gadu all at once. It is written using " - "Gtk+ and is licensed under the GPL.

"), GTK_IMHTML_NO_SCROLL); + 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); - gtk_imhtml_append_text(GTK_IMHTML(text), - "URL: " - GAIM_WEBSITE "

", GTK_IMHTML_NO_SCROLL); + text = gtk_imhtml_new(NULL, NULL); + gtk_container_add(GTK_CONTAINER(sw), text); + gaim_setup_imhtml(text); - gtk_imhtml_append_text(GTK_IMHTML(text), - _("IRC: #gaim on irc.freenode.net" - "

"), GTK_IMHTML_NO_SCROLL); + gtk_imhtml_append_text(GTK_IMHTML(text), + _("Gaim is a modular Instant Messaging client capable of " + "using AIM, ICQ, Yahoo!, MSN, IRC, Jabber, Napster, " + "Zephyr, and Gadu-Gadu all at once. It is written using " + "Gtk+ and is licensed under the GPL.

"), GTK_IMHTML_NO_SCROLL); + + gtk_imhtml_append_text(GTK_IMHTML(text), + "URL: " + GAIM_WEBSITE "

", GTK_IMHTML_NO_SCROLL); - /* Active Developers */ - str = g_strconcat( - "", _("Active Developers"), ":
" - " Rob Flynn (", _("maintainer"), ") " - "<rob@marko.net>
" - " Sean Egan (", _("lead developer"), ") " - "<" - "bj91704@binghamton.edu>
" - " Christian 'ChipX86' Hammond (", _("developer & webmaster"), ")
" - " Herman Bloggs (", _("win32 port"), ") " - "<" - "hermanator12002@yahoo.com>
" - " Nathan 'faceprint' Walp (", _("developer"), ")
" - " Mark 'KingAnt' Doliner (", _("developer"), ")
" - " Ethan 'Paco-Paco' Blanton (", _("developer"), ")
" - " Luke 'LSchiere' Schierer (", _("support"), ")
" - "
", NULL); - gtk_imhtml_append_text(GTK_IMHTML(text), str, GTK_IMHTML_NO_SCROLL); - g_free(str); + gtk_imhtml_append_text(GTK_IMHTML(text), + _("IRC: #gaim on irc.freenode.net" + "

"), GTK_IMHTML_NO_SCROLL); - /* Crazy Patch Writers */ - str = g_strconcat( - "", _("Crazy Patch Writers"), ":
" - " Benjamin Miller
" - " Decklin Foster
" - " Etan 'deryni' Reisner
" - " Robert 'Robot101' McQueen
" - " Tim 'marv' Ringenbach
" - " Kevin 'SimGuy' Stange
" - " Stu 'nosnilmot' Tomlinson
" - "
", NULL); - gtk_imhtml_append_text(GTK_IMHTML(text), str, GTK_IMHTML_NO_SCROLL); - g_free(str); + /* Active Developers */ + str = g_strconcat( + "", _("Active Developers"), ":
" + " Rob Flynn (", _("maintainer"), ") " + "<rob@marko.net>
" + " Sean Egan (", _("lead developer"), ") " + "<" + "bj91704@binghamton.edu>
" + " Christian 'ChipX86' Hammond (", _("developer & webmaster"), ")
" + " Herman Bloggs (", _("win32 port"), ") " + "<" + "hermanator12002@yahoo.com>
" + " Nathan 'faceprint' Walp (", _("developer"), ")
" + " Mark 'KingAnt' Doliner (", _("developer"), ")
" + " Ethan 'Paco-Paco' Blanton (", _("developer"), ")
" + " Luke 'LSchiere' Schierer (", _("support"), ")
" + "
", NULL); + gtk_imhtml_append_text(GTK_IMHTML(text), str, GTK_IMHTML_NO_SCROLL); + g_free(str); - /* Retired Developers */ - str = g_strconcat( - "", _("Retired Developers"), ":
" - " Adam Fritzler (", _("former libfaim maintainer"), ")
" - " Eric Warmenhoven (", _("former lead developer"), ") " - "<" - "warmenhoven@yahoo.com>
" - " Jim Duchek (", _("former maintainer"), ")
" - " Jim Seymour (", _("former Jabber developer"), ")
" - " Mark Spencer (", _("original author"), ") " - "<" - "markster@marko.net>
" - " Syd Logan (", _("hacker and designated driver [lazy bum]"), - ")
" - "
", NULL); - gtk_imhtml_append_text(GTK_IMHTML(text), str, GTK_IMHTML_NO_SCROLL); - g_free(str); + /* Crazy Patch Writers */ + str = g_strconcat( + "", _("Crazy Patch Writers"), ":
" + " Benjamin Miller
" + " Decklin Foster
" + " Etan 'deryni' Reisner
" + " Robert 'Robot101' McQueen
" + " Tim 'marv' Ringenbach
" + " Kevin 'SimGuy' Stange
" + " Stu 'nosnilmot' Tomlinson
" + "
", NULL); + gtk_imhtml_append_text(GTK_IMHTML(text), str, GTK_IMHTML_NO_SCROLL); + g_free(str); + + /* Retired Developers */ + str = g_strconcat( + "", _("Retired Developers"), ":
" + " Adam Fritzler (", _("former libfaim maintainer"), ")
" + " Eric Warmenhoven (", _("former lead developer"), ") " + "<" + "warmenhoven@yahoo.com>
" + " Jim Duchek (", _("former maintainer"), ")
" + " Jim Seymour (", _("former Jabber developer"), ")
" + " Mark Spencer (", _("original author"), ") " + "<" + "markster@marko.net>
" + " Syd Logan (", _("hacker and designated driver [lazy bum]"), + ")
" + "
", NULL); + gtk_imhtml_append_text(GTK_IMHTML(text), str, GTK_IMHTML_NO_SCROLL); + g_free(str); - /* Current Translators */ - str = g_strconcat( - "", _("Current Translators"), ":
" - " ", _("Catalan"), " (ca) - Robert Millan <zeratul2@wanadoo.es>
" - " ", _("Czech"), " (cs) - Miloslav Trmac <mitr@volny.cz>
" - " ", _("Danish"), " (da) - Morten Brix Pedersen <morten@wtf.dk>
" - " ", _("British English"), "(en_GB) - Luke Ross <lukeross@sys3175.co.uk>
" - " ", _("German"), " (de) - Björn Voigt <bjoern@cs.tu-berlin.de>
" - " ", _("Spanish"), " (es) - Javier Fernández-Sanguino Peña <jfs@debian.org>
" - " ", _("Finnish"), " (fi) - Arto Alakulju <arto@alakulju.net>
" - " ", _("French"), " (fr) - Éric Boumaour <zongo_fr@users.sourceforge.net>
" - " ", _("Hindi"), " (hi) - Ravishankar Shrivastava <raviratlami@yahoo.com>
" - " ", _("Hungarian"), " (hu) - Zoltan Sutto <suttozoltan@chello.hu>
" - " ", _("Italian"), " (it) - Claudio Satriano <satriano@na.infn.it>
" - " ", _("Korean"), " (ko) - Kyung-uk Son <vvs740@chol.com>
" - " ", _("Dutch; Flemish"), " (nl) - Vincent van Adrighem <V.vanAdrighem@dirck.mine.nu>
" - " ", _("Norwegian"), " (no) - Petter Johan Olsen
" - " ", _("Polish"), " (pl) - Krzysztof <krzysztof@foltman.com>, Emil <emil5@go2.pl>
" - " ", _("Portuguese"), " (pt) - Duarte Henriques <duarte_henriques@myrealbox.com>
" - " ", _("Portuguese-Brazil"), " (pt_BR) - Maurício de Lemos Rodrigues Collares Neto <mauricioc@myrealbox.com>
" - " ", _("Romanian"), " (ro) - Mişu Moldovan <dumol@go.ro>
" - " ", _("Russian"), "(ru) = Alexandre Prokoudine <avp@altlinux.ru>
" - " ", _("Serbian"), " (sr) - Danilo Šegan <dsegan@gmx.net>, Aleksandar Urosevic <urke@users.sourceforge.net>
" - " ", _("Swedish"), " (sv) - Tore Lundqvist <tlt@mima.x.se>
" - " ", _("Vietnamese"), "(vi) - T.M.Thanh, ", _("Gnome Vi Team"), ". <gnomevi-list@lists.sf.net>
" - " ", _("Simplified Chinese"), " (zh_CN) - Funda Wang <fundawang@linux.net.cn>
" - " ", _("Traditional Chinese"), " (zh_TW) - Ambrose C. Li <acli@ada.dhs.org>, Paladin R. Liu <paladin@ms1.hinet.net>
" - "
", NULL); - gtk_imhtml_append_text(GTK_IMHTML(text), str, GTK_IMHTML_NO_SCROLL); - g_free(str); + /* Current Translators */ + str = g_strconcat( + "", _("Current Translators"), ":
" + " ", _("Catalan"), " (ca) - Robert Millan <zeratul2@wanadoo.es>
" + " ", _("Czech"), " (cs) - Miloslav Trmac <mitr@volny.cz>
" + " ", _("Danish"), " (da) - Morten Brix Pedersen <morten@wtf.dk>
" + " ", _("British English"), "(en_GB) - Luke Ross <lukeross@sys3175.co.uk>
" + " ", _("German"), " (de) - Björn Voigt <bjoern@cs.tu-berlin.de>
" + " ", _("Spanish"), " (es) - Javier Fernández-Sanguino Peña <jfs@debian.org>
" + " ", _("Finnish"), " (fi) - Arto Alakulju <arto@alakulju.net>
" + " ", _("French"), " (fr) - Éric Boumaour <zongo_fr@users.sourceforge.net>
" + " ", _("Hindi"), " (hi) - Ravishankar Shrivastava <raviratlami@yahoo.com>
" + " ", _("Hungarian"), " (hu) - Zoltan Sutto <suttozoltan@chello.hu>
" + " ", _("Italian"), " (it) - Claudio Satriano <satriano@na.infn.it>
" + " ", _("Korean"), " (ko) - Kyung-uk Son <vvs740@chol.com>
" + " ", _("Dutch; Flemish"), " (nl) - Vincent van Adrighem <V.vanAdrighem@dirck.mine.nu>
" + " ", _("Norwegian"), " (no) - Petter Johan Olsen
" + " ", _("Polish"), " (pl) - Krzysztof <krzysztof@foltman.com>, Emil <emil5@go2.pl>
" + " ", _("Portuguese"), " (pt) - Duarte Henriques <duarte_henriques@myrealbox.com>
" + " ", _("Portuguese-Brazil"), " (pt_BR) - Maurício de Lemos Rodrigues Collares Neto <mauricioc@myrealbox.com>
" + " ", _("Romanian"), " (ro) - Mişu Moldovan <dumol@go.ro>
" + " ", _("Russian"), "(ru) = Alexandre Prokoudine <avp@altlinux.ru>
" + " ", _("Serbian"), " (sr) - Danilo Šegan <dsegan@gmx.net>, Aleksandar Urosevic <urke@users.sourceforge.net>
" + " ", _("Swedish"), " (sv) - Tore Lundqvist <tlt@mima.x.se>
" + " ", _("Vietnamese"), "(vi) - T.M.Thanh, ", _("Gnome Vi Team"), ". <gnomevi-list@lists.sf.net>
" + " ", _("Simplified Chinese"), " (zh_CN) - Funda Wang <fundawang@linux.net.cn>
" + " ", _("Traditional Chinese"), " (zh_TW) - Ambrose C. Li <acli@ada.dhs.org>, Paladin R. Liu <paladin@ms1.hinet.net>
" + "
", NULL); + gtk_imhtml_append_text(GTK_IMHTML(text), str, GTK_IMHTML_NO_SCROLL); + g_free(str); - /* Past Translators */ - str = g_strconcat( - "", _("Past Translators"), ":
" - " ", _("Amharic"), " (am) - Daniel Yacob
" - " ", _("Bulgarian"), " (bg) - Hristo Todorov
" - " ", _("Catalan"), " (ca) - JM Pérez Cáncer
" - " ", _("Czech"), " (cs) - Honza Král
" - " ", _("German"), " (de) - Daniel Seifert, Karsten Weiss
" - " ", _("Spanish"), " (es) - Amaya Rodrigo, Alejandro G Villar, Nicolás Lichtmaier, JM Pérez Cáncer
" - " ", _("Finnish"), " (fi) - Tero Kuusela
" - " ", _("French"), " (fr) - sebfrance, Stéphane Pontier, Stéphane Wirtel, Loïc Jeannin
" - " ", _("Hebrew"), " (he) - Pavel Bibergal
" - " ", _("Italian"), " (it) - Salvatore di Maggio
" - " ", _("Japanese"), " (ja) - Ryosuke Kutsuna, Taku Yasui, Junichi Uekawa
" - " ", _("Korean"), " (ko) - Sang-hyun S, A Ho-seok Lee
" - " ", _("Polish"), " (pl) - Przemysław Sułek
" - " ", _("Russian"), " (ru) - Sergey Volozhanin
" - " ", _("Slovak"), " (sk) - Daniel Režný
" - " ", _("Swedish"), " (sv) - Christian Rose
" - " ", _("Chinese"), " (zh_CN, zh_TW) - Hashao, Rocky S. Lee
" - "
", NULL); - gtk_imhtml_append_text(GTK_IMHTML(text), str, GTK_IMHTML_NO_SCROLL); - g_free(str); + /* Past Translators */ + str = g_strconcat( + "", _("Past Translators"), ":
" + " ", _("Amharic"), " (am) - Daniel Yacob
" + " ", _("Bulgarian"), " (bg) - Hristo Todorov
" + " ", _("Catalan"), " (ca) - JM Pérez Cáncer
" + " ", _("Czech"), " (cs) - Honza Král
" + " ", _("German"), " (de) - Daniel Seifert, Karsten Weiss
" + " ", _("Spanish"), " (es) - Amaya Rodrigo, Alejandro G Villar, Nicolás Lichtmaier, JM Pérez Cáncer
" + " ", _("Finnish"), " (fi) - Tero Kuusela
" + " ", _("French"), " (fr) - sebfrance, Stéphane Pontier, Stéphane Wirtel, Loïc Jeannin
" + " ", _("Hebrew"), " (he) - Pavel Bibergal
" + " ", _("Italian"), " (it) - Salvatore di Maggio
" + " ", _("Japanese"), " (ja) - Ryosuke Kutsuna, Taku Yasui, Junichi Uekawa
" + " ", _("Korean"), " (ko) - Sang-hyun S, A Ho-seok Lee
" + " ", _("Polish"), " (pl) - Przemysław Sułek
" + " ", _("Russian"), " (ru) - Sergey Volozhanin
" + " ", _("Slovak"), " (sk) - Daniel Režný
" + " ", _("Swedish"), " (sv) - Christian Rose
" + " ", _("Chinese"), " (zh_CN, zh_TW) - Hashao, Rocky S. Lee
" + "
", 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); - - /* Close Button */ + gtk_adjustment_set_value(gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(sw)), 0); - hbox = gtk_hbox_new(FALSE, 5); - gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); - gtk_widget_show(hbox); - - button = gaim_pixbuf_button_from_stock(_("Close"), GTK_STOCK_CLOSE, GAIM_BUTTON_HORIZONTAL); - gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); + /* 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); - 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)); + button = gtk_button_new_from_stock(GTK_STOCK_CLOSE); + gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); - /* this makes the sizes not work. */ - /* GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); */ - /* gtk_widget_grab_default(button); */ + 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); diff -r 14b8dc2f5408 -r 3e268e113bf1 src/dialogs.c --- a/src/dialogs.c Sat Dec 27 19:39:06 2003 +0000 +++ b/src/dialogs.c Sat Dec 27 20:55:55 2003 +0000 @@ -1140,9 +1140,8 @@ g_snprintf(am->message, sizeof(am->message), "%s", away_message); g_free(away_message); - if (!ca->mess) { + if (!ca->mess) away_messages = g_slist_insert_sorted(away_messages, am, sort_awaymsg_list); - } do_away_menu(NULL); gaim_status_sync(); diff -r 14b8dc2f5408 -r 3e268e113bf1 src/gaimrc.c --- a/src/gaimrc.c Sat Dec 27 19:39:06 2003 +0000 +++ b/src/gaimrc.c Sat Dec 27 20:55:55 2003 +0000 @@ -1561,10 +1561,10 @@ } -/* This function is called by g_slist_insert_sorted to compare the item +/* + * This function is called by g_slist_insert_sorted to compare the item * being compared to the rest of the items on the list. */ - gint sort_awaymsg_list(gconstpointer a, gconstpointer b) { struct away_message *msg_a; diff -r 14b8dc2f5408 -r 3e268e113bf1 src/gtkimhtml.c --- a/src/gtkimhtml.c Sat Dec 27 19:39:06 2003 +0000 +++ b/src/gtkimhtml.c Sat Dec 27 20:55:55 2003 +0000 @@ -1335,8 +1335,9 @@ scalable->add_to(scalable, imhtml, &iter); scalable->scale(scalable, rect.width, rect.height); imhtml->scalables = g_list_append(imhtml->scalables, scalable); - ws[0] = '\n'; - ws[1] = '\0'; + wpos = 0; + ws[wpos++] = '\n'; + break; case 27: /* /FONT */ if (fonts) { diff -r 14b8dc2f5408 -r 3e268e113bf1 src/ui.h --- a/src/ui.h Sat Dec 27 19:39:06 2003 +0000 +++ b/src/ui.h Sat Dec 27 20:55:55 2003 +0000 @@ -51,6 +51,7 @@ /* XXX CUI: away messages aren't really anything more than char* but we need two char*'s * for the UI so that people can name their away messages when they save them. So these * are really a UI function and struct away_message should be removed from the core. */ +/* WTF? How does having a title for something mean that it is part of the UI? */ struct away_message { char name[80]; char message[2048];