diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile.am | 1 | ||||
-rw-r--r-- | src/about.c | 104 | ||||
-rw-r--r-- | src/main.c | 7 | ||||
-rw-r--r-- | src/zenity.glade | 165 |
4 files changed, 275 insertions, 2 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index 11e0816c..b96eeee2 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -10,6 +10,7 @@ zenity_SOURCES = \ text.c \ progress.c \ tree.c \ + about.c \ util.h \ util.c diff --git a/src/about.c b/src/about.c new file mode 100644 index 00000000..43b023c6 --- /dev/null +++ b/src/about.c @@ -0,0 +1,104 @@ +/* + * about.c + * + * Copyright (C) 2002 Sun Microsystems, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + * Authors: Glynn Foster <glynn.foster@sun.com> + */ + +#include <glade/glade.h> +#include "config.h" +#include "zenity.h" +#include "util.h" + +#define GTK_RESPONSE_CREDITS 1 + +static void zenity_about_dialog_response (GtkWidget *widget, int response, gpointer data); + +void +zenity_about (ZenityData *data) +{ + GladeXML *glade_dialog = NULL; + GtkWidget *dialog; + GtkWidget *label; + gchar *text; + + glade_dialog = zenity_util_load_glade_file ("zenity_about_dialog"); + + if (glade_dialog == NULL) { + data->exit_code = -1; + return; + } + + glade_xml_signal_autoconnect (glade_dialog); + + dialog = glade_xml_get_widget (glade_dialog, "zenity_about_dialog"); + + g_signal_connect (G_OBJECT (dialog), "response", + G_CALLBACK (zenity_about_dialog_response), data); + + /* FIXME: Set an appropriate window icon for the dialog + * zenity_util_set_window_icon (dialog, ZENITY_IMAGE_FULLPATH ("")); + */ + + label = glade_xml_get_widget (glade_dialog, "zenity_about_version"); + 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_text (GTK_LABEL (label), _("Display dialog boxes from shell scripts")); + + label = glade_xml_get_widget (glade_dialog, "zenity_about_copyright"); + 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); + + gtk_widget_show (dialog); + gtk_main (); +} + +static void +zenity_about_dialog_response (GtkWidget *widget, int response, gpointer data) +{ + ZenityData *zen_data = data; + + switch (response) { + case GTK_RESPONSE_OK: + zen_data->exit_code = 0; + gtk_main_quit (); + break; + + case GTK_RESPONSE_HELP: + zen_data->exit_code = 1; + gtk_main_quit (); + break; + + case GTK_RESPONSE_CREDITS: + zen_data->exit_code = 1; + gtk_main_quit (); + break; + default: + /* Esc dialog */ + zen_data->exit_code = 1; + break; + } +} @@ -37,6 +37,7 @@ typedef enum { MODE_TEXTINFO, MODE_WARNING, MODE_INFO, + MODE_ABOUT, MODE_LAST } ZenityDialogMode; @@ -849,6 +850,9 @@ main (gint argc, gchar **argv) { case MODE_TEXTINFO: zenity_text (results->data, results->text_data); break; + case MODE_ABOUT: + zenity_about (results->data); + break; default: g_assert_not_reached (); zenity_free_parsing_options (); @@ -1204,8 +1208,7 @@ void zenity_parse_options_callback (poptContext ctx, zenity_free_parsing_options (); exit (-1); } - g_print ("This does nothing at the moment\n"); - exit (0); + results->mode = MODE_ABOUT; break; case OPTION_VERSION: if (results->mode != MODE_LAST) { diff --git a/src/zenity.glade b/src/zenity.glade index 9e272fa1..880ec5b7 100644 --- a/src/zenity.glade +++ b/src/zenity.glade @@ -1099,4 +1099,169 @@ </child> </widget> +<widget class="GtkDialog" id="zenity_about_dialog"> + <property name="visible">True</property> + <property name="title" translatable="yes">About Zenity</property> + <property name="type">GTK_WINDOW_TOPLEVEL</property> + <property name="window_position">GTK_WIN_POS_NONE</property> + <property name="modal">False</property> + <property name="resizable">True</property> + <property name="destroy_with_parent">False</property> + <property name="has_separator">True</property> + <signal name="destroy" handler="gtk_main_quit" last_modification_time="Tue, 14 Jan 2003 02:38:19 GMT"/> + + <child internal-child="vbox"> + <widget class="GtkVBox" id="dialog-vbox9"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child internal-child="action_area"> + <widget class="GtkHButtonBox" id="dialog-action_area9"> + <property name="visible">True</property> + <property name="layout_style">GTK_BUTTONBOX_END</property> + + <child> + <widget class="GtkButton" id="helpbutton1"> + <property name="visible">True</property> + <property name="can_default">True</property> + <property name="can_focus">True</property> + <property name="label">gtk-help</property> + <property name="use_stock">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="response_id">-11</property> + </widget> + </child> + + <child> + <widget class="GtkButton" id="zenity_about_credits_button"> + <property name="visible">True</property> + <property name="can_default">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">_Credits</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="response_id">0</property> + </widget> + </child> + + <child> + <widget class="GtkButton" id="zenity_about_ok_button"> + <property name="visible">True</property> + <property name="can_default">True</property> + <property name="has_default">True</property> + <property name="can_focus">True</property> + <property name="label">gtk-ok</property> + <property name="use_stock">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="response_id">-5</property> + </widget> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="pack_type">GTK_PACK_END</property> + </packing> + </child> + + <child> + <widget class="GtkVBox" id="vbox11"> + <property name="border_width">7</property> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">8</property> + + <child> + <widget class="GtkImage" id="zenity_about_image"> + <property name="visible">True</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="zenity_about_version"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">zenity_about_version</property> + <property name="use_underline">False</property> + <property name="use_markup">True</property> + <property name="justify">GTK_JUSTIFY_CENTER</property> + <property name="wrap">False</property> + <property name="selectable">True</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="zenity_about_description"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">zenity_about_description</property> + <property name="use_underline">False</property> + <property name="use_markup">True</property> + <property name="justify">GTK_JUSTIFY_CENTER</property> + <property name="wrap">True</property> + <property name="selectable">True</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="zenity_about_copyright"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">zenity_about_copyright</property> + <property name="use_underline">False</property> + <property name="use_markup">True</property> + <property name="justify">GTK_JUSTIFY_CENTER</property> + <property name="wrap">False</property> + <property name="selectable">True</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + </widget> + </child> +</widget> + </glade-interface> |