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 31 G_BEGIN_DECLS 32 33 34 /* --- typedefs & structs --- */ 35 typedef 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 */ 43 struct _GValueArray 44 { 45 guint n_values; 46 GValue *values; 47 48 /*< private >*/ 49 guint n_prealloced; 50 }; 51 52 53 /* --- prototypes --- */ 54 GValue* g_value_array_get_nth (GValueArray *value_array, 55 guint index_); 56 GValueArray* g_value_array_new (guint n_prealloced); 57 void g_value_array_free (GValueArray *value_array); 58 GValueArray* g_value_array_copy (const GValueArray *value_array); 59 GValueArray* g_value_array_prepend (GValueArray *value_array, 60 const GValue *value); 61 GValueArray* g_value_array_append (GValueArray *value_array, 62 const GValue *value); 63 GValueArray* g_value_array_insert (GValueArray *value_array, 64 guint index_, 65 const GValue *value); 66 GValueArray* g_value_array_remove (GValueArray *value_array, 67 guint index_); 68 GValueArray* g_value_array_sort (GValueArray *value_array, 69 GCompareFunc compare_func); 70 GValueArray* g_value_array_sort_with_data (GValueArray *value_array, 71 GCompareDataFunc compare_func, 72 gpointer user_data); 73 74 75 G_END_DECLS 76 77 #endif /* __G_VALUE_ARRAY_H__ */ 78