]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtksettings.h
Hide GtkTreeViewColumn buttons when header_window is not visible
[~andy/gtk] / gtk / gtksettings.h
index 43cd683937a6c077b359c5c09ed20f78b9199bff..6958db0f5620a8a58e52d2219932580e8b219b27 100644 (file)
  * License along with this library; if not, write to the Free
  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
+
+#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
+
 #ifndef __GTK_SETTINGS_H__
 #define __GTK_SETTINGS_H__
 
-#include       <gtk/gtkrc.h>
+#include <gtk/gtkrc.h>
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
+G_BEGIN_DECLS
 
 
 /* -- 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))
+#define GTK_TYPE_SETTINGS             (gtk_settings_get_type ())
+#define GTK_SETTINGS(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SETTINGS, GtkSettings))
+#define GTK_SETTINGS_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_SETTINGS, GtkSettingsClass))
+#define GTK_IS_SETTINGS(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_SETTINGS))
+#define GTK_IS_SETTINGS_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_SETTINGS))
+#define GTK_SETTINGS_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_SETTINGS, GtkSettingsClass))
 
 
 /* --- typedefs --- */
-typedef struct    _GtkSettings      GtkSettings;
 typedef struct    _GtkSettingsClass GtkSettingsClass;
 typedef struct    _GtkSettingsValue GtkSettingsValue;
+typedef struct    _GtkSettingsPropertyValue GtkSettingsPropertyValue; /* Internal */
 
 
 /* --- structures --- */
@@ -45,14 +48,18 @@ struct _GtkSettings
 {
   GObject parent_instance;
 
-  GData  *queued_settings;     /* of type GtkSettingsValue* */
-  GValue *property_values;
+  GData  *GSEAL (queued_settings);     /* of type GtkSettingsValue* */
+  GtkSettingsPropertyValue *GSEAL (property_values);
+
+  GtkRcContext *GSEAL (rc_context);
+  GdkScreen    *GSEAL (screen);
 };
+
 struct _GtkSettingsClass
 {
   GObjectClass parent_class;
-  
 };
+
 struct _GtkSettingsValue
 {
   /* origin should be something like "filename:linenumber" for rc files,
@@ -68,24 +75,32 @@ struct _GtkSettingsValue
 
 
 /* --- 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,
+GType          gtk_settings_get_type                (void) G_GNUC_CONST;
+#ifndef GDK_MULTIHEAD_SAFE
+GtkSettings*   gtk_settings_get_default             (void);
+#endif
+GtkSettings*   gtk_settings_get_for_screen          (GdkScreen *screen);
+
+void           gtk_settings_install_property        (GParamSpec         *pspec);
+void           gtk_settings_install_property_parser (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);
+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);
+gboolean gtk_rc_property_parse_requisition (const GParamSpec *pspec,
+                                           const GString    *gstring,
+                                           GValue           *property_value);
+gboolean gtk_rc_property_parse_border      (const GParamSpec *pspec,
+                                           const GString    *gstring,
+                                           GValue           *property_value);
 
 /*< private >*/
 void           gtk_settings_set_property_value  (GtkSettings   *settings,
@@ -104,8 +119,23 @@ void               gtk_settings_set_double_property (GtkSettings   *settings,
                                                  gdouble        v_double,
                                                  const gchar   *origin);
 
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
+
+/* implementation details */
+void _gtk_settings_set_property_value_from_rc (GtkSettings            *settings,
+                                              const gchar            *name,
+                                              const GtkSettingsValue *svalue);
+void _gtk_settings_reset_rc_values            (GtkSettings            *settings);
+
+void                _gtk_settings_handle_event        (GdkEventSetting    *event);
+GtkRcPropertyParser _gtk_rc_property_parser_from_type (GType               type);
+gboolean           _gtk_settings_parse_convert       (GtkRcPropertyParser parser,
+                                                      const GValue       *src_value,
+                                                      GParamSpec         *pspec,
+                                                      GValue             *dest_value);
+
+GdkScreen          *_gtk_settings_get_screen          (GtkSettings        *settings);
+
+
+G_END_DECLS
 
 #endif /* __GTK_SETTINGS_H__ */