static VALUE rbclt_model_get_n_columns (VALUE self) { ClutterModel *model = CLUTTER_MODEL (RVAL2GOBJ (self)); return UINT2NUM (clutter_model_get_n_columns (model)); }
static ClutterModelIter * clutter_list_model_insert_row (ClutterModel *model, gint index_) { ClutterListModel *model_default = CLUTTER_LIST_MODEL (model); GSequence *sequence = model_default->priv->sequence; ClutterListModelIter *retval; guint n_columns, i, pos; GValueArray *array; GSequenceIter *seq_iter; n_columns = clutter_model_get_n_columns (model); array = g_value_array_new (n_columns); for (i = 0; i < n_columns; i++) { GValue *value = NULL; g_value_array_append (array, NULL); value = g_value_array_get_nth (array, i); g_value_init (value, clutter_model_get_column_type (model, i)); } if (index_ < 0) { seq_iter = g_sequence_append (sequence, array); pos = g_sequence_get_length (sequence) - 1; } else if (index_ == 0) { seq_iter = g_sequence_prepend (sequence, array); pos = 0; } else { seq_iter = g_sequence_get_iter_at_pos (sequence, index_); seq_iter = g_sequence_insert_before (seq_iter, array); pos = index_; } retval = g_object_new (CLUTTER_TYPE_LIST_MODEL_ITER, "model", model, "row", pos, NULL); retval->seq_iter = seq_iter; return CLUTTER_MODEL_ITER (retval); }