1/* GObject - GLib Type, Object, Parameter and Signal Library 2 * Copyright (C) 2001 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 * gvaluearray.h: GLib array type holding GValues 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_VALUE_ARRAY_H__ 26#define __G_VALUE_ARRAY_H__ 27 28#include <gobject/gvalue.h> 29 30 31G_BEGIN_DECLS 32 33 34/* --- typedefs & structs --- */ 35typedef struct _GValueArray GValueArray; 36/** 37 * GValueArray: 38 * @n_values: number of values contained in the array 39 * @values: array of values 40 * 41 * A #GValueArray contains an array of #GValue elements. 42 */ 43struct _GValueArray 44{ 45 guint n_values; 46 GValue *values; 47 48 /*< private >*/ 49 guint n_prealloced; 50}; 51 52 53/* --- prototypes --- */ 54GValue* g_value_array_get_nth (GValueArray *value_array, 55 guint index_); 56GValueArray* g_value_array_new (guint n_prealloced); 57void g_value_array_free (GValueArray *value_array); 58GValueArray* g_value_array_copy (const GValueArray *value_array); 59GValueArray* g_value_array_prepend (GValueArray *value_array, 60 const GValue *value); 61GValueArray* g_value_array_append (GValueArray *value_array, 62 const GValue *value); 63GValueArray* g_value_array_insert (GValueArray *value_array, 64 guint index_, 65 const GValue *value); 66GValueArray* g_value_array_remove (GValueArray *value_array, 67 guint index_); 68GValueArray* g_value_array_sort (GValueArray *value_array, 69 GCompareFunc compare_func); 70GValueArray* g_value_array_sort_with_data (GValueArray *value_array, 71 GCompareDataFunc compare_func, 72 gpointer user_data); 73 74 75G_END_DECLS 76 77#endif /* __G_VALUE_ARRAY_H__ */ 78