From 6421c96ccc2032d56e0f467e54ffa1634768f88e Mon Sep 17 00:00:00 2001 From: "CST 1998 Shawn T. Amundson" Date: Wed, 9 Dec 1998 01:05:41 +0000 Subject: [PATCH] Released GTK+ 1.1.6 Tue Dec 8 18:29:05 CST 1998 Shawn T. Amundson * Released GTK+ 1.1.6 * NEWS: updated * gtk/Makefile.am: gtk/testgtk.c: gtk/gtkrc.h: gtk/gtkrc.c: Read in default files. --- ChangeLog | 11 +++++ ChangeLog.pre-2-0 | 11 +++++ ChangeLog.pre-2-10 | 11 +++++ ChangeLog.pre-2-2 | 11 +++++ ChangeLog.pre-2-4 | 11 +++++ ChangeLog.pre-2-6 | 11 +++++ ChangeLog.pre-2-8 | 11 +++++ Makefile.am | 3 ++ NEWS | 7 ++- docs/Changes-1.2.txt | 6 +++ gtk/Makefile.am | 1 + gtk/gtkrc.c | 103 +++++++++++++++++++++++++++++++++++++++++++ gtk/gtkrc.h | 3 ++ gtk/testgtk.c | 4 +- tests/testgtk.c | 4 +- 15 files changed, 203 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index f6e75a4e5d..f2a748df01 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +Tue Dec 8 18:29:05 CST 1998 Shawn T. Amundson + + * Released GTK+ 1.1.6 + + * NEWS: updated + + * gtk/Makefile.am: + gtk/testgtk.c: + gtk/gtkrc.h: + gtk/gtkrc.c: Read in default files. + Wed Dec 9 00:49:12 1998 Tim Janik * gtk/gtktypeutils.h: diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index f6e75a4e5d..f2a748df01 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,14 @@ +Tue Dec 8 18:29:05 CST 1998 Shawn T. Amundson + + * Released GTK+ 1.1.6 + + * NEWS: updated + + * gtk/Makefile.am: + gtk/testgtk.c: + gtk/gtkrc.h: + gtk/gtkrc.c: Read in default files. + Wed Dec 9 00:49:12 1998 Tim Janik * gtk/gtktypeutils.h: diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index f6e75a4e5d..f2a748df01 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,14 @@ +Tue Dec 8 18:29:05 CST 1998 Shawn T. Amundson + + * Released GTK+ 1.1.6 + + * NEWS: updated + + * gtk/Makefile.am: + gtk/testgtk.c: + gtk/gtkrc.h: + gtk/gtkrc.c: Read in default files. + Wed Dec 9 00:49:12 1998 Tim Janik * gtk/gtktypeutils.h: diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index f6e75a4e5d..f2a748df01 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,14 @@ +Tue Dec 8 18:29:05 CST 1998 Shawn T. Amundson + + * Released GTK+ 1.1.6 + + * NEWS: updated + + * gtk/Makefile.am: + gtk/testgtk.c: + gtk/gtkrc.h: + gtk/gtkrc.c: Read in default files. + Wed Dec 9 00:49:12 1998 Tim Janik * gtk/gtktypeutils.h: diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index f6e75a4e5d..f2a748df01 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,14 @@ +Tue Dec 8 18:29:05 CST 1998 Shawn T. Amundson + + * Released GTK+ 1.1.6 + + * NEWS: updated + + * gtk/Makefile.am: + gtk/testgtk.c: + gtk/gtkrc.h: + gtk/gtkrc.c: Read in default files. + Wed Dec 9 00:49:12 1998 Tim Janik * gtk/gtktypeutils.h: diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index f6e75a4e5d..f2a748df01 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,14 @@ +Tue Dec 8 18:29:05 CST 1998 Shawn T. Amundson + + * Released GTK+ 1.1.6 + + * NEWS: updated + + * gtk/Makefile.am: + gtk/testgtk.c: + gtk/gtkrc.h: + gtk/gtkrc.c: Read in default files. + Wed Dec 9 00:49:12 1998 Tim Janik * gtk/gtktypeutils.h: diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index f6e75a4e5d..f2a748df01 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,14 @@ +Tue Dec 8 18:29:05 CST 1998 Shawn T. Amundson + + * Released GTK+ 1.1.6 + + * NEWS: updated + + * gtk/Makefile.am: + gtk/testgtk.c: + gtk/gtkrc.h: + gtk/gtkrc.c: Read in default files. + Wed Dec 9 00:49:12 1998 Tim Janik * gtk/gtktypeutils.h: diff --git a/Makefile.am b/Makefile.am index 9df27bcd09..6f31f7ffe2 100644 --- a/Makefile.am +++ b/Makefile.am @@ -14,11 +14,14 @@ EXTRA_DIST = \ NEWS.pre-1-0 \ ChangeLog.pre-1-0 \ README.cvs-commits \ + examples/Makefile \ examples/README.1ST \ examples/extract.awk \ examples/extract.sh \ examples/aspectframe/Makefile \ examples/aspectframe/aspectframe.c \ + examples/base/Makefile \ + examples/base/base.c \ examples/buttons/Makefile \ examples/buttons/buttons.c \ examples/buttons/info.xpm \ diff --git a/NEWS b/NEWS index 3952a5624b..4b8007af73 100644 --- a/NEWS +++ b/NEWS @@ -12,7 +12,12 @@ What is new in GTK+ 1.1.6: * Lots of API clean ups. * Incremental freezing abilities. * Integrated widgets from the GNOME tree: GtkLayout, GtkPlug and GtkSocket. -* Read doc/Changes-1.2 to properly adapt your code. +* New window functions for transient relationship, default size, and + geometry hints +* Default rc files are now read in ( #include #include +#include #include "gtkrc.h" #include "gtkbindings.h" #include "gtkthemes.h" @@ -95,6 +96,7 @@ static void gtk_rc_clear_styles (void); static void gtk_rc_append_default_pixmap_path (void); static void gtk_rc_append_default_module_path (void); static void gtk_rc_append_pixmap_path (gchar *dir); +static void gtk_rc_add_initial_default_files (void); static const GScannerConfig gtk_rc_scanner_config = @@ -180,6 +182,10 @@ static GSList *gtk_rc_sets_widget = NULL; static GSList *gtk_rc_sets_widget_class = NULL; static GSList *gtk_rc_sets_class = NULL; +#define GTK_RC_MAX_DEFAULT_FILES 128 +static gchar *gtk_rc_default_files[GTK_RC_MAX_DEFAULT_FILES]; +static gboolean gtk_rc_auto_parse = TRUE; + #define GTK_RC_MAX_PIXMAP_PATHS 128 static gchar *pixmap_path[GTK_RC_MAX_PIXMAP_PATHS]; #define GTK_RC_MAX_MODULE_PATHS 128 @@ -303,15 +309,112 @@ gtk_rc_append_default_module_path(void) g_free(path); } +static void +gtk_rc_add_initial_default_files (void) +{ + static gint init = FALSE; + gchar *var, *str; + gchar **files; + gint i; + + if (init) + return; + + gtk_rc_default_files[0] = NULL; + init = TRUE; + + var = getenv("GTK_RC_FILES"); + if (var) + { + files = g_strsplit (var, ":", 128); + i=0; + while (files[i]) + { + gtk_rc_add_default_file (files[i]); + i++; + } + } + else + { + str = g_malloc (strlen(GTK_SYSCONFDIR) + strlen("/gtkrc")); + sprintf (str, "%s%s", GTK_SYSCONFDIR, "/gtkrc"); + gtk_rc_add_default_file (str); + + var = g_get_home_dir (); + str = g_malloc (strlen(var) + strlen("/.gtkrc")); + sprintf (str, "%s%s", var, "/.gtkrc"); + gtk_rc_add_default_file (str); + } +} + +void +gtk_rc_add_default_file (const gchar *file) +{ + guint n; + + gtk_rc_add_initial_default_files (); + + for (n = 0; gtk_rc_default_files[n]; n++) ; + if (n >= GTK_RC_MAX_DEFAULT_FILES - 1) + return; + + gtk_rc_default_files[n++] = g_strdup (file); + gtk_rc_default_files[n] = NULL; +} + +void +gtk_rc_set_default_files (gchar **files) +{ + gint i; + + gtk_rc_add_initial_default_files (); + + i = 0; + while (gtk_rc_default_files[i]) + { + g_free (gtk_rc_default_files[i]); + i++; + } + + gtk_rc_default_files[0] = NULL; + gtk_rc_auto_parse = FALSE; + + i = 0; + while (files[i] != NULL) + { + gtk_rc_add_default_file (files[i]); + i++; + } +} + +gchar ** +gtk_rc_get_default_files (void) +{ + gtk_rc_add_initial_default_files (); + + return gtk_rc_default_files; +} + void gtk_rc_init (void) { + guint i; + rc_style_ht = g_hash_table_new ((GHashFunc) gtk_rc_style_hash, (GCompareFunc) gtk_rc_style_compare); pixmap_path[0] = NULL; module_path[0] = NULL; gtk_rc_append_default_pixmap_path(); gtk_rc_append_default_module_path(); + + gtk_rc_add_initial_default_files (); + + i = 0; + while (gtk_rc_default_files[i] != NULL) + { + gtk_rc_parse (gtk_rc_default_files[i]); + i++; + } } void diff --git a/gtk/gtkrc.h b/gtk/gtkrc.h index bbd65a68ad..e7c2437b00 100644 --- a/gtk/gtkrc.h +++ b/gtk/gtkrc.h @@ -56,6 +56,9 @@ struct _GtkRcStyle }; void gtk_rc_init (void); +void gtk_rc_add_default_file (const gchar *filename); +void gtk_rc_set_default_files (gchar **filenames); +gchar** gtk_rc_get_default_files (void); void gtk_rc_parse (const gchar *filename); void gtk_rc_parse_string (const gchar *rc_string); gboolean gtk_rc_reparse_all (void); diff --git a/gtk/testgtk.c b/gtk/testgtk.c index 9f936bd844..eb4e6ccba3 100644 --- a/gtk/testgtk.c +++ b/gtk/testgtk.c @@ -8350,6 +8350,8 @@ main (int argc, char *argv[]) gtk_set_locale (); + gtk_rc_add_default_file ("testgtkrc"); + gtk_init (&argc, &argv); gdk_rgb_init (); @@ -8363,8 +8365,6 @@ main (int argc, char *argv[]) 1, GTK_TYPE_STRING, "GtkWidgetClass 9 test"); - gtk_rc_parse ("testgtkrc"); - create_main_window (); gtk_main (); diff --git a/tests/testgtk.c b/tests/testgtk.c index 9f936bd844..eb4e6ccba3 100644 --- a/tests/testgtk.c +++ b/tests/testgtk.c @@ -8350,6 +8350,8 @@ main (int argc, char *argv[]) gtk_set_locale (); + gtk_rc_add_default_file ("testgtkrc"); + gtk_init (&argc, &argv); gdk_rgb_init (); @@ -8363,8 +8365,6 @@ main (int argc, char *argv[]) 1, GTK_TYPE_STRING, "GtkWidgetClass 9 test"); - gtk_rc_parse ("testgtkrc"); - create_main_window (); gtk_main ();