IterNthChild() public method

public IterNthChild ( Gtk &iter, int n ) : bool
iter Gtk
n int
return bool
Beispiel #1
0
    private Gtk.TreeIter SetRowValue(Gtk.TreeIter parent, int childIndx,
                                     string cell1, string cell2)
    {
        Gtk.TreeIter child;
        if (itemStore.IterNthChild(out child, parent, childIndx))
        {
            itemStore.SetValue(child, 0, cell1);
            itemStore.SetValue(child, 1, cell2);
        }
        else
        {
            child = itemStore.AppendValues(parent, cell1, cell2);
        }

        return(child);
    }
Beispiel #2
0
        protected Gtk.TreeIter SetRowValue(Gtk.TreeStore store, Gtk.TreeIter parent,
                                           int childIndx, params object[] values)
        {
            Gtk.TreeIter child;
            if (store.IterNthChild(out child, parent, childIndx))
            {
                for (int i = 0; i < values.Length; i++)
                {
                    if (null == values[i])
                    {
                        continue;
                    }
                    store.SetValue(child, i, values[i]);
                }
            }
            else
            {
                child = store.AppendValues(parent, values);
            }

            return(child);
        }
Beispiel #3
0
        public TreePosition GetChild(TreePosition pos, int index)
        {
            IterPos tpos = GetIterPos(pos);

            if (tpos != null && tpos.LastChildIndex == index)
            {
                return(new IterPos(version, tpos.LastChildIter));
            }
            if (index == 0)
            {
                if (tpos != null)
                {
                    Gtk.TreeIter it;
                    if (Tree.IterChildren(out it, tpos.Iter))
                    {
                        tpos.LastChildIter  = it;
                        tpos.LastChildIndex = 0;
                        return(new IterPos(version, it));
                    }
                }
                else
                {
                    Gtk.TreeIter it;
                    if (Tree.GetIterFirst(out it))
                    {
                        return(new IterPos(version, it));
                    }
                }
                return(null);
            }

            if (tpos == null)
            {
                Gtk.TreeIter it;
                if (Tree.IterNthChild(out it, index))
                {
                    return(new IterPos(version, it));
                }
                else
                {
                    return(null);
                }
            }

            if (tpos.LastChildIndex == -1 || tpos.LastChildIndex > index)
            {
                Gtk.TreeIter it;
                if (Tree.IterNthChild(out it, tpos.Iter, index))
                {
                    tpos.LastChildIter  = it;
                    tpos.LastChildIndex = index;
                    return(new IterPos(version, it));
                }
                else
                {
                    return(null);
                }
            }

            // tpos.LastChildIndex < index

            Gtk.TreeIter iter = tpos.LastChildIter;
            for (int n = tpos.LastChildIndex; n < index; n++)
            {
                if (!Tree.IterNext(ref iter))
                {
                    return(null);
                }
            }
            tpos.LastChildIter  = iter;
            tpos.LastChildIndex = index;
            return(new IterPos(version, iter));
        }