1 | /* GObject - GLib Type, Object, Parameter and Signal Library |
2 | * Copyright (C) 1997-1999, 2000-2001 Tim Janik and Red Hat, Inc. |
3 | * |
4 | * This library is free software; you can redistribute it and/or |
5 | * modify it under the terms of the GNU Lesser General Public |
6 | * License as published by the Free Software Foundation; either |
7 | * version 2.1 of the License, or (at your option) any later version. |
8 | * |
9 | * This library is distributed in the hope that it will be useful, |
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
12 | * Lesser General Public License for more details. |
13 | * |
14 | * You should have received a copy of the GNU Lesser General |
15 | * Public License along with this library; if not, see <http://www.gnu.org/licenses/>. |
16 | * |
17 | * gvaluetypes.h: GLib default values |
18 | */ |
19 | #ifndef __G_VALUETYPES_H__ |
20 | #define __G_VALUETYPES_H__ |
21 | |
22 | #if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION) |
23 | #error "Only <glib-object.h> can be included directly." |
24 | #endif |
25 | |
26 | #include <gobject/gvalue.h> |
27 | |
28 | G_BEGIN_DECLS |
29 | |
30 | /* --- type macros --- */ |
31 | /** |
32 | * G_VALUE_HOLDS_CHAR: |
33 | * @value: a valid #GValue structure |
34 | * |
35 | * Checks whether the given #GValue can hold values of type %G_TYPE_CHAR. |
36 | * |
37 | * Returns: %TRUE on success. |
38 | */ |
39 | #define G_VALUE_HOLDS_CHAR(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_CHAR)) |
40 | /** |
41 | * G_VALUE_HOLDS_UCHAR: |
42 | * @value: a valid #GValue structure |
43 | * |
44 | * Checks whether the given #GValue can hold values of type %G_TYPE_UCHAR. |
45 | * |
46 | * Returns: %TRUE on success. |
47 | */ |
48 | #define G_VALUE_HOLDS_UCHAR(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_UCHAR)) |
49 | /** |
50 | * G_VALUE_HOLDS_BOOLEAN: |
51 | * @value: a valid #GValue structure |
52 | * |
53 | * Checks whether the given #GValue can hold values of type %G_TYPE_BOOLEAN. |
54 | * |
55 | * Returns: %TRUE on success. |
56 | */ |
57 | #define G_VALUE_HOLDS_BOOLEAN(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_BOOLEAN)) |
58 | /** |
59 | * G_VALUE_HOLDS_INT: |
60 | * @value: a valid #GValue structure |
61 | * |
62 | * Checks whether the given #GValue can hold values of type %G_TYPE_INT. |
63 | * |
64 | * Returns: %TRUE on success. |
65 | */ |
66 | #define G_VALUE_HOLDS_INT(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_INT)) |
67 | /** |
68 | * G_VALUE_HOLDS_UINT: |
69 | * @value: a valid #GValue structure |
70 | * |
71 | * Checks whether the given #GValue can hold values of type %G_TYPE_UINT. |
72 | * |
73 | * Returns: %TRUE on success. |
74 | */ |
75 | #define G_VALUE_HOLDS_UINT(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_UINT)) |
76 | /** |
77 | * G_VALUE_HOLDS_LONG: |
78 | * @value: a valid #GValue structure |
79 | * |
80 | * Checks whether the given #GValue can hold values of type %G_TYPE_LONG. |
81 | * |
82 | * Returns: %TRUE on success. |
83 | */ |
84 | #define G_VALUE_HOLDS_LONG(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_LONG)) |
85 | /** |
86 | * G_VALUE_HOLDS_ULONG: |
87 | * @value: a valid #GValue structure |
88 | * |
89 | * Checks whether the given #GValue can hold values of type %G_TYPE_ULONG. |
90 | * |
91 | * Returns: %TRUE on success. |
92 | */ |
93 | #define G_VALUE_HOLDS_ULONG(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_ULONG)) |
94 | /** |
95 | * G_VALUE_HOLDS_INT64: |
96 | * @value: a valid #GValue structure |
97 | * |
98 | * Checks whether the given #GValue can hold values of type %G_TYPE_INT64. |
99 | * |
100 | * Returns: %TRUE on success. |
101 | */ |
102 | #define G_VALUE_HOLDS_INT64(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_INT64)) |
103 | /** |
104 | * G_VALUE_HOLDS_UINT64: |
105 | * @value: a valid #GValue structure |
106 | * |
107 | * Checks whether the given #GValue can hold values of type %G_TYPE_UINT64. |
108 | * |
109 | * Returns: %TRUE on success. |
110 | */ |
111 | #define G_VALUE_HOLDS_UINT64(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_UINT64)) |
112 | /** |
113 | * G_VALUE_HOLDS_FLOAT: |
114 | * @value: a valid #GValue structure |
115 | * |
116 | * Checks whether the given #GValue can hold values of type %G_TYPE_FLOAT. |
117 | * |
118 | * Returns: %TRUE on success. |
119 | */ |
120 | #define G_VALUE_HOLDS_FLOAT(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_FLOAT)) |
121 | /** |
122 | * G_VALUE_HOLDS_DOUBLE: |
123 | * @value: a valid #GValue structure |
124 | * |
125 | * Checks whether the given #GValue can hold values of type %G_TYPE_DOUBLE. |
126 | * |
127 | * Returns: %TRUE on success. |
128 | */ |
129 | #define G_VALUE_HOLDS_DOUBLE(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_DOUBLE)) |
130 | /** |
131 | * G_VALUE_HOLDS_STRING: |
132 | * @value: a valid #GValue structure |
133 | * |
134 | * Checks whether the given #GValue can hold values of type %G_TYPE_STRING. |
135 | * |
136 | * Returns: %TRUE on success. |
137 | */ |
138 | #define G_VALUE_HOLDS_STRING(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_STRING)) |
139 | /** |
140 | * G_VALUE_IS_INTERNED_STRING: |
141 | * @value: a valid #GValue structure |
142 | * |
143 | * Checks whether @value contains a string which is canonical. |
144 | * |
145 | * Returns: %TRUE if the value contains a string in its canonical |
146 | * representation, as returned by g_intern_string(). See also |
147 | * g_value_set_interned_string(). |
148 | * |
149 | * Since: 2.66 |
150 | */ |
151 | #define G_VALUE_IS_INTERNED_STRING(value) (G_VALUE_HOLDS_STRING (value) && ((value)->data[1].v_uint & G_VALUE_INTERNED_STRING)) GLIB_AVAILABLE_MACRO_IN_2_66 |
152 | /** |
153 | * G_VALUE_HOLDS_POINTER: |
154 | * @value: a valid #GValue structure |
155 | * |
156 | * Checks whether the given #GValue can hold values of type %G_TYPE_POINTER. |
157 | * |
158 | * Returns: %TRUE on success. |
159 | */ |
160 | #define G_VALUE_HOLDS_POINTER(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_POINTER)) |
161 | /** |
162 | * G_TYPE_GTYPE: |
163 | * |
164 | * The type for #GType. |
165 | */ |
166 | #define G_TYPE_GTYPE (g_gtype_get_type()) |
167 | /** |
168 | * G_VALUE_HOLDS_GTYPE: |
169 | * @value: a valid #GValue structure |
170 | * |
171 | * Checks whether the given #GValue can hold values of type %G_TYPE_GTYPE. |
172 | * |
173 | * Since: 2.12 |
174 | * Returns: %TRUE on success. |
175 | */ |
176 | #define G_VALUE_HOLDS_GTYPE(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_GTYPE)) |
177 | /** |
178 | * G_VALUE_HOLDS_VARIANT: |
179 | * @value: a valid #GValue structure |
180 | * |
181 | * Checks whether the given #GValue can hold values of type %G_TYPE_VARIANT. |
182 | * |
183 | * Returns: %TRUE on success. |
184 | * |
185 | * Since: 2.26 |
186 | */ |
187 | #define G_VALUE_HOLDS_VARIANT(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_VARIANT)) |
188 | |
189 | |
190 | /* --- prototypes --- */ |
191 | GLIB_DEPRECATED_IN_2_32_FOR(g_value_set_schar) |
192 | void g_value_set_char (GValue *value, |
193 | gchar v_char); |
194 | GLIB_DEPRECATED_IN_2_32_FOR(g_value_get_schar) |
195 | gchar g_value_get_char (const GValue *value); |
196 | GLIB_AVAILABLE_IN_ALL |
197 | void g_value_set_schar (GValue *value, |
198 | gint8 v_char); |
199 | GLIB_AVAILABLE_IN_ALL |
200 | gint8 g_value_get_schar (const GValue *value); |
201 | GLIB_AVAILABLE_IN_ALL |
202 | void g_value_set_uchar (GValue *value, |
203 | guchar v_uchar); |
204 | GLIB_AVAILABLE_IN_ALL |
205 | guchar g_value_get_uchar (const GValue *value); |
206 | GLIB_AVAILABLE_IN_ALL |
207 | void g_value_set_boolean (GValue *value, |
208 | gboolean v_boolean); |
209 | GLIB_AVAILABLE_IN_ALL |
210 | gboolean g_value_get_boolean (const GValue *value); |
211 | GLIB_AVAILABLE_IN_ALL |
212 | void g_value_set_int (GValue *value, |
213 | gint v_int); |
214 | GLIB_AVAILABLE_IN_ALL |
215 | gint g_value_get_int (const GValue *value); |
216 | GLIB_AVAILABLE_IN_ALL |
217 | void g_value_set_uint (GValue *value, |
218 | guint v_uint); |
219 | GLIB_AVAILABLE_IN_ALL |
220 | guint g_value_get_uint (const GValue *value); |
221 | GLIB_AVAILABLE_IN_ALL |
222 | void g_value_set_long (GValue *value, |
223 | glong v_long); |
224 | GLIB_AVAILABLE_IN_ALL |
225 | glong g_value_get_long (const GValue *value); |
226 | GLIB_AVAILABLE_IN_ALL |
227 | void g_value_set_ulong (GValue *value, |
228 | gulong v_ulong); |
229 | GLIB_AVAILABLE_IN_ALL |
230 | gulong g_value_get_ulong (const GValue *value); |
231 | GLIB_AVAILABLE_IN_ALL |
232 | void g_value_set_int64 (GValue *value, |
233 | gint64 v_int64); |
234 | GLIB_AVAILABLE_IN_ALL |
235 | gint64 g_value_get_int64 (const GValue *value); |
236 | GLIB_AVAILABLE_IN_ALL |
237 | void g_value_set_uint64 (GValue *value, |
238 | guint64 v_uint64); |
239 | GLIB_AVAILABLE_IN_ALL |
240 | guint64 g_value_get_uint64 (const GValue *value); |
241 | GLIB_AVAILABLE_IN_ALL |
242 | void g_value_set_float (GValue *value, |
243 | gfloat v_float); |
244 | GLIB_AVAILABLE_IN_ALL |
245 | gfloat g_value_get_float (const GValue *value); |
246 | GLIB_AVAILABLE_IN_ALL |
247 | void g_value_set_double (GValue *value, |
248 | gdouble v_double); |
249 | GLIB_AVAILABLE_IN_ALL |
250 | gdouble g_value_get_double (const GValue *value); |
251 | GLIB_AVAILABLE_IN_ALL |
252 | void g_value_set_string (GValue *value, |
253 | const gchar *v_string); |
254 | GLIB_AVAILABLE_IN_ALL |
255 | void g_value_set_static_string (GValue *value, |
256 | const gchar *v_string); |
257 | GLIB_AVAILABLE_IN_2_66 |
258 | void g_value_set_interned_string (GValue *value, |
259 | const gchar *v_string); |
260 | GLIB_AVAILABLE_IN_ALL |
261 | const gchar * g_value_get_string (const GValue *value); |
262 | GLIB_AVAILABLE_IN_ALL |
263 | gchar* g_value_dup_string (const GValue *value); |
264 | GLIB_AVAILABLE_IN_ALL |
265 | void g_value_set_pointer (GValue *value, |
266 | gpointer v_pointer); |
267 | GLIB_AVAILABLE_IN_ALL |
268 | gpointer g_value_get_pointer (const GValue *value); |
269 | GLIB_AVAILABLE_IN_ALL |
270 | GType g_gtype_get_type (void); |
271 | GLIB_AVAILABLE_IN_ALL |
272 | void g_value_set_gtype (GValue *value, |
273 | GType v_gtype); |
274 | GLIB_AVAILABLE_IN_ALL |
275 | GType g_value_get_gtype (const GValue *value); |
276 | GLIB_AVAILABLE_IN_ALL |
277 | void g_value_set_variant (GValue *value, |
278 | GVariant *variant); |
279 | GLIB_AVAILABLE_IN_ALL |
280 | void g_value_take_variant (GValue *value, |
281 | GVariant *variant); |
282 | GLIB_AVAILABLE_IN_ALL |
283 | GVariant* g_value_get_variant (const GValue *value); |
284 | GLIB_AVAILABLE_IN_ALL |
285 | GVariant* g_value_dup_variant (const GValue *value); |
286 | |
287 | |
288 | /* Convenience for registering new pointer types */ |
289 | GLIB_AVAILABLE_IN_ALL |
290 | GType g_pointer_type_register_static (const gchar *name); |
291 | |
292 | /* debugging aid, describe value contents as string */ |
293 | GLIB_AVAILABLE_IN_ALL |
294 | gchar* g_strdup_value_contents (const GValue *value); |
295 | |
296 | |
297 | GLIB_AVAILABLE_IN_ALL |
298 | void g_value_take_string (GValue *value, |
299 | gchar *v_string); |
300 | GLIB_DEPRECATED_FOR(g_value_take_string) |
301 | void g_value_set_string_take_ownership (GValue *value, |
302 | gchar *v_string); |
303 | |
304 | |
305 | /* humpf, need a C representable type name for G_TYPE_STRING */ |
306 | /** |
307 | * gchararray: |
308 | * |
309 | * A C representable type name for %G_TYPE_STRING. |
310 | */ |
311 | typedef gchar* gchararray; |
312 | |
313 | |
314 | G_END_DECLS |
315 | |
316 | #endif /* __G_VALUETYPES_H__ */ |
317 | |