]> Pileus Git - ~andy/gtk/blob - gdk/x11/xsettings-common.h
Update to changed cairo interface.
[~andy/gtk] / gdk / x11 / xsettings-common.h
1 /*
2  * Copyright © 2001 Red Hat, Inc.
3  *
4  * Permission to use, copy, modify, distribute, and sell this software and its
5  * documentation for any purpose is hereby granted without fee, provided that
6  * the above copyright notice appear in all copies and that both that
7  * copyright notice and this permission notice appear in supporting
8  * documentation, and that the name of Red Hat not be used in advertising or
9  * publicity pertaining to distribution of the software without specific,
10  * written prior permission.  Red Hat makes no representations about the
11  * suitability of this software for any purpose.  It is provided "as is"
12  * without express or implied warranty.
13  *
14  * RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL RED HAT
16  * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
17  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
18  * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 
19  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
20  *
21  * Author:  Owen Taylor, Red Hat, Inc.
22  */
23 #ifndef XSETTINGS_COMMON_H
24 #define XSETTINGS_COMMON_H
25
26 #ifdef __cplusplus
27 extern "C" {
28 #endif /* __cplusplus */
29
30 /* Renames for GDK inclusion */
31
32 #define xsettings_byte_order             _gdk_xsettings_byte_order
33 #define xsettings_client_destroy         _gdk_xsettings_client_destroy
34 #define xsettings_client_get_setting     _gdk_xsettings_client_get_setting
35 #define xsettings_client_new             _gdk_xsettings_client_new
36 #define xsettings_client_set_grab_func   _gdk_xsettings_client_set_grab_func
37 #define xsettings_client_set_ungrab_func _gdk_xsettings_client_set_ungrab_func
38 #define xsettings_client_process_event   _gdk_xsettings_client_process_event
39 #define xsettings_list_copy              _gdk_xsettings_list_copy
40 #define xsettings_list_delete            _gdk_xsettings_list_delete
41 #define xsettings_list_free              _gdk_xsettings_list_free
42 #define xsettings_list_insert            _gdk_xsettings_list_insert
43 #define xsettings_list_lookup            _gdk_xsettings_list_lookup
44 #define xsettings_setting_copy           _gdk_xsettings_setting_copy
45 #define xsettings_setting_equal          _gdk_xsettings_setting_equal
46 #define xsettings_setting_free           _gdk_xsettings_setting_free
47
48
49 typedef struct _XSettingsBuffer  XSettingsBuffer;
50 typedef struct _XSettingsColor   XSettingsColor;
51 typedef struct _XSettingsList    XSettingsList;
52 typedef struct _XSettingsSetting XSettingsSetting;
53
54 /* Types of settings possible. Enum values correspond to
55  * protocol values.
56  */
57 typedef enum 
58 {
59   XSETTINGS_TYPE_INT     = 0,
60   XSETTINGS_TYPE_STRING  = 1,
61   XSETTINGS_TYPE_COLOR   = 2
62 } XSettingsType;
63
64 typedef enum
65 {
66   XSETTINGS_SUCCESS,
67   XSETTINGS_NO_MEM,
68   XSETTINGS_ACCESS,
69   XSETTINGS_FAILED,
70   XSETTINGS_NO_ENTRY,
71   XSETTINGS_DUPLICATE_ENTRY
72 } XSettingsResult;
73
74 struct _XSettingsBuffer
75 {
76   char byte_order;
77   size_t len;
78   unsigned char *data;
79   unsigned char *pos;
80 };
81
82 struct _XSettingsColor
83 {
84   unsigned short red, green, blue, alpha;
85 };
86
87 struct _XSettingsList
88 {
89   XSettingsSetting *setting;
90   XSettingsList *next;
91 };
92
93 struct _XSettingsSetting
94 {
95   char *name;
96   XSettingsType type;
97   
98   union {
99     int v_int;
100     char *v_string;
101     XSettingsColor v_color;
102   } data;
103
104   unsigned long last_change_serial;
105 };
106
107 XSettingsSetting *xsettings_setting_copy  (XSettingsSetting *setting);
108 void              xsettings_setting_free  (XSettingsSetting *setting);
109 int               xsettings_setting_equal (XSettingsSetting *setting_a,
110                                            XSettingsSetting *setting_b);
111
112 void              xsettings_list_free   (XSettingsList     *list);
113 XSettingsList    *xsettings_list_copy   (XSettingsList     *list);
114 XSettingsResult   xsettings_list_insert (XSettingsList    **list,
115                                          XSettingsSetting  *setting);
116 XSettingsSetting *xsettings_list_lookup (XSettingsList     *list,
117                                          const char        *name);
118 XSettingsResult   xsettings_list_delete (XSettingsList    **list,
119                                          const char        *name);
120
121 char xsettings_byte_order (void);
122
123 #define XSETTINGS_PAD(n,m) ((n + m - 1) & (~(m-1)))
124
125 #ifdef __cplusplus
126 }
127 #endif /* __cplusplus */
128
129 #endif /* XSETTINGS_COMMON_H */