diff -r e4d67989cc36 -r 47c74d1534e1 glib/gobject/gvaluetypes.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/glib/gobject/gvaluetypes.h Fri Apr 16 16:46:38 2010 +0300 @@ -0,0 +1,243 @@ +/* GObject - GLib Type, Object, Parameter and Signal Library + * Copyright (C) 1997-1999, 2000-2001 Tim Janik and Red Hat, Inc. + * Portions copyright (c) 2006-2009 Nokia Corporation. All rights reserved. + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307, USA. + * + * gvaluetypes.h: GLib default values + */ +#if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __G_VALUETYPES_H__ +#define __G_VALUETYPES_H__ + +#include + +G_BEGIN_DECLS + +/* --- type macros --- */ +/** + * G_VALUE_HOLDS_CHAR: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values of type %G_TYPE_CHAR. + * + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_CHAR(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_CHAR)) +/** + * G_VALUE_HOLDS_UCHAR: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values of type %G_TYPE_UCHAR. + * + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_UCHAR(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_UCHAR)) +/** + * G_VALUE_HOLDS_BOOLEAN: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values of type %G_TYPE_BOOLEAN. + * + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_BOOLEAN(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_BOOLEAN)) +/** + * G_VALUE_HOLDS_INT: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values of type %G_TYPE_INT. + * + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_INT(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_INT)) +/** + * G_VALUE_HOLDS_UINT: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values of type %G_TYPE_UINT. + * + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_UINT(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_UINT)) +/** + * G_VALUE_HOLDS_LONG: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values of type %G_TYPE_LONG. + * + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_LONG(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_LONG)) +/** + * G_VALUE_HOLDS_ULONG: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values of type %G_TYPE_ULONG. + * + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_ULONG(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_ULONG)) +/** + * G_VALUE_HOLDS_INT64: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values of type %G_TYPE_INT64. + * + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_INT64(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_INT64)) +/** + * G_VALUE_HOLDS_UINT64: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values of type %G_TYPE_UINT64. + * + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_UINT64(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_UINT64)) +/** + * G_VALUE_HOLDS_FLOAT: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values of type %G_TYPE_FLOAT. + * + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_FLOAT(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_FLOAT)) +/** + * G_VALUE_HOLDS_DOUBLE: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values of type %G_TYPE_DOUBLE. + * + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_DOUBLE(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_DOUBLE)) +/** + * G_VALUE_HOLDS_STRING: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values of type %G_TYPE_STRING. + * + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_STRING(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_STRING)) +/** + * G_VALUE_HOLDS_POINTER: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values of type %G_TYPE_POINTER. + * + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_POINTER(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_POINTER)) +/** + * G_TYPE_GTYPE: + * + * The type for #GType. + */ +#define G_TYPE_GTYPE (g_gtype_get_type()) +/** + * G_VALUE_HOLDS_GTYPE: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values of type %G_TYPE_GTYPE. + * + * Since: 2.12 + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_GTYPE(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_GTYPE)) + + +/* --- prototypes --- */ +IMPORT_C void g_value_set_char (GValue *value, + gchar v_char); +IMPORT_C gchar g_value_get_char (const GValue *value); +IMPORT_C void g_value_set_uchar (GValue *value, + guchar v_uchar); +IMPORT_C guchar g_value_get_uchar (const GValue *value); +IMPORT_C void g_value_set_boolean (GValue *value, + gboolean v_boolean); +IMPORT_C gboolean g_value_get_boolean (const GValue *value); +IMPORT_C void g_value_set_int (GValue *value, + gint v_int); +IMPORT_C gint g_value_get_int (const GValue *value); +IMPORT_C void g_value_set_uint (GValue *value, + guint v_uint); +IMPORT_C guint g_value_get_uint (const GValue *value); +IMPORT_C void g_value_set_long (GValue *value, + glong v_long); +IMPORT_C glong g_value_get_long (const GValue *value); +IMPORT_C void g_value_set_ulong (GValue *value, + gulong v_ulong); +IMPORT_C gulong g_value_get_ulong (const GValue *value); +IMPORT_C void g_value_set_int64 (GValue *value, + gint64 v_int64); +IMPORT_C gint64 g_value_get_int64 (const GValue *value); +IMPORT_C void g_value_set_uint64 (GValue *value, + guint64 v_uint64); +IMPORT_C guint64 g_value_get_uint64 (const GValue *value); +IMPORT_C void g_value_set_float (GValue *value, + gfloat v_float); +IMPORT_C gfloat g_value_get_float (const GValue *value); +IMPORT_C void g_value_set_double (GValue *value, + gdouble v_double); +IMPORT_C gdouble g_value_get_double (const GValue *value); +IMPORT_C void g_value_set_string (GValue *value, + const gchar *v_string); +IMPORT_C void g_value_set_static_string (GValue *value, + const gchar *v_string); +IMPORT_C G_CONST_RETURN gchar* g_value_get_string (const GValue *value); +IMPORT_C gchar* g_value_dup_string (const GValue *value); +IMPORT_C void g_value_set_pointer (GValue *value, + gpointer v_pointer); +IMPORT_C gpointer g_value_get_pointer (const GValue *value); +IMPORT_C GType g_gtype_get_type (void); +IMPORT_C void g_value_set_gtype (GValue *value, + GType v_gtype); +IMPORT_C GType g_value_get_gtype (const GValue *value); + + +/* Convenience for registering new pointer types */ +IMPORT_C GType g_pointer_type_register_static (const gchar *name); + +/* debugging aid, describe value contents as string */ +IMPORT_C gchar* g_strdup_value_contents (const GValue *value); + + +IMPORT_C void g_value_take_string (GValue *value, + gchar *v_string); +#ifndef G_DISABLE_DEPRECATED +IMPORT_C void g_value_set_string_take_ownership (GValue *value, + gchar *v_string); +#endif + + +/* humpf, need a C representable type name for G_TYPE_STRING */ +/** + * gchararray: + * + * A C representable type name for #G_TYPE_STRING. + */ +typedef gchar* gchararray; + + +G_END_DECLS + +#endif /* __G_VALUETYPES_H__ */