summaryrefslogtreecommitdiff
path: root/src/about.c
diff options
context:
space:
mode:
authorLucas Rocha <lucasr@gnome.org>2005-12-18 03:19:40 +0000
committerLucas Almeida Rocha <lucasr@src.gnome.org>2005-12-18 03:19:40 +0000
commit7486a38445e16fc17505c5f3e6afd7f8f8e87aeb (patch)
treed51d4450c8d2a3f7e01420aa99474f5669453a9b /src/about.c
parentf576e1bcc8ffa1cb3328895fdfa3c6ed55250b75 (diff)
use GtkAboutDialog instead of custom dialog (Fixes bug #309405). remove
2005-12-18 Lucas Rocha <lucasr@gnome.org> * src/about.c: use GtkAboutDialog instead of custom dialog (Fixes bug #309405). * src/zenity.glade: remove zenity_about_dialog. * configure.in: zenity now depends on GTK+ >= 2.6.x because now it uses GtkAboutDialog.
Diffstat (limited to 'src/about.c')
-rw-r--r--src/about.c379
1 files changed, 47 insertions, 332 deletions
diff --git a/src/about.c b/src/about.c
index 0757823..2fe95aa 100644
--- a/src/about.c
+++ b/src/about.c
@@ -30,7 +30,6 @@
#include <string.h>
#include <gdk/gdkkeysyms.h>
#include <libgnomecanvas/libgnomecanvas.h>
-#include <glade/glade.h>
#define GTK_RESPONSE_CREDITS 0
#define ZENITY_HELP_PATH ZENITY_DATADIR "/help/"
@@ -40,165 +39,27 @@
#define ZENITY_CANVAS_Y 280.0
static GtkWidget *dialog;
-static GtkWidget *cred_dialog;
+static void zenity_about_display_help (GtkWidget *widget, gpointer data);
static void zenity_about_dialog_response (GtkWidget *widget, int response, gpointer data);
/* Sync with the people in the THANKS file */
-static const gchar *const author_credits[] = {
- "Authors",
- "=======",
+static const gchar *const authors[] = {
"Glynn Foster <glynn foster sun com>",
+ "Lucas Rocha <lucasr gnome org>",
"Mike Newman <mikegtn gnome org>",
- "",
- "Patches from the following people",
- "=================================",
- "Darren Adams <darrenadams dsl pipex com>"
- "Peter Astrand <astrand lysator liu se>",
- "Jonathan Blandford <jrb redhat com>",
- "Paul Bolle <pebolle tiscali nl>",
- "Paolo Borelli <pborelli katamail com>",
- "Leonardo Boshell <p kapcoweb com>",
- "Ross Burton <ross burtonini com>",
- "Damien Carbery <damien carbery sun com>",
- "Anders Carlsson <andersca codefactory se>",
- "Ed Catmur <ed catmur co uk>",
- "Nicholas Curran <quasar austar net au>",
- "John Fleck <jfleck inkstain net>",
- "Sebastian Heinlein <glatzor pimpzkru de>",
- "James Henstridge <james daa com au>",
- "Chris Lahey <clahey ximian com>",
- "Mihai T Lazarescu <mihai email it>",
- "Sebastian Kapfer <sebastian_kapfer web de>",
- "Tomasz Koczko <kloczek pld org pl>",
- "Jordi Mallach <jordi sindominio net>",
- "Kjartan Maraas <kmaraas gnome org>",
- "Breda McColgan <breda mccolgan sun com>",
- "Baptiste Mille-Mathias <bmm80 free fr>",
- "Buhan Milne <bgmilne linux-mandrake com>",
- "Christian Monneckes <c-w-m gmx de>",
- "Ivan Noris <vix vazka sk>",
- "Havoc Pennington <hp redhat com>",
- "Jan Arne Petersen <jpetersen uni-bonn de>",
- "Kevin C Krinke <kckrinke opendoorsoftware com>",
- "Kristian Rietveld <kris gtk org>",
- "Lucas Rocha <lucasr im ufba br>",
- "Christian Rose <menthos menthos com>",
- "Jakub Steiner <jimmac ximian com>",
- "Luke Suchocki <gnome lukiepoo com>",
- "Daniel d'Surreal <dagmar speakeasy net>",
- "Hidetoshi Tajima <hidetoshi tajima sun com>",
- "Tom Tromey <tromey redhat com>",
- "Yann <bloch iie cnam fr>",
- "Norman Rasmussen <normanr gmail com>",
- "Benoît Dejean <tazforever dlfp org>",
- "",
- "And all the translators that rock my world",
- "==========================================",
- "Vincent van Adrighem <v vanadrighem dirck mine nu>",
- "Taneem Ahmed <taneem bengalinux org>",
- "Takeshi Aihana <aihana gnome gr jp>",
- "Amanpreet Singh Alam <amanlinux netscape net>",
- "Metin Amiroff <metin karegen com>",
- "Sanlig Badral <badral openmn org>",
- "John C Barstow <jbowtie amathaine com>",
- "Aygimantas Beruka <uid0 tuxfamily org>",
- "Alberto Fernandez Benito <afernn euskalnet net>",
- "Stefano Canepa <sc linux it>",
- "Young-Ho Cha <ganadist mizi com>",
- "Abel Cheung <maddog linux org hk>",
- "Zbigniew Chyla <cyba gnome pl>",
- "Mohammad Damt <mdamt bisnisweb com>",
- "Fatih Demir <kabalak gtranslator org>",
- "Laurent Dhima <laurenti alblinux net>",
- "Paul Duffy <dubhthach frink nuigalway ie>",
- "Laszlo Dvornik <dvornik gnome hu>",
- "Maxim Dziumanenko <mvd mylinux com ua>",
- "Francisco Javier Fernandez <serrador arrakis es>",
- "Artur Flinta <aflinta cvs gnome org>",
- "Alessio Frusciante <algol firenze linux it>",
- "Evandro Fernandes Giovanini <evandrofg ig com br>",
- "Pablo Gonzalo del Campo <pablodc bigfoot com>",
- "Dhurba Gnawali <dhurbagnawali hotmail com>",
- "Sammi Gunnarsson <sammi techattack nu>",
- "Martin Willemoes Hansen <mwh sysrq dk>",
- "Dafydd Harries <daf parnassus ath cx>",
- "Raphael Higino <raphaelh cvs gnome org>",
- "Wang Jian <lark linux net cn>",
- "Guntupalli Karunakar <karunakar freedomink org>",
- "Tomas Kuliavas <tokul users sourceforge net>",
- "Priit Laes <amd tt ee>",
- "Iaki Larraaga <dooteo euskalgnu org>",
- "Ole Laursen <olau hardworking dk>",
- "Toivo Leedjrv <toivo linux ee>",
- "David Lodge <dave cirt net>",
- "Duarte Loreto <happyguy_pt hotmail com>",
- "Johanna Makkonen <johanna makkonen iki fi>",
- "Jordi Mallach <jordi sindominio net>",
- "Kjartan Maraas <kmaraas gnome org>",
- "Jordi Mas <jmas softcatala org>",
- "Kamagasako Masatoshi <emerald gnome gr jp>",
- "Dmitry G Mastrukov <dmitry taurussoft org>",
- "Arafat Medini <lumina silverpen de>",
- "Christophe Merlet <redfox redfoxcenter org>",
- "Mike Newman <mikegtn gnome org>",
- "Ahmad Riza H Nst <rizahnst eriagempita co id>",
- "Alexandre Folle de Menezes <afmenez terra com br>",
- "Christian Neumair <chris gnome-de org>",
- "Metin Omirov <metin karegen com>",
- "Gareth Owen <gowen72 yahoo com>",
- "Kostas Papadimas <pkst gmx net>",
- "Ankit Patel <ankit redhat com>",
- "Sami Pesonen <sampeson iki fi>",
- "Roozbeh Pournader <roozbeh sharif edu>",
- "Jarkko Ranta <jjranta cc joensuu fi>",
- "Rostislav Raykov <zbrox dir bg>",
- "Hendrik Richter <hendrik gnome de org>",
- "Christian Rose <menthos menthos com>",
- "Changwoo Ryu <cwryu debian org>",
- "Pablo Saratxaga <pablo mandrakesoft com>",
- "Robert Sedak <robert sedak sk htnet hr>",
- "Paisa Seeluangsawat <paisa users sf net>",
- "Danilo Segan <dsegan gmx net>",
- "Alexander Shopov <ash contact bg>",
- "Aasmund Skjaveland <aasmunds fys uio no>",
- "Yuriy Syrota <rasta renome rovno ua>",
- "Marcel Telka <marcel telka sk>",
- "Andras Timar <timar gnome hu>",
- "Miloslav Trmac <mitr volny cz>",
- "Mugurel Tudor <mugurelu go ro>",
- "Daniel Yacob <locales geez org>",
- "Funda Wang <fundawang linux net cn>",
- "Alexander Winston <alexander winston comcast net>",
- "Theppitak Karoonboonyanan <thep linux thai net>",
- "Martin Willemoes Hansen <mwh sysrq dk>",
- "Ignacio Casal Quinteiro <nacho.resa gmail com>",
- "Pawan Chitrakar <pawan nplinux org>",
- "Rajesh Ranjan <rajeshkajha yahoo org>",
- "Vladimir Petkov <vpetkov i-space org>",
- "Abduxukur Abdurixit <abduxukur.abdurixit t-systems ch>",
- "Adi Attar <aattar cvs gnome org>",
- "Steve Murphy <murf e-tools com>",
- "Josep Puigdemont <josep imatge-sintetica com>",
- "Adam Weinberger <adamw gnome org>",
- "Ivar Smolin <okul linux ee>",
- "Jens Seidel <jensseidel users sf net>",
- "Benoît Dejean <tazforever dlfp org>",
- "Yair Hershkovitz <yairhr gmail com>",
- "Clytie Siddall <clytie riverland net au>",
- "Ilkka Tuohela <hile iki fi>",
- "Chao-Hsiung Liao <j_h_liau yahoo com tw>",
- "Žygimantas Beručka <zygis gnome org>",
- "Gabor Kelemen <kelemeng gnome hu>",
- "Telsa Gwynne <hobbit aloss ukuu org uk>",
- "Slobodan D. Sredojevic <ssl uns ns ac yu>",
- "Baris Cicek <baris teamforce name tr>",
- "Runa Bhattacharjee <runa bengalinux org>",
- "Erdal Ronahi <erdal.ronahi gmail com>",
NULL
};
-static gchar *translator_credits;
+static const char *documenters[] = {
+ "Glynn Foster <glynn.foster@sun.com>",
+ "Lucas Rocha <lucasr@gnome.org>",
+ "Java Desktop System Documentation Team",
+ "GNOME Documentation Project",
+ NULL
+};
+
+static gchar *translators;
static gint
zenity_move_clothes_event (GnomeCanvasItem *item,
@@ -381,214 +242,68 @@ zenity_zen_wisdom (GtkDialog *dialog, GdkEventKey *event, gpointer user_data)
void
zenity_about (ZenityData *data)
{
- GladeXML *glade_dialog = NULL;
- GdkPixbuf *pixbuf;
- GtkWidget *label;
- GtkWidget *image;
- gchar *text;
+ GdkPixbuf *logo;
+ GtkWidget *help_button;
- glade_dialog = zenity_util_load_glade_file ("zenity_about_dialog");
+ translators = _("translator-credits");
+ logo = gdk_pixbuf_new_from_file (ZENITY_IMAGE_FULLPATH ("zenity.png"), NULL);
- if (glade_dialog == NULL) {
- data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
- return;
- }
-
- /* Translators: This is a special message that shouldn't be translated
- literally. It is used in the about box to give credits to
- the translators.
- Thus, you should translate it to your name and email address.
- You can also include other translators who have contributed to
- this translation; in that case, please write them on separate
- lines seperated by newlines (\n). */
+ dialog = gtk_about_dialog_new ();
- translator_credits = _("translator-credits");
+ g_object_set (G_OBJECT (dialog),
+ "name", "Zenity",
+ "version", VERSION,
+ "copyright", "Copyright \xc2\xa9 2003 Sun Microsystems",
+ "comments", _("Display dialog boxes from shell scripts"),
+ "authors", authors,
+ "documenters", documenters,
+ "translator-credits", translators,
+ "logo", logo,
+ NULL);
- glade_xml_signal_autoconnect (glade_dialog);
+ zenity_util_set_window_icon (dialog, NULL, ZENITY_IMAGE_FULLPATH ("zenity.png"));
- dialog = glade_xml_get_widget (glade_dialog, "zenity_about_dialog");
+ help_button = gtk_button_new_from_stock (GTK_STOCK_HELP);
+
+ g_signal_connect (G_OBJECT (help_button), "clicked",
+ G_CALLBACK (zenity_about_display_help), data);
+
+ gtk_widget_show (help_button);
+
+ gtk_box_pack_end (GTK_BOX (GTK_DIALOG (dialog)->action_area),
+ help_button, FALSE, TRUE, 0);
+ gtk_button_box_set_child_secondary (GTK_BUTTON_BOX (GTK_DIALOG (dialog)->action_area),
+ help_button, TRUE);
g_signal_connect (G_OBJECT (dialog), "response",
G_CALLBACK (zenity_about_dialog_response), data);
g_signal_connect (G_OBJECT (dialog), "key_press_event",
- G_CALLBACK (zenity_zen_wisdom), glade_dialog);
-
- zenity_util_set_window_icon (dialog, NULL, ZENITY_IMAGE_FULLPATH ("zenity.png"));
-
- image = glade_xml_get_widget (glade_dialog, "zenity_about_image");
-
- pixbuf = gdk_pixbuf_new_from_file (ZENITY_IMAGE_FULLPATH ("zenity.png"), NULL);
-
- if (pixbuf != NULL) {
- gtk_image_set_from_pixbuf (GTK_IMAGE (image), pixbuf);
- g_object_unref (pixbuf);
- }
-
- label = glade_xml_get_widget (glade_dialog, "zenity_about_version");
- gtk_label_set_selectable (GTK_LABEL (label), FALSE);
- text = g_strdup_printf ("<span size=\"xx-large\" weight=\"bold\">Zenity %s</span>", VERSION);
- gtk_label_set_markup (GTK_LABEL (label), text);
- g_free (text);
-
- label = glade_xml_get_widget (glade_dialog, "zenity_about_description");
- gtk_label_set_selectable (GTK_LABEL (label), FALSE);
- gtk_label_set_text (GTK_LABEL (label), _("Display dialog boxes from shell scripts"));
-
- label = glade_xml_get_widget (glade_dialog, "zenity_about_copyright");
- gtk_label_set_selectable (GTK_LABEL (label), FALSE);
- text = g_strdup_printf ("<span size=\"small\">%s</span>", _("(C) 2003 Sun Microsystems"));
- gtk_label_set_markup (GTK_LABEL (label), text);
- g_free (text);
-
- if (glade_dialog)
- g_object_unref (glade_dialog);
+ G_CALLBACK (zenity_zen_wisdom), NULL);
zenity_util_show_dialog (dialog);
gtk_main ();
}
-static GtkWidget *
-zenity_about_create_label (void)
-{
- GtkWidget *label;
-
- label = gtk_label_new ("");
- gtk_label_set_selectable (GTK_LABEL (label), TRUE);
- gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.0);
- gtk_misc_set_padding (GTK_MISC (label), 8, 8);
-
- gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
-
- return label;
-}
-
-static void
-zenity_about_update_author_label (GtkWidget *label)
-{
- GString *string;
- gchar *tmp;
- gint i = 0;
-
- gtk_widget_show (label);
-
- string = g_string_new ("");
-
- for (i = 0; author_credits[i] != NULL; i++) {
- tmp = g_markup_escape_text (author_credits[i], -1);
- g_string_append (string, tmp);
-
- if (author_credits[i+1] != NULL)
- g_string_append (string, "\n");
-
- g_free (tmp);
- }
- gtk_label_set_markup (GTK_LABEL (label), string->str);
- g_string_free (string, TRUE);
-}
-
-static void
-zenity_about_update_translator_label (GtkWidget *label)
-{
- GString *string;
- gchar *tmp;
-
- if (strcmp (translator_credits, "translator-credits") == 0) {
- gtk_widget_hide (label);
- return;
- } else {
- gtk_widget_show (label);
- }
-
- string = g_string_new ("");
-
- tmp = g_markup_escape_text (translator_credits, -1);
- g_string_append (string, tmp);
- g_free (tmp);
-
- gtk_label_set_markup (GTK_LABEL (label), string->str);
- g_string_free (string, TRUE);
-}
-
-static void
-zenity_about_display_credits_dialog (void)
-{
- GtkWidget *credits_dialog;
- GtkWidget *label, *notebook, *sw;
-
- if (cred_dialog != NULL) {
- gtk_window_present (GTK_WINDOW (cred_dialog));
- return;
- }
-
- credits_dialog = gtk_dialog_new_with_buttons (_("Credits"),
- GTK_WINDOW (dialog), GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_STOCK_OK, GTK_RESPONSE_OK, NULL);
-
- g_signal_connect (G_OBJECT (credits_dialog), "response",
- G_CALLBACK (gtk_widget_destroy), credits_dialog);
- g_signal_connect (G_OBJECT (credits_dialog), "destroy",
- G_CALLBACK (gtk_widget_destroyed), &cred_dialog);
-
- cred_dialog = credits_dialog;
-
- gtk_window_set_default_size (GTK_WINDOW (credits_dialog), 360, 260);
- gtk_dialog_set_default_response (GTK_DIALOG (credits_dialog), GTK_RESPONSE_OK);
-
- notebook = gtk_notebook_new ();
- gtk_container_set_border_width (GTK_CONTAINER (notebook), 8);
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (credits_dialog)->vbox), notebook, TRUE, TRUE, 0);
-
- if (author_credits != NULL) {
- label = zenity_about_create_label ();
- sw = gtk_scrolled_window_new (NULL, NULL);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
- GTK_POLICY_AUTOMATIC,
- GTK_POLICY_AUTOMATIC);
- gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (sw), label);
- gtk_viewport_set_shadow_type (GTK_VIEWPORT (GTK_BIN (sw)->child), GTK_SHADOW_NONE);
- gtk_notebook_append_page (GTK_NOTEBOOK (notebook), sw,
- gtk_label_new (_("Written by")));
- zenity_about_update_author_label (label);
- }
-
- if (translator_credits != NULL && strcmp (translator_credits, "translator-credits") != 0) {
- label = zenity_about_create_label ();
- sw = gtk_scrolled_window_new (NULL, NULL);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
- GTK_POLICY_AUTOMATIC,
- GTK_POLICY_AUTOMATIC);
- gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (sw), label);
- gtk_viewport_set_shadow_type (GTK_VIEWPORT (GTK_BIN (sw)->child), GTK_SHADOW_NONE);
- gtk_notebook_append_page (GTK_NOTEBOOK (notebook), sw,
- gtk_label_new (_("Translated by")));
- zenity_about_update_translator_label (label);
- }
-
- gtk_widget_show_all (credits_dialog);
-}
-
static void
zenity_about_dialog_response (GtkWidget *widget, int response, gpointer data)
{
ZenityData *zen_data = data;
switch (response) {
- case GTK_RESPONSE_OK:
+ case GTK_RESPONSE_CLOSE:
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK);
gtk_main_quit ();
break;
- case GTK_RESPONSE_HELP:
- zenity_util_show_help (NULL);
- break;
-
- case GTK_RESPONSE_CREDITS:
- zenity_about_display_credits_dialog ();
- break;
-
default:
/* Esc dialog */
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
break;
}
}
+
+static void
+zenity_about_display_help (GtkWidget *widget, gpointer data)
+{
+ zenity_util_show_help (NULL);
+}