From fbfc305174af29d630846194586211dbfd9f1373 Mon Sep 17 00:00:00 2001 From: Owen Taylor Date: Sat, 30 Jun 2001 16:08:25 +0000 Subject: Allow %NULL for style to mean "revert to default style" Tue Jun 26 19:39:03 2001 Owen Taylor * gtk/gtkwidget.c (gtk_widget_set_style): Allow %NULL for style to mean "revert to default style" * gtk/gtkwidget.[ch] (gtk_widget_set_rc_style, gtk_widget_restore_default_style): Make this functions deprecated aliases for gtk_widget_set_style (widget, NULL). * gtk/gtkwidget.[ch]: Remove: gtk_widget_set_default_style () gtk_widget_push_style () gtk_widget_pop_style () These functions interact are overriden by RC files, and thus virtually useless, and complicated. Fri Jun 22 18:49:48 2001 Owen Taylor * gtk/gtkrc.c: Add a GtkRcContext structure to hold most of the previous global variables in gtkrc.c. This is in preparation for multi-head, since each screen can have different GtkSettings and RC information. * gtk/gtkrc.[ch]: * gtk/gtkrc.h (struct _GtkRcStyleClass): Add a GtkSettings parameter to GtkRcStyle::parse. * gdk/x11/gdkevents-x11.c gtk/gtksettings.c gtk/gtkrc.c: Add two new settings gtk-theme-name, gtk-key-theme-name, for RC files that are loaded by name after reading the default RC files. * gtk/gtkrc.c: Allow priorities for styles, as wll as bindings. * gtk/gtkenums.h gtk/gtkrc.c: Add GTK_PATH_PRIO_THEME, and use it by default for RC files loaded via gtk-theme-name, gtk-key-theme-name. * gtk/gtkiconfactory.c (gtk_icon_source_set_filename) gtk/gtkrc.c (gtk_rc_parse_pixmap_path_string) tests/testgtkrc: Require pathnames to be absolute. * gtk/gtkrc.c gtk/gtkiconfactory.c: Look up the full filename for the source when parsing, since the operation of looking up a pixmap from an RC file depends on the parsing context. * gtk/gtkrc.c (gtk_rc_context_reparse_all): Automatically reset RC styles on all widgets when files are reparsed. * tests/testgtk.c (create_rc_file) gtk/gtkwindow.c (gtk_window_read_rcfiles): Simplify, now that gtk_rc_reparse_all() resets styles on all widgets itself. * gtk/gtkmain.c (gtk_get_default_language): Fix broken return value. * gtk/gtksettings.[ch] (gtk_settings_install_property[_ch]): Remove GtkSettings argument. * gtk/gtksettings.[ch] (gtk_settings_get_default): Rename from gtk_settings_get_global(). * gtk/gtkwidget.[ch]: Add a function gtk_widget_Get_settings() to get the appropriate GtkSettings for a widget. (For now, just gets the default GtkSetttings.) * gtk/gtkcolorsel.c gtk/gtkentry.c gtk/gtkmenu.c gtk/gtkmenubar.c gtk/gtktextview.c gtk/gtktoolbar.c: Fixes for GtkSettings changes. * gtk/gtkrc.[ch]: Add gtk_rc_get_style_by_paths() to allow getting a style for a path without actually having a widget. (Allows using a style for a subpart of a widget, for example.) * gtk/gtkrc.[ch]: Add gtk_rc_reparse_all_for_setting() to allow forcing the RC files to be reloaded for just one GtkSettings (not sure how useful this really is.) * gtk/gtkrc.h: Deprecate gtk_rc_add_widget_name/widget_class/class_style --- gtk/gtkrc.h | 47 +++++++++++++++++++++++++++++------------------ 1 file changed, 29 insertions(+), 18 deletions(-) (limited to 'gtk/gtkrc.h') diff --git a/gtk/gtkrc.h b/gtk/gtkrc.h index 1507b177ac..d655ca2b00 100644 --- a/gtk/gtkrc.h +++ b/gtk/gtkrc.h @@ -29,17 +29,17 @@ #include -#include #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ -/* Forward declaration */ -typedef struct _GtkIconFactory GtkIconFactory; +/* Forward declarations */ +typedef struct _GtkIconFactory GtkIconFactory; +typedef struct _GtkRcContext GtkRcContext; +typedef struct _GtkSettings GtkSettings; typedef struct _GtkRcStyleClass GtkRcStyleClass; -typedef struct _GtkRCContext GtkRcContext; #define GTK_TYPE_RC_STYLE (gtk_rc_style_get_type ()) #define GTK_RC_STYLE(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GTK_TYPE_RC_STYLE, GtkRcStyle)) @@ -74,7 +74,7 @@ struct _GtkRcStyle gint xthickness; gint ythickness; - + /*< private >*/ GBSearchArray *rc_properties; @@ -99,8 +99,9 @@ struct _GtkRcStyleClass * of brackets. Returns G_TOKEN_NONE if succesful, otherwise returns * the token it expected but didn't get. */ - guint (*parse) (GtkRcStyle *rc_style, - GScanner *scanner); + guint (*parse) (GtkRcStyle *rc_style, + GtkSettings *settings, + GScanner *scanner); /* Combine RC style data from src into dest. If overriden, this * function should chain to the parent. @@ -117,18 +118,30 @@ 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); GtkStyle* gtk_rc_get_style (GtkWidget *widget); +GtkStyle* gtk_rc_get_style_by_paths (GtkSettings *settings, + const char *widget_path, + const char *class_path, + GType type); +gboolean gtk_rc_reparse_all_for_settings (GtkSettings *settings, + gboolean force_load); +gchar* gtk_rc_find_pixmap_in_path (GtkSettings *context, + GScanner *scanner, + const gchar *pixmap_file); + +void gtk_rc_parse (const gchar *filename); +void gtk_rc_parse_string (const gchar *rc_string); gboolean gtk_rc_reparse_all (void); -void gtk_rc_add_widget_name_style (GtkRcStyle *rc_style, - const gchar *pattern); -void gtk_rc_add_widget_class_style (GtkRcStyle *rc_style, - const gchar *pattern); -void gtk_rc_add_class_style (GtkRcStyle *rc_style, - const gchar *pattern); +#ifndef GTK_DISABLE_DEPRECATED +void gtk_rc_add_widget_name_style (GtkRcStyle *rc_style, + const gchar *pattern); +void gtk_rc_add_widget_class_style (GtkRcStyle *rc_style, + const gchar *pattern); +void gtk_rc_add_class_style (GtkRcStyle *rc_style, + const gchar *pattern); +#endif /* GTK_DISABLE_DEPRECATED */ GType gtk_rc_style_get_type (void) G_GNUC_CONST; @@ -137,8 +150,6 @@ GtkRcStyle* gtk_rc_style_copy (GtkRcStyle *orig); void gtk_rc_style_ref (GtkRcStyle *rc_style); void gtk_rc_style_unref (GtkRcStyle *rc_style); -gchar* gtk_rc_find_pixmap_in_path (GScanner *scanner, - const gchar *pixmap_file); gchar* gtk_rc_find_module_in_path (const gchar *module_file); gchar* gtk_rc_get_theme_dir (void); gchar* gtk_rc_get_module_dir (void); @@ -174,6 +185,7 @@ typedef enum { GTK_RC_TOKEN_LOWEST, GTK_RC_TOKEN_GTK, GTK_RC_TOKEN_APPLICATION, + GTK_RC_TOKEN_THEME, GTK_RC_TOKEN_RC, GTK_RC_TOKEN_HIGHEST, GTK_RC_TOKEN_ENGINE, @@ -212,7 +224,6 @@ const GtkRcProperty* _gtk_rc_style_lookup_rc_property (GtkRcStyle *rc_style, GQuark type_name, GQuark property_name); - #ifdef G_OS_WIN32 gchar* gtk_win32_get_installation_directory (void); #endif -- cgit v1.2.1