ClutterModelIter
3
CLUTTER Library

# ClutterModelIter

Iterates through a model

## Synopsis

                        ClutterModelIter;
                        ClutterModelIterClass;
    ClutterModelIter *  clutter_model_iter_copy             (ClutterModelIter *iter);

    void                clutter_model_iter_get              (ClutterModelIter *iter,
                                                             ...);
    void                clutter_model_iter_get_valist       (ClutterModelIter *iter,
                                                             va_list args);
    void                clutter_model_iter_get_value        (ClutterModelIter *iter,
                                                             guint column,
                                                             GValue *value);
    void                clutter_model_iter_set              (ClutterModelIter *iter,
                                                             ...);
    void                clutter_model_iter_set_valist       (ClutterModelIter *iter,
                                                             va_list args);
    void                clutter_model_iter_set_value        (ClutterModelIter *iter,
                                                             guint column,
                                                             const GValue *value);

    gboolean            clutter_model_iter_is_first         (ClutterModelIter *iter);
    gboolean            clutter_model_iter_is_last          (ClutterModelIter *iter);
    ClutterModelIter *  clutter_model_iter_next             (ClutterModelIter *iter);
    ClutterModelIter *  clutter_model_iter_prev             (ClutterModelIter *iter);

    ClutterModel *      clutter_model_iter_get_model        (ClutterModelIter *iter);
    guint               clutter_model_iter_get_row          (ClutterModelIter *iter);

## Object Hierarchy

      GObject
       +----ClutterModelIter

## Properties

      "model"                    ClutterModel*         : Read / Write
      "row"                      guint                 : Read / Write

## Description

ClutterModelIter is an object used for iterating through all the rows of a ClutterModel. It allows setting and getting values on the row which is currently pointing at.

A ClutterModelIter represents a position between two elements of the sequence. For example, the iterator returned by `clutter_model_get_first_iter()` represents the gap immediately before the first row of the ClutterModel, and the iterator returned by `clutter_model_get_last_iter()` represents the gap immediately after the last row.

A ClutterModelIter can only be created by a ClutterModel implementation and it is valid as long as the model does not change.

ClutterModelIter is available since Clutter 0.6

## Details

### ClutterModelIter

    typedef struct _ClutterModelIter ClutterModelIter;

Base class for list models iters. The ClutterModelIter structure contains only private data and should be manipulated using the provided API.

Since 0.6

### ClutterModelIterClass

    typedef struct {
      /* vtable not signals */
      void              (* get_value) (ClutterModelIter *iter,
                                       guint             column,
                                       GValue           *value);
      void              (* set_value) (ClutterModelIter *iter,
                                       guint             column,
                                       const GValue     *value);

      gboolean          (* is_first)  (ClutterModelIter *iter);
      gboolean          (* is_last)   (ClutterModelIter *iter);

      ClutterModelIter *(* next)      (ClutterModelIter *iter);
      ClutterModelIter *(* prev)      (ClutterModelIter *iter);

      ClutterModel *    (* get_model) (ClutterModelIter *iter);
      guint             (* get_row)   (ClutterModelIter *iter);

      ClutterModelIter *(* copy)      (ClutterModelIter *iter);
    } ClutterModelIterClass;

Class for ClutterModelIter instances.

get_value ()

  Virtual function for retrieving the value at the given column of the row pointed by the iterator

set_value ()

  Virtual function for setting the value at the given column of the row pointer by the iterator

is_first ()

  Virtual function for knowing whether the iterator points at the first row in the model

is_last ()

  Virtual function for knowing whether the iterator points at the last row in the model

next ()

  Virtual function for moving the iterator to the following row in the model

prev ()

  Virtual function for moving the iterator toe the previous row in the model

get_model ()

  Virtual function for getting the model to which the iterator belongs to

get_row ()

  Virtual function for getting the row to which the iterator points

copy ()

  Virtual function for copying a ClutterModelIter.

Since 0.6

### clutter_model_iter_copy ()

    ClutterModelIter *  clutter_model_iter_copy             (ClutterModelIter *iter);

Copies the passed iterator.

`iter` :

  a ClutterModelIter

Returns :

  a copy of the iterator, or `NULL`

Since 0.8

### clutter_model_iter_get ()

    void                clutter_model_iter_get              (ClutterModelIter *iter,
                                                             ...);

Gets the value of one or more cells in the row referenced by `iter`. The variable argument list should contain integer column numbers, each column column number followed by a place to store the value being retrieved. The list is terminated by a -1.

For example, to get a value from column 0 with type `G_TYPE_STRING` use:

      clutter_model_iter_get (iter, 0, &place_string_here, -1);

where place_string_here is a gchar* to be filled with the string. If appropriate, the returned values have to be freed or unreferenced.

`iter` :

  a ClutterModelIter

`...` :

  a list of column/return location pairs, terminated by -1

Since 0.6

### clutter_model_iter_get_valist ()

    void                clutter_model_iter_get_valist       (ClutterModelIter *iter,
                                                             va_list args);

See `clutter_model_iter_get()`. This version takes a va_list for language bindings.

`iter` :

  a ClutterModelIter

`args` :

  a list of column/return location pairs, terminated by -1

Since 0.6

### clutter_model_iter_get_value ()

    void                clutter_model_iter_get_value        (ClutterModelIter *iter,
                                                             guint column,
                                                             GValue *value);

Sets an initializes `value` to that at `column`. When done with `value`, `g_value_unset()` needs to be called to free any allocated memory.

`iter` :

  a ClutterModelIter

`column` :

  column number to retrieve the value from

`value` :

  an empty GValue to set

Since 0.6

### clutter_model_iter_set ()

    void                clutter_model_iter_set              (ClutterModelIter *iter,
                                                             ...);

Sets the value of one or more cells in the row referenced by `iter`. The variable argument list should contain integer column numbers, each column column number followed by the value to be set. The list is terminated by a -1.

For example, to set column 0 with type `G_TYPE_STRING`, use:

      clutter_model_iter_set (iter, 0, "foo", -1);

`iter` :

  a ClutterModelIter

`...` :

  a list of column/return location pairs, terminated by -1

Since 0.6

### clutter_model_iter_set_valist ()

    void                clutter_model_iter_set_valist       (ClutterModelIter *iter,
                                                             va_list args);

See `clutter_model_iter_set()`; this version takes a va_list for language bindings.

`iter` :

  a ClutterModelIter

`args` :

  va_list of column/value pairs, terminiated by -1

Since 0.6

### clutter_model_iter_set_value ()

    void                clutter_model_iter_set_value        (ClutterModelIter *iter,
                                                             guint column,
                                                             const GValue *value);

Sets the data in the cell specified by `iter` and `column`. The type of `value` must be convertable to the type of the column.

`iter` :

  a ClutterModelIter

`column` :

  column number to retrieve the value from

`value` :

  new value for the cell

Since 0.6

### clutter_model_iter_is_first ()

    gboolean            clutter_model_iter_is_first         (ClutterModelIter *iter);

Gets whether the current iterator is at the beginning of the model to which it belongs.

`iter` :

  a ClutterModelIter

Returns :

  TRUE if `iter` is the first iter in the filtered model

Since 0.6

### clutter_model_iter_is_last ()

    gboolean            clutter_model_iter_is_last          (ClutterModelIter *iter);

Gets whether the iterator is at the end of the model to which it belongs.

`iter` :

  a ClutterModelIter

Returns :

  TRUE if `iter` is the last iter in the filtered model.

Since 0.6

### clutter_model_iter_next ()

    ClutterModelIter *  clutter_model_iter_next             (ClutterModelIter *iter);

Updates the `iter` to point at the next position in the model. The model implementation should take into account the presence of a filter function.

`iter` :

  a ClutterModelIter

Returns :

  transfer none. transfer none.

Since 0.6

### clutter_model_iter_prev ()

    ClutterModelIter *  clutter_model_iter_prev             (ClutterModelIter *iter);

Sets the `iter` to point at the previous position in the model. The model implementation should take into account the presence of a filter function.

`iter` :

  a ClutterModelIter

Returns :

  transfer none. transfer none.

Since 0.6

### clutter_model_iter_get_model ()

    ClutterModel *      clutter_model_iter_get_model        (ClutterModelIter *iter);

Retrieves a pointer to the ClutterModel that this iter is part of.

`iter` :

  a ClutterModelIter

Returns :

  a pointer to a ClutterModel.. transfer none.

Since 0.6

### clutter_model_iter_get_row ()

    guint               clutter_model_iter_get_row          (ClutterModelIter *iter);

Retrieves the position of the row that the `iter` points to.

`iter` :

  a ClutterModelIter

Returns :

  the position of the `iter` in the model

Since 0.6

## Property Details

### The `"model"` property

      "model"                    ClutterModel*         : Read / Write

A reference to the ClutterModel that this iter belongs to.

Since 0.6

### The `"row"` property

      "row"                      guint                 : Read / Write

The row number to which this iter points to.

Default value: 0

Since 0.6