]> Pileus Git - ~andy/gtk/blobdiff - gdk/x11/xsettings-client.h
x11: Return XSetting without copying
[~andy/gtk] / gdk / x11 / xsettings-client.h
index 12018295fb27b32d3709457c3111712c6938b989..629e28079c9a0c04ccb44552dee27e8312e70d4d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2001 Red Hat, Inc.
+ * Copyright © 2001, 2007 Red Hat, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -36,30 +36,36 @@ typedef enum
 {
   XSETTINGS_ACTION_NEW,
   XSETTINGS_ACTION_CHANGED,
-  XSETTINGS_ACTION_DELETED,
+  XSETTINGS_ACTION_DELETED
 } XSettingsAction;
 
 typedef void (*XSettingsNotifyFunc) (const char       *name,
                                     XSettingsAction   action,
                                     XSettingsSetting *setting,
                                     void             *cb_data);
-typedef void (*XSettingsWatchFunc)  (Window            window,
+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,
-                                                XSettingsNotifyFunc  notify,
-                                                XSettingsWatchFunc   watch,
-                                                void                *cb_data);
-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);
+XSettingsClient *xsettings_client_new             (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);
+const XSettingsSetting *
+                 xsettings_client_get_setting     (XSettingsClient     *client,
+                                                  const char          *name);
 
 #ifdef __cplusplus
 }