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 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, write to the 16 * Free Software Foundation, Inc., 59 Temple Place, Suite 330, 17 * Boston, MA 02111-1307, USA. 18 * 19 * gvaluetypes.h: GLib default values 20 */ 21#if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION) 22#error "Only <glib-object.h> can be included directly." 23#endif 24 25#ifndef __G_VALUETYPES_H__ 26#define __G_VALUETYPES_H__ 27 28#include <gobject/gvalue.h> 29 30G_BEGIN_DECLS 31 32/* --- type macros --- */ 33/** 34 * G_VALUE_HOLDS_CHAR: 35 * @value: a valid #GValue structure 36 * 37 * Checks whether the given #GValue can hold values of type %G_TYPE_CHAR. 38 * 39 * Returns: %TRUE on success. 40 */ 41#define G_VALUE_HOLDS_CHAR(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_CHAR)) 42/** 43 * G_VALUE_HOLDS_UCHAR: 44 * @value: a valid #GValue structure 45 * 46 * Checks whether the given #GValue can hold values of type %G_TYPE_UCHAR. 47 * 48 * Returns: %TRUE on success. 49 */ 50#define G_VALUE_HOLDS_UCHAR(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_UCHAR)) 51/** 52 * G_VALUE_HOLDS_BOOLEAN: 53 * @value: a valid #GValue structure 54 * 55 * Checks whether the given #GValue can hold values of type %G_TYPE_BOOLEAN. 56 * 57 * Returns: %TRUE on success. 58 */ 59#define G_VALUE_HOLDS_BOOLEAN(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_BOOLEAN)) 60/** 61 * G_VALUE_HOLDS_INT: 62 * @value: a valid #GValue structure 63 * 64 * Checks whether the given #GValue can hold values of type %G_TYPE_INT. 65 * 66 * Returns: %TRUE on success. 67 */ 68#define G_VALUE_HOLDS_INT(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_INT)) 69/** 70 * G_VALUE_HOLDS_UINT: 71 * @value: a valid #GValue structure 72 * 73 * Checks whether the given #GValue can hold values of type %G_TYPE_UINT. 74 * 75 * Returns: %TRUE on success. 76 */ 77#define G_VALUE_HOLDS_UINT(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_UINT)) 78/** 79 * G_VALUE_HOLDS_LONG: 80 * @value: a valid #GValue structure 81 * 82 * Checks whether the given #GValue can hold values of type %G_TYPE_LONG. 83 * 84 * Returns: %TRUE on success. 85 */ 86#define G_VALUE_HOLDS_LONG(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_LONG)) 87/** 88 * G_VALUE_HOLDS_ULONG: 89 * @value: a valid #GValue structure 90 * 91 * Checks whether the given #GValue can hold values of type %G_TYPE_ULONG. 92 * 93 * Returns: %TRUE on success. 94 */ 95#define G_VALUE_HOLDS_ULONG(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_ULONG)) 96/** 97 * G_VALUE_HOLDS_INT64: 98 * @value: a valid #GValue structure 99 * 100 * Checks whether the given #GValue can hold values of type %G_TYPE_INT64. 101 * 102 * Returns: %TRUE on success. 103 */ 104#define G_VALUE_HOLDS_INT64(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_INT64)) 105/** 106 * G_VALUE_HOLDS_UINT64: 107 * @value: a valid #GValue structure 108 * 109 * Checks whether the given #GValue can hold values of type %G_TYPE_UINT64. 110 * 111 * Returns: %TRUE on success. 112 */ 113#define G_VALUE_HOLDS_UINT64(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_UINT64)) 114/** 115 * G_VALUE_HOLDS_FLOAT: 116 * @value: a valid #GValue structure 117 * 118 * Checks whether the given #GValue can hold values of type %G_TYPE_FLOAT. 119 * 120 * Returns: %TRUE on success. 121 */ 122#define G_VALUE_HOLDS_FLOAT(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_FLOAT)) 123/** 124 * G_VALUE_HOLDS_DOUBLE: 125 * @value: a valid #GValue structure 126 * 127 * Checks whether the given #GValue can hold values of type %G_TYPE_DOUBLE. 128 * 129 * Returns: %TRUE on success. 130 */ 131#define G_VALUE_HOLDS_DOUBLE(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_DOUBLE)) 132/** 133 * G_VALUE_HOLDS_STRING: 134 * @value: a valid #GValue structure 135 * 136 * Checks whether the given #GValue can hold values of type %G_TYPE_STRING. 137 * 138 * Returns: %TRUE on success. 139 */ 140#define G_VALUE_HOLDS_STRING(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_STRING)) 141/** 142 * G_VALUE_HOLDS_POINTER: 143 * @value: a valid #GValue structure 144 * 145 * Checks whether the given #GValue can hold values of type %G_TYPE_POINTER. 146 * 147 * Returns: %TRUE on success. 148 */ 149#define G_VALUE_HOLDS_POINTER(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_POINTER)) 150/** 151 * G_TYPE_GTYPE: 152 * 153 * The type for #GType. 154 */ 155#define G_TYPE_GTYPE (g_gtype_get_type()) 156/** 157 * G_VALUE_HOLDS_GTYPE: 158 * @value: a valid #GValue structure 159 * 160 * Checks whether the given #GValue can hold values of type %G_TYPE_GTYPE. 161 * 162 * Since: 2.12 163 * Returns: %TRUE on success. 164 */ 165#define G_VALUE_HOLDS_GTYPE(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_GTYPE)) 166 167 168/* --- prototypes --- */ 169void g_value_set_char (GValue *value, 170 gchar v_char); 171gchar g_value_get_char (const GValue *value); 172void g_value_set_uchar (GValue *value, 173 guchar v_uchar); 174guchar g_value_get_uchar (const GValue *value); 175void g_value_set_boolean (GValue *value, 176 gboolean v_boolean); 177gboolean g_value_get_boolean (const GValue *value); 178void g_value_set_int (GValue *value, 179 gint v_int); 180gint g_value_get_int (const GValue *value); 181void g_value_set_uint (GValue *value, 182 guint v_uint); 183guint g_value_get_uint (const GValue *value); 184void g_value_set_long (GValue *value, 185 glong v_long); 186glong g_value_get_long (const GValue *value); 187void g_value_set_ulong (GValue *value, 188 gulong v_ulong); 189gulong g_value_get_ulong (const GValue *value); 190void g_value_set_int64 (GValue *value, 191 gint64 v_int64); 192gint64 g_value_get_int64 (const GValue *value); 193void g_value_set_uint64 (GValue *value, 194 guint64 v_uint64); 195guint64 g_value_get_uint64 (const GValue *value); 196void g_value_set_float (GValue *value, 197 gfloat v_float); 198gfloat g_value_get_float (const GValue *value); 199void g_value_set_double (GValue *value, 200 gdouble v_double); 201gdouble g_value_get_double (const GValue *value); 202void g_value_set_string (GValue *value, 203 const gchar *v_string); 204void g_value_set_static_string (GValue *value, 205 const gchar *v_string); 206G_CONST_RETURN gchar* g_value_get_string (const GValue *value); 207gchar* g_value_dup_string (const GValue *value); 208void g_value_set_pointer (GValue *value, 209 gpointer v_pointer); 210gpointer g_value_get_pointer (const GValue *value); 211GType g_gtype_get_type (void); 212void g_value_set_gtype (GValue *value, 213 GType v_gtype); 214GType g_value_get_gtype (const GValue *value); 215 216 217/* Convenience for registering new pointer types */ 218GType g_pointer_type_register_static (const gchar *name); 219 220/* debugging aid, describe value contents as string */ 221gchar* g_strdup_value_contents (const GValue *value); 222 223 224void g_value_take_string (GValue *value, 225 gchar *v_string); 226#ifndef G_DISABLE_DEPRECATED 227void g_value_set_string_take_ownership (GValue *value, 228 gchar *v_string); 229#endif 230 231 232/* humpf, need a C representable type name for G_TYPE_STRING */ 233/** 234 * gchararray: 235 * 236 * A C representable type name for #G_TYPE_STRING. 237 */ 238typedef gchar* gchararray; 239 240 241G_END_DECLS 242 243#endif /* __G_VALUETYPES_H__ */ 244