]> Pileus Git - ~andy/gtk/blobdiff - gdk/x11/xsettings-client.h
x11: Clean up xsettings header
[~andy/gtk] / gdk / x11 / xsettings-client.h
index 710ed12482d3251d352bc47a29e8bb8410241772..298950b11dabfcfe23df3081e186ec96aaf619cb 100644 (file)
 #ifndef XSETTINGS_CLIENT_H
 #define XSETTINGS_CLIENT_H
 
+#include <gdk/gdkscreen.h>
 #include <X11/Xlib.h>
-#include "xsettings-common.h"
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
+/* Renames for GDK inclusion */
 
+#define xsettings_client_destroy         _gdk_x11_xsettings_client_destroy
+#define xsettings_client_get_setting     _gdk_x11_xsettings_client_get_setting
+#define xsettings_client_new             _gdk_x11_xsettings_client_new
+#define xsettings_client_process_event   _gdk_x11_xsettings_client_process_event
+#define xsettings_setting_equal          _gdk_x11_xsettings_setting_equal
+#define xsettings_setting_free           _gdk_x11_xsettings_setting_free
+
+typedef struct _XSettingsColor   XSettingsColor;
+typedef struct _XSettingsSetting XSettingsSetting;
 typedef struct _XSettingsClient XSettingsClient;
 
+/* Types of settings possible. Enum values correspond to
+ * protocol values.
+ */
+typedef enum 
+{
+  XSETTINGS_TYPE_INT     = 0,
+  XSETTINGS_TYPE_STRING  = 1,
+  XSETTINGS_TYPE_COLOR   = 2
+} XSettingsType;
+
 typedef enum 
 {
   XSETTINGS_ACTION_NEW,
@@ -39,6 +56,23 @@ typedef enum
   XSETTINGS_ACTION_DELETED
 } XSettingsAction;
 
+struct _XSettingsColor
+{
+  unsigned short red, green, blue, alpha;
+};
+
+struct _XSettingsSetting
+{
+  char *name;
+  XSettingsType type;
+  
+  union {
+    int v_int;
+    char *v_string;
+    XSettingsColor v_color;
+  } data;
+};
+
 typedef void (*XSettingsNotifyFunc) (const char       *name,
                                     XSettingsAction   action,
                                     XSettingsSetting *setting,
@@ -47,33 +81,20 @@ typedef Bool (*XSettingsWatchFunc)  (Window            window,
                                     Bool              is_start,
                                     long              mask,
                                     void             *cb_data);
-typedef void (*XSettingsGrabFunc)   (Display          *display);
 
-XSettingsClient *xsettings_client_new             (Display             *display,
-                                                  int                  screen,
+void              xsettings_setting_free          (XSettingsSetting    *setting);
+int               xsettings_setting_equal         (XSettingsSetting    *setting_a,
+                                                  XSettingsSetting    *setting_b);
+
+XSettingsClient *xsettings_client_new             (GdkScreen           *screen,
                                                   XSettingsNotifyFunc  notify,
                                                   XSettingsWatchFunc   watch,
                                                   void                *cb_data);
-XSettingsClient *xsettings_client_new_with_grab_funcs (Display             *display,
-                                                      int                  screen,
-                                                      XSettingsNotifyFunc  notify,
-                                                      XSettingsWatchFunc   watch,
-                                                      void                *cb_data,
-                                                       XSettingsGrabFunc    grab,
-                                                       XSettingsGrabFunc    ungrab);
-void             xsettings_client_set_grab_func   (XSettingsClient     *client,
-                                                  XSettingsGrabFunc    grab);
-void             xsettings_client_set_ungrab_func (XSettingsClient     *client,
-                                                  XSettingsGrabFunc    ungrab);
 void             xsettings_client_destroy         (XSettingsClient     *client);
 Bool             xsettings_client_process_event   (XSettingsClient     *client,
                                                   XEvent              *xev);
-XSettingsResult  xsettings_client_get_setting     (XSettingsClient     *client,
-                                                  const char          *name,
-                                                  XSettingsSetting   **setting);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
+const XSettingsSetting *
+                 xsettings_client_get_setting     (XSettingsClient     *client,
+                                                  const char          *name);
 
 #endif /* XSETTINGS_CLIENT_H */