]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtksettings.h
Seal priv pointer in GtkPrinter.
[~andy/gtk] / gtk / gtksettings.h
index 59c2fd90cda444a700364bb4ba44773749995f03..fa0387e8391fe042a932c47cd51d3667335e6c97 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_DISABLE_SINGLE_INCLUDES) && !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 --- */
@@ -46,13 +49,17 @@ struct _GtkSettings
   GObject parent_instance;
 
   GData  *queued_settings;     /* of type GtkSettingsValue* */
-  GValue *property_values;
+  GtkSettingsPropertyValue *property_values;
+
+  GtkRcContext *rc_context;
+  GdkScreen    *screen;
 };
+
 struct _GtkSettingsClass
 {
   GObjectClass parent_class;
-  
 };
+
 struct _GtkSettingsValue
 {
   /* origin should be something like "filename:linenumber" for rc files,
@@ -68,12 +75,14 @@ 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 --- */
@@ -112,6 +121,11 @@ void               gtk_settings_set_double_property (GtkSettings   *settings,
 
 
 /* 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,
@@ -120,8 +134,6 @@ gboolean        _gtk_settings_parse_convert       (GtkRcPropertyParser parser,
                                                       GValue             *dest_value);
 
 
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
+G_END_DECLS
 
 #endif /* __GTK_SETTINGS_H__ */