## GimpValueArray

GimpValueArray — A container structure to maintain an array of generic values

## Functions

GimpValueArray * | gimp_value_array_new ()
GimpValueArray * | gimp_value_array_ref ()
void | gimp_value_array_unref ()
gint | gimp_value_array_length ()
GValue * | gimp_value_array_index ()
GimpValueArray * | gimp_value_array_prepend ()
GimpValueArray * | gimp_value_array_append ()
GimpValueArray * | gimp_value_array_insert ()
GimpValueArray * | gimp_value_array_remove ()
void | gimp_value_array_truncate ()
GParamSpec * | gimp_param_spec_value_array ()

## Types and Values

| GimpValueArray
struct | GimpParamSpecValueArray

## Description

The prime purpose of a GimpValueArray is for it to be used as an object property that holds an array of values. A GimpValueArray wraps an array of GValue elements in order for it to be used as a boxed type through `GIMP_TYPE_VALUE_ARRAY`.

## Functions

### gimp_value_array_new ()

    GimpValueArray *
    gimp_value_array_new (gint n_prealloced);

Allocate and initialize a new GimpValueArray, optionally preserve space for `n_prealloced` elements. New arrays always contain 0 elements, regardless of the value of `n_prealloced` .

#### Parameters

n_prealloced | number of values to preallocate space for |

#### Returns

a newly allocated GimpValueArray with 0 values

Since: 2.10

### gimp_value_array_ref ()

    GimpValueArray *
    gimp_value_array_ref (GimpValueArray *value_array);

Adds a reference to a GimpValueArray.

#### Parameters

value_array | GimpValueArray to ref |

#### Returns

the same `value_array`

Since: 2.10

### gimp_value_array_unref ()

    void
    gimp_value_array_unref (GimpValueArray *value_array);

Unref a GimpValueArray. If the reference count drops to zero, the array including its contents are freed.

#### Parameters

value_array | GimpValueArray to unref |

Since: 2.10

### gimp_value_array_length ()

    gint
    gimp_value_array_length (const GimpValueArray *value_array);

### gimp_value_array_index ()

    GValue *
    gimp_value_array_index (const GimpValueArray *value_array,
                            gint index);

Return a pointer to the value at `index` contained in `value_array` .

#### Parameters

value_array | GimpValueArray to get a value from |
index | index of the value of interest |

#### Returns

pointer to a value at `index` in `value_array` .

[transfer none]

Since: 2.10

### gimp_value_array_prepend ()

    GimpValueArray *
    gimp_value_array_prepend (GimpValueArray *value_array,
                              const GValue *value);

Insert a copy of `value` as first element of `value_array` . If `value` is `NULL`, an uninitialized value is prepended.

#### Parameters

value_array | GimpValueArray to add an element to |
value | GValue to copy into GimpValueArray, or `NULL`. | [allow-none]

#### Returns

the GimpValueArray passed in as `value_array` .

[transfer none]

Since: 2.10

### gimp_value_array_append ()

    GimpValueArray *
    gimp_value_array_append (GimpValueArray *value_array,
                             const GValue *value);

Insert a copy of `value` as last element of `value_array` . If `value` is `NULL`, an uninitialized value is appended.

#### Parameters

value_array | GimpValueArray to add an element to |
value | GValue to copy into GimpValueArray, or `NULL`. | [allow-none]

#### Returns

the GimpValueArray passed in as `value_array` .

[transfer none]

Since: 2.10

### gimp_value_array_insert ()

    GimpValueArray *
    gimp_value_array_insert (GimpValueArray *value_array,
                             gint index,
                             const GValue *value);

Insert a copy of `value` at specified position into `value_array` . If `value` is `NULL`, an uninitialized value is inserted.

#### Parameters

value_array | GimpValueArray to add an element to |
index | insertion position, must be <= `gimp_value_array_length()` |
value | GValue to copy into GimpValueArray, or `NULL`. | [allow-none]

#### Returns

the GimpValueArray passed in as `value_array` .

[transfer none]

Since: 2.10

### gimp_value_array_remove ()

    GimpValueArray *
    gimp_value_array_remove (GimpValueArray *value_array,
                             gint index);

Remove the value at position `index` from `value_array` .

#### Parameters

value_array | GimpValueArray to remove an element from |
index | position of value to remove, which must be less than `gimp_value_array_length()` |

#### Returns

the GimpValueArray passed in as `value_array` .

[transfer none]

Since: 2.10

### gimp_value_array_truncate ()

    void
    gimp_value_array_truncate (GimpValueArray *value_array,
                               gint n_values);

### gimp_param_spec_value_array ()

    GParamSpec *
    gimp_param_spec_value_array (const gchar *name,
                                 const gchar *nick,
                                 const gchar *blurb,
                                 GParamSpec *element_spec,
                                 GParamFlags flags);

## Types and Values

### GimpValueArray

    typedef struct _GimpValueArray GimpValueArray;

A GimpValueArray contains an array of GValue elements.

Since: 2.10

### struct GimpParamSpecValueArray

    struct GimpParamSpecValueArray {
      GParamSpec  parent_instance;
      GParamSpec *element_spec;
      gint        fixed_n_elements;
    };

A GParamSpec derived structure that contains the meta data for value array properties.

#### Members

GParamSpec *`element_spec`; | the GParamSpec of the array elements |
gint `fixed_n_elements`; | default length of the array |

## See Also

GValue, GParamSpecValueArray, `gimp_param_spec_value_array()`