From ee08e284e9722ddc0fb785c5f9af09bcb6fa8a47 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Thu, 26 Apr 2007 09:57:51 +0000 Subject: [PATCH] More eye candy. --- src/data/ChangeLog | 6 + src/ui/gui/ChangeLog | 9 + src/ui/gui/about.c | 5 + src/ui/gui/automake.mk | 5 +- src/ui/gui/icons/scalable/splash.svg | 513 +++++++++++++++++++++++++++ src/ui/gui/icons/splash.png | Bin 0 -> 51431 bytes src/ui/gui/main.c | 185 ++++++++++ src/ui/gui/psppire.c | 109 +----- src/ui/gui/psppire.glade | 78 ++-- src/ui/gui/psppire.h | 27 ++ 10 files changed, 807 insertions(+), 130 deletions(-) create mode 100644 src/ui/gui/icons/scalable/splash.svg create mode 100644 src/ui/gui/icons/splash.png create mode 100644 src/ui/gui/main.c create mode 100644 src/ui/gui/psppire.h diff --git a/src/data/ChangeLog b/src/data/ChangeLog index 1a3e1f22..99793d35 100644 --- a/src/data/ChangeLog +++ b/src/data/ChangeLog @@ -1,3 +1,9 @@ +2007-04-19 John Darrington + + * sys-file-reader.c: When reading a system file which has no + long name table, automatically create one where the long names + are the lower case versions of the short names. + 2007-04-22 Ben Pfaff * dictionary.c (dict_set_split_vars): dict_destroy expects that diff --git a/src/ui/gui/ChangeLog b/src/ui/gui/ChangeLog index 6a2b717c..812fdce8 100644 --- a/src/ui/gui/ChangeLog +++ b/src/ui/gui/ChangeLog @@ -1,3 +1,12 @@ +2007-04-25 John Darrington + + * icons/scalable/splash.c icons/splash.png : More eye candy. + + * main.c psppire.h : new files. + + * psppire.c : Seperated the command line parsing and other + environment startup from the core psppire code. + 2007-04-25 John Darrington * icons/scalable icons/16x16: new directories. diff --git a/src/ui/gui/about.c b/src/ui/gui/about.c index 91572586..b6c02203 100644 --- a/src/ui/gui/about.c +++ b/src/ui/gui/about.c @@ -27,6 +27,8 @@ #include "about.h" #include "helper.h" +const static gchar *artists[] = { "Patrick Brunier", "Dondi Bogusky", NULL}; + void about_new (GtkMenuItem *m, GtkWindow *parent) { @@ -53,6 +55,9 @@ about_new (GtkMenuItem *m, GtkWindow *parent) gtk_about_dialog_set_authors (GTK_ABOUT_DIALOG (about), (const gchar **) authors); + gtk_about_dialog_set_artists (GTK_ABOUT_DIALOG (about), + artists); + gtk_window_set_transient_for (GTK_WINDOW (about), parent); gtk_window_set_modal (GTK_WINDOW (about), TRUE); diff --git a/src/ui/gui/automake.mk b/src/ui/gui/automake.mk index 122cd3b9..2f4d884d 100644 --- a/src/ui/gui/automake.mk +++ b/src/ui/gui/automake.mk @@ -64,7 +64,8 @@ dist_src_ui_gui_psppire_DATA = \ $(top_srcdir)/src/ui/gui/icons/16x16/ordinal.png \ $(top_srcdir)/src/ui/gui/icons/16x16/scale.png \ $(top_srcdir)/src/ui/gui/icons/16x16/string.png \ - $(top_srcdir)/src/ui/gui/icons/16x16/date-scale.png + $(top_srcdir)/src/ui/gui/icons/16x16/date-scale.png \ + $(top_srcdir)/src/ui/gui/icons/splash.png src_ui_gui_psppire_SOURCES = \ @@ -84,9 +85,11 @@ src_ui_gui_psppire_SOURCES = \ src/ui/gui/dict-display.h \ src/ui/gui/flexifile-factory.h \ src/ui/gui/flexifile-factory.c \ + src/ui/gui/main.c \ src/ui/gui/message-dialog.c \ src/ui/gui/message-dialog.h \ src/ui/gui/psppire.c \ + src/ui/gui/psppire.h \ src/ui/gui/helper.c \ src/ui/gui/helper.h \ src/ui/gui/missing-val-dialog.c \ diff --git a/src/ui/gui/icons/scalable/splash.svg b/src/ui/gui/icons/scalable/splash.svg new file mode 100644 index 00000000..ca95aa14 --- /dev/null +++ b/src/ui/gui/icons/scalable/splash.svg @@ -0,0 +1,513 @@ + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GNU + + \ No newline at end of file diff --git a/src/ui/gui/icons/splash.png b/src/ui/gui/icons/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..168980b3666a154f2ec8d3f29295e29a8fcb60f0 GIT binary patch literal 51431 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 +#include "psppire.h" +#include "progname.h" +#include +#include + +#include +#include + +static gboolean parse_command_line (int *argc, char ***argv, gchar **filename, + gboolean *show_splash, GError **err); + + + +static GtkWidget * +create_splash_window (void) +{ + GtkWidget *splash ; + GtkWidget *image; + + gtk_window_set_auto_startup_notification (FALSE); + + splash = gtk_window_new (GTK_WINDOW_POPUP); + + gtk_window_set_position (GTK_WINDOW (splash), + GTK_WIN_POS_CENTER_ALWAYS); + + image = gtk_image_new_from_file (PKGDATADIR "/splash.png"); + + gtk_container_add (GTK_CONTAINER (splash), image); + + gtk_widget_show (image); + + return splash; +} + +static gboolean +hide_splash_window (gpointer data) +{ + GtkWidget *splash = data; + gtk_widget_hide (splash); + gtk_window_set_auto_startup_notification (TRUE); + return FALSE; +} + + +static gboolean +quit_one_loop (gpointer data) +{ + gtk_main_quit (); + return FALSE; +} + + +static gboolean +run_inner_loop (gpointer data) +{ + initialize (); + + g_timeout_add (500, hide_splash_window, data); + + gtk_main (); + + de_initialize (); + + return FALSE; +} + + + +int +main (int argc, char *argv[]) +{ + GtkWidget *splash_window; + gchar *filename = 0; + gboolean show_splash = TRUE; + GError *err = 0; + gchar *vers; + + set_program_name (argv[0]); + + if ( ! gtk_parse_args (&argc, &argv) ) + { + perror ("Error parsing arguments"); + exit (1); + } + + if ( (vers = gtk_check_version (GTK_MAJOR_VERSION, + GTK_MINOR_VERSION, + GTK_MICRO_VERSION)) ) + { + g_critical (vers); + } + + /* Deal with options like --version, --help etc */ + if ( ! parse_command_line (&argc, &argv, &filename, &show_splash, &err) ) + { + g_clear_error (&err); + return 0; + } + + gdk_init (&argc, &argv); + + splash_window = create_splash_window (); + if ( show_splash ) + gtk_widget_show (splash_window); + + gtk_idle_add (quit_one_loop, 0); + + gtk_quit_add (0, run_inner_loop, splash_window); + gtk_main (); + + + return 0; +} + + +/* Parses the command line specified by ARGC and ARGV as received by + main (). Returns true if normal execution should proceed, + false if the command-line indicates that PSPP should exit. */ +static gboolean +parse_command_line (int *argc, char ***argv, gchar **filename, + gboolean *show_splash, GError **err) +{ + + static struct option long_options[] = + { + {"help", no_argument, NULL, 'h'}, + {"version", no_argument, NULL, 'V'}, + {"no-splash", no_argument, NULL, 'q'}, + {0, 0, 0, 0}, + }; + + int c; + + for (;;) + { + c = getopt_long (*argc, *argv, "hVq", long_options, NULL); + if (c == -1) + break; + + switch (c) + { + case 'h': + g_print ("Usage: psppire {|--help|--version|--no-splash}\n"); + return FALSE; + case 'V': + g_print (version); + g_print ("\n"); + g_print (legal); + return FALSE; + case 'q': + *show_splash = FALSE; + break; + default: + return FALSE; + } + } + + if ( optind < *argc) + { + *filename = (*argv)[optind]; + } + + return TRUE; +} diff --git a/src/ui/gui/psppire.c b/src/ui/gui/psppire.c index dc912a2f..84489c07 100644 --- a/src/ui/gui/psppire.c +++ b/src/ui/gui/psppire.c @@ -22,13 +22,13 @@ #include #include -#include "progname.h" #include "relocatable.h" #include "data-editor.h" -#include -#include +#include "psppire.h" + + #include #include #include @@ -39,9 +39,8 @@ #include #include #include +#include -#include -#include #include #include #include "psppire-dict.h" @@ -57,12 +56,14 @@ PsppireDataStore *the_data_store = 0; static bool parse_command_line (int *argc, char ***argv, - gchar **filename, GError **err); + gchar **filename, + gboolean *show_splash, + GError **err); PsppireVarStore *the_var_store = 0; -void create_icon_factory (void); +static void create_icon_factory (void); struct source_stream *the_source_stream ; struct dataset * the_dataset = NULL; @@ -70,8 +71,7 @@ struct dataset * the_dataset = NULL; static void replace_dictionary (struct dictionary *d) { - psppire_dict_replace_dictionary (the_data_store->dict, - d); + psppire_dict_replace_dictionary (the_data_store->dict, d); } @@ -93,32 +93,13 @@ replace_flexifile (struct case_source *s) } -int -main (int argc, char *argv[]) + +void +initialize (void) { struct casefile_factory *factory; PsppireDict *dictionary = 0; - gchar *filename=0; - GError *err = 0; - gchar *vers; - - set_program_name (argv[0]); - - if ( ! gtk_parse_args (&argc, &argv) ) - { - perror ("Error parsing arguments"); - exit (1); - } - - if ( (vers = gtk_check_version (GTK_MAJOR_VERSION, - GTK_MINOR_VERSION, - GTK_MICRO_VERSION)) ) - { - g_critical (vers); - } - - /* gtk_init messes with the locale. So unset the bits we want to control ourselves */ setlocale (LC_NUMERIC, "C"); @@ -127,19 +108,14 @@ main (int argc, char *argv[]) textdomain (PACKAGE); - if ( ! parse_command_line (&argc, &argv, &filename, &err) ) - { - g_clear_error (&err); - return 0; - } - glade_init (); fmt_init (); settings_init (); fh_init (); factory = flexifile_factory_create (); - the_source_stream = create_source_stream ( + the_source_stream = + create_source_stream ( fn_getenv_default ("STAT_INCLUDE_PATH", include_path) ); @@ -155,7 +131,6 @@ main (int argc, char *argv[]) bind_textdomain_codeset (PACKAGE, "UTF-8"); - gdk_init (&argc, &argv); /* Create the model for the var_sheet */ the_var_store = psppire_var_store_new (dictionary); @@ -170,68 +145,23 @@ main (int argc, char *argv[]) create_icon_factory (); new_data_window (NULL, NULL); +} - /* start the event loop */ - gtk_main (); +void +de_initialize (void) +{ destroy_source_stream (the_source_stream); message_dialog_done (); - settings_done (); - - return 0; } -/* Parses the command line specified by ARGC and ARGV as received by - main (). Returns true if normal execution should proceed, - false if the command-line indicates that PSPP should exit. */ -static bool -parse_command_line (int *argc, char ***argv, gchar **filename, GError **err) -{ - static struct option long_options[] = - { - {"help", no_argument, NULL, 'h'}, - {"version", no_argument, NULL, 'V'}, - {0, 0, 0, 0}, - }; - - int c; - - for (;;) - { - c = getopt_long (*argc, *argv, "hV", long_options, NULL); - if (c == -1) - break; - - switch (c) - { - case 'h': - g_print ("Usage: psppire {|--help|--version}\n"); - return false; - case 'V': - g_print (version); - g_print ("\n"); - g_print (legal); - return false; - default: - return false; - } - } - - if ( optind < *argc) - { - *filename = (*argv)[optind]; - } - - return true; -} - #define PIXBUF_NEW_FROM_FILE(FILE) \ gdk_pixbuf_new_from_file (relocate (PKGDATADIR "/" FILE), 0) -void +static void create_icon_factory (void) { GtkIconFactory *factory = gtk_icon_factory_new (); @@ -306,7 +236,6 @@ create_icon_factory (void) gtk_icon_factory_add ( factory, "var-date-scale", icon_set); - gtk_icon_factory_add_default (factory); } diff --git a/src/ui/gui/psppire.glade b/src/ui/gui/psppire.glade index b35f6c1a..a436b6c7 100644 --- a/src/ui/gui/psppire.glade +++ b/src/ui/gui/psppire.glade @@ -24,7 +24,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - Patrick Brunier + pspplogo.png @@ -250,25 +250,36 @@ 5 5 - - True - 5 - - - - - - - - + True - 5 + + + True + 0 + Name Variable: + + + False + False + + + + + True + + + False + False + 1 + + + 1 + 2 1 2 - - GTK_FILL + @@ -321,35 +332,24 @@ - + True - - - True - 0 - Name Variable: - - - False - False - - - - - True - - - False - False - 1 - - + 5 - 1 - 2 1 2 + + GTK_FILL + + + + + True + 5 + + + diff --git a/src/ui/gui/psppire.h b/src/ui/gui/psppire.h new file mode 100644 index 00000000..90e64189 --- /dev/null +++ b/src/ui/gui/psppire.h @@ -0,0 +1,27 @@ +/* + PSPPIRE --- A Graphical User Interface for PSPP + Copyright (C) 2004, 2005, 2006 Free Software Foundation + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. */ + +#ifndef PSPPIRE_H +#define PSPPIRE_H + + +void initialize (void); +void de_initialize (void); + +#endif /* PSPPIRE_H */ -- 2.30.2