static VALUE treerowref_initialize(int argc, VALUE *argv, VALUE self) { VALUE proxy, model, path; GtkTreeRowReference* ref; if (argc == 3){ rb_scan_args(argc, argv, "3", &proxy, &model, &path); G_CHILD_SET(self, id_proxy, proxy); ref = gtk_tree_row_reference_new_proxy(RVAL2GOBJ(proxy), GTK_TREE_MODEL(RVAL2GOBJ(model)), RVAL2GTKTREEPATH(path)); } else { rb_scan_args(argc, argv, "2", &model, &path); ref = gtk_tree_row_reference_new(GTK_TREE_MODEL(RVAL2GOBJ(model)), RVAL2GTKTREEPATH(path)); } if (ref == NULL) rb_raise(rb_eArgError, "Invalid arguments were passed."); G_CHILD_SET(self, id_model, model); G_CHILD_SET(self, id_path, path); G_INITIALIZE(self, ref); return Qnil; }
static VALUE rg_convert_path_to_child_path(VALUE self, VALUE filter_path) { return GTKTREEPATH2RVAL(gtk_tree_model_filter_convert_path_to_child_path( _SELF(self), RVAL2GTKTREEPATH(filter_path))); }
static VALUE iview_unselect_path(VALUE self, VALUE path) { G_CHILD_UNSET(self, id_select_path); gtk_icon_view_unselect_path(_SELF(self), RVAL2GTKTREEPATH(path)); return self; }
static VALUE rg_expand_row(VALUE self, VALUE path, VALUE open_all) { return CBOOL2RVAL(gtk_tree_view_expand_row(_SELF(self), RVAL2GTKTREEPATH(path), RVAL2CBOOL(open_all))); }
static VALUE iview_set_cursor(VALUE self, VALUE path, VALUE cell, VALUE start_editing) { gtk_icon_view_set_cursor(_SELF(self), RVAL2GTKTREEPATH(path), NIL_P(cell) ? NULL : RVAL2GOBJ(cell), RVAL2CBOOL(start_editing)); return self; }
static VALUE rg_set_drag_dest_row(VALUE self, VALUE path, VALUE pos) { gtk_tree_view_set_drag_dest_row(_SELF(self), NIL_P(path)?NULL:RVAL2GTKTREEPATH(path), RVAL2GENUM(pos, GTK_TYPE_TREE_VIEW_DROP_POSITION)); return self; }
static VALUE cview_set_displayed_row(VALUE self, VALUE path) { gtk_cell_view_set_displayed_row(_SELF(self), NIL_P(path) ? (GtkTreePath*)NULL : RVAL2GTKTREEPATH(path)); return self; }
static VALUE rg_set_cursor(VALUE self, VALUE path, VALUE focus_column, VALUE start_editing) { gtk_tree_view_set_cursor(_SELF(self), RVAL2GTKTREEPATH(path), NIL_P(focus_column) ? NULL : TREEVIEW_COL(focus_column), RVAL2CBOOL(start_editing)); return self; }
static VALUE iview_set_drag_dest_item(VALUE self, VALUE path, VALUE pos) { gtk_icon_view_set_drag_dest_item(_SELF(self), NIL_P(path) ? NULL : RVAL2GTKTREEPATH(path), RVAL2GENUM(pos, GTK_TYPE_ICON_VIEW_DROP_POSITION)); return self; }
static VALUE rg_set_cursor_on_cell(VALUE self, VALUE path, VALUE focus_column, VALUE focus_cell, VALUE start_editing) { gtk_tree_view_set_cursor_on_cell(_SELF(self), RVAL2GTKTREEPATH(path), NIL_P(focus_column) ? NULL : TREEVIEW_COL(focus_column), NIL_P(focus_cell) ? NULL : GTK_CELL_RENDERER(RVAL2GOBJ(focus_cell)), RVAL2CBOOL(start_editing)); return self; }
static VALUE rg_get_background_area(VALUE self, VALUE path, VALUE column) { GdkRectangle rect; gtk_tree_view_get_background_area(_SELF(self), NIL_P(path) ? NULL : RVAL2GTKTREEPATH(path), NIL_P(column) ? NULL : TREEVIEW_COL(column), &rect); return BOXED2RVAL(&rect, GDK_TYPE_RECTANGLE); }
static VALUE rg_scroll_to_cell(VALUE self, VALUE path, VALUE column, VALUE use_align, VALUE row_align, VALUE col_align) { gtk_tree_view_scroll_to_cell(_SELF(self), NIL_P(path) ? NULL : RVAL2GTKTREEPATH(path), NIL_P(column) ? NULL : TREEVIEW_COL(column), RVAL2CBOOL(use_align), NUM2DBL(row_align), NUM2DBL(col_align)); return self; }
static VALUE iview_scroll_to_path(VALUE self, VALUE path, VALUE use_align, VALUE row_align, VALUE col_align) { gtk_icon_view_scroll_to_path(_SELF(self), RVAL2GTKTREEPATH(path), RVAL2CBOOL(use_align), NUM2DBL(row_align), NUM2DBL(col_align)); return self; }
static VALUE cview_get_size_of_row(VALUE self, VALUE path) { GtkRequisition req; gboolean ret = gtk_cell_view_get_size_of_row(_SELF(self), RVAL2GTKTREEPATH(path), &req); if (! ret) rb_raise(rb_eRuntimeError, "Can't get the value"); return rb_ary_assoc(INT2NUM(req.width), INT2NUM(req.height)); }
static VALUE treerowref_s_reordered(VALUE self, VALUE proxy, VALUE path, VALUE iter, VALUE new_orders) { gint i, len; gint* orders; Check_Type(new_orders, T_ARRAY); len = RARRAY_LEN(new_orders); orders = ALLOCA_N(gint, len); for (i = 0; i < len; i++) { orders[i] = RARRAY_PTR(new_orders)[i]; } gtk_tree_row_reference_reordered(RVAL2GOBJ(proxy), RVAL2GTKTREEPATH(path), RVAL2GTKTREEITER(iter), orders); return self; }
static VALUE rg_initialize(int argc, VALUE *argv, VALUE self) { VALUE child_model, root; GtkTreeModel* widget; rb_scan_args(argc, argv, "11", &child_model, &root); G_CHILD_SET(self, id_child_model, child_model); if (NIL_P(root)){ widget = gtk_tree_model_filter_new(GTK_TREE_MODEL(RVAL2GOBJ(child_model)), (GtkTreePath*)NULL); } else { G_CHILD_SET(self, id_root, root); widget = gtk_tree_model_filter_new(GTK_TREE_MODEL(RVAL2GOBJ(child_model)), (GtkTreePath*)RVAL2GTKTREEPATH(root)); } G_INITIALIZE(self, widget); return Qnil; }
static VALUE rg_get_iter(VALUE self, VALUE path) { VALUE val = Qnil; GtkTreeIter iter; gboolean ret; GtkTreeModel* model = _SELF(self); if (TYPE(path) == T_STRING){ ret = gtk_tree_model_get_iter_from_string(model, &iter, RVAL2CSTR(path)); } else { ret = gtk_tree_model_get_iter(model, &iter, RVAL2GTKTREEPATH(path)); } iter.user_data3 = model; if (ret) { val = GTKTREEITER2RVAL(&iter); G_CHILD_ADD(self, val); } return val; }
static VALUE rg_rows_reordered(VALUE self, VALUE rbpath, VALUE rbiter, VALUE rbnew_order) { GtkTreeModel *proxy = _SELF(self); GtkTreePath *path = RVAL2GTKTREEPATH(rbpath); GtkTreeIter *iter = RVAL2GTKTREEITER(rbiter); gint columns = gtk_tree_model_get_n_columns(proxy); long n; gint *new_order = RVAL2GINTS(rbnew_order, n); if (n != columns) { g_free(new_order); rb_raise(rb_eArgError, "new order array must contain same number of elements as the number of columns in the store: %ld != %d", n, columns); } gtk_tree_model_rows_reordered(proxy, path, iter, new_order); g_free(new_order); return self; }
static VALUE rg_row_has_child_toggled(VALUE self, VALUE path, VALUE iter) { gtk_tree_model_row_has_child_toggled(_SELF(self), RVAL2GTKTREEPATH(path), RVAL2GTKTREEITER(iter)); return self; }
static VALUE iview_create_drag_icon(VALUE self, VALUE path) { return GOBJ2RVAL(gtk_icon_view_create_drag_icon(_SELF(self), RVAL2GTKTREEPATH(path))); }
static VALUE iview_item_activated(VALUE self, VALUE path) { gtk_icon_view_item_activated(_SELF(self), RVAL2GTKTREEPATH(path)); return self; }
static VALUE iview_path_is_selected(VALUE self, VALUE path) { return CBOOL2RVAL(gtk_icon_view_path_is_selected(_SELF(self), RVAL2GTKTREEPATH(path))); }
static VALUE rg_expand_to_path(VALUE self, VALUE path) { gtk_tree_view_expand_to_path(_SELF(self), RVAL2GTKTREEPATH(path)); return self; }
static VALUE rg_collapse_row(VALUE self, VALUE path) { return CBOOL2RVAL(gtk_tree_view_collapse_row(_SELF(self), RVAL2GTKTREEPATH(path))); }
static VALUE rg_row_expanded_p(VALUE self, VALUE path) { return CBOOL2RVAL(gtk_tree_view_row_expanded(_SELF(self), RVAL2GTKTREEPATH(path))); }
static VALUE rg_row_deleted(VALUE self, VALUE path) { gtk_tree_model_row_deleted(_SELF(self), RVAL2GTKTREEPATH(path)); return self; }
static VALUE treerowref_s_deleted(VALUE self, VALUE proxy, VALUE path) { gtk_tree_row_reference_deleted(RVAL2GOBJ(proxy), RVAL2GTKTREEPATH(path)); return self; }