diff options
author | Tim Janik <timj@gtk.org> | 2001-03-18 04:50:34 +0000 |
---|---|---|
committer | Tim Janik <timj@src.gnome.org> | 2001-03-18 04:50:34 +0000 |
commit | ac68581f9655392ab4b41ac5d6b0b76c0adf532f (patch) | |
tree | 3a8c1043c94817b941e70dfce7fefb309b0cf517 /gtk/gtksettings.h | |
parent | 882bb853891b30c98c58d384d311fa24fbd1b326 (diff) | |
download | gtk+-ac68581f9655392ab4b41ac5d6b0b76c0adf532f.tar.gz |
added rc-style argument GtkSpinButton::shadow_type. removed
Sun Mar 18 01:15:30 2001 Tim Janik <timj@gtk.org>
* gtk/gtkspinbutton.[hc]: added rc-style argument
GtkSpinButton::shadow_type.
removed spin_button->shadow_type, gtk_spin_button_set_shadow_type()
and ARG_SHADOW_TYPE as it doesn' make much sense to try to override
rc-style settings.
* gtk/gtkfixed.c: removed gtk_fixed_paint() (was unused).
* gtk/gtkwidget.c: quark cleanups.
* gtk/gtkrc.[hc]: added gtk_rc_scanner_new() to create an rc-file
scanner with appropriate configuration, renamed GtkRcStyleClass.clone
to create_rc_style() (we don't do cloning in standard OO sense).
added per rc style properties.
* gtk/gtkstyle.[hc]: added code to retrive pspec conformant rc-style
property values and for caching those. some cleanups.
* gtk/Makefile.am: -DG_DISABLE_CONST_RETURNS.
* gtk/gtksettings.[hc]: new file for global rc-file properties
(at least currently, should get extended to support X properties
and other communication mechanisms).
* gtk/gtkwidget.[hc]: added style property support:
(gtk_widget_class_install_style_property_parser): install style
property pspec with parser function for rc-file values other
than LONG, DOUBLE or STRING.
(gtk_widget_class_install_style_property): same as above without
parser (parsers are going to be needed quite infrequently).
(gtk_widget_style_get_property): retrive style property value.
(gtk_widget_style_get_valist): same as above with varargs support,
has NOCOPY semantics.
(gtk_widget_style_get): wrapper around gtk_widget_style_get_valist().
Diffstat (limited to 'gtk/gtksettings.h')
-rw-r--r-- | gtk/gtksettings.h | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/gtk/gtksettings.h b/gtk/gtksettings.h new file mode 100644 index 0000000000..43cd683937 --- /dev/null +++ b/gtk/gtksettings.h @@ -0,0 +1,111 @@ +/* GTK - The GIMP Toolkit + * Copyright (C) 2000 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free + * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +#ifndef __GTK_SETTINGS_H__ +#define __GTK_SETTINGS_H__ + +#include <gtk/gtkrc.h> + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + + +/* -- type macros --- */ +#define GTK_TYPE_SETTINGS (gtk_settings_get_type ()) +#define GTK_SETTINGS(obj) (GTK_CHECK_CAST ((obj), GTK_TYPE_SETTINGS, GtkSettings)) +#define GTK_SETTINGS_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_SETTINGS, GtkSettingsClass)) +#define GTK_IS_SETTINGS(obj) (GTK_CHECK_TYPE ((obj), GTK_TYPE_SETTINGS)) +#define GTK_IS_SETTINGS_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_SETTINGS)) +#define GTK_SETTINGS_GET_CLASS(obj) (GTK_CHECK_GET_CLASS ((obj), GTK_TYPE_SETTINGS, GtkSettingsClass)) + + +/* --- typedefs --- */ +typedef struct _GtkSettings GtkSettings; +typedef struct _GtkSettingsClass GtkSettingsClass; +typedef struct _GtkSettingsValue GtkSettingsValue; + + +/* --- structures --- */ +struct _GtkSettings +{ + GObject parent_instance; + + GData *queued_settings; /* of type GtkSettingsValue* */ + GValue *property_values; +}; +struct _GtkSettingsClass +{ + GObjectClass parent_class; + +}; +struct _GtkSettingsValue +{ + /* origin should be something like "filename:linenumber" for rc files, + * or e.g. "XProperty" for other sources + */ + gchar *origin; + + /* valid types are LONG, DOUBLE and STRING corresponding to the token parsed, + * or a GSTRING holding an unparsed statement + */ + GValue value; +}; + + +/* --- functions --- */ +GType gtk_settings_get_type (void); +GtkSettings* gtk_settings_get_global (void); /* singleton */ +void gtk_settings_install_property (GtkSettings *settings, + GParamSpec *pspec); +void gtk_settings_install_property_parser (GtkSettings *settings, + GParamSpec *pspec, + GtkRcPropertyParser parser); + +/* --- precoded parsing functions --- */ +gboolean gtk_rc_property_parse_color (const GParamSpec *pspec, + const GString *gstring, + GValue *property_value); +gboolean gtk_rc_property_parse_enum (const GParamSpec *pspec, + const GString *gstring, + GValue *property_value); +gboolean gtk_rc_property_parse_flags (const GParamSpec *pspec, + const GString *gstring, + GValue *property_value); + +/*< private >*/ +void gtk_settings_set_property_value (GtkSettings *settings, + const gchar *name, + const GtkSettingsValue *svalue); +void gtk_settings_set_string_property (GtkSettings *settings, + const gchar *name, + const gchar *v_string, + const gchar *origin); +void gtk_settings_set_long_property (GtkSettings *settings, + const gchar *name, + glong v_long, + const gchar *origin); +void gtk_settings_set_double_property (GtkSettings *settings, + const gchar *name, + gdouble v_double, + const gchar *origin); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __GTK_SETTINGS_H__ */ |