IterChildren() public method

public IterChildren ( Gtk &iter ) : bool
iter Gtk
return bool
		public HelpTree () : base (GettextCatalog.GetString ("Help"), Gtk.Stock.Help)
		{
			tree_view = new MonoDevelop.Ide.Gui.Components.PadTreeView ();

			tree_view.AppendColumn ("name_col", tree_view.TextRenderer, "text", 0);
			tree_view.RowExpanded += new Gtk.RowExpandedHandler (RowExpanded);
			tree_view.Selection.Changed += new EventHandler (RowActivated);
			
			store = new TreeStore (typeof (string), typeof (Node));
			tree_view.Model = store;
			tree_view.HeadersVisible = false;
			
			scroller = new MonoDevelop.Components.CompactScrolledWindow ();
			scroller.ShadowType = Gtk.ShadowType.None;
			scroller.Add (tree_view);
			
			if (HelpService.HelpTree != null) {
				root_iter = store.AppendValues (GettextCatalog.GetString ("Mono Documentation"), HelpService.HelpTree);
				PopulateNode (root_iter);
	
				tree_view.ExpandRow (new TreePath ("0"), false);
				TreeIter child_iter;
			start:
				if (store.IterChildren (out child_iter, root_iter)) {
					do {
						if (!store.IterHasChild (child_iter)) {
							store.Remove (ref child_iter);
							goto start;
						}
					} while (store.IterNext (ref child_iter));
				}
			}
			Control.ShowAll ();
		}
        public HelpTree()
            : base(GettextCatalog.GetString ("Help"), Gtk.Stock.Help)
        {
            tree_view = new TreeView ();

            tree_view.AppendColumn ("name_col", new CellRendererText (), "text", 0);
            tree_view.RowExpanded += new Gtk.RowExpandedHandler (RowExpanded);
            tree_view.Selection.Changed += new EventHandler (RowActivated);

            store = new TreeStore (typeof (string), typeof (Node));
            root_iter = store.AppendValues (GettextCatalog.GetString ("Mono Documentation"), Runtime.Documentation.HelpTree);

            PopulateNode (root_iter);

            tree_view.Model = store;
            tree_view.HeadersVisible = false;

            scroller = new ScrolledWindow ();
            scroller.ShadowType = Gtk.ShadowType.In;
            scroller.Add (tree_view);

            tree_view.ExpandRow (new TreePath ("0"), false);
            TreeIter child_iter;
            start:
            store.IterChildren (out child_iter, root_iter);
            do {
                if (!store.IterHasChild (child_iter)) {
                    store.Remove (ref child_iter);
                    goto start;
                }
            } while (store.IterNext (ref child_iter));

            Control.ShowAll ();
        }
Beispiel #3
0
        private void OnToggled(object o, Gtk.ToggledArgs e)
        {
            TreeIter iter;

            store.GetIter(out iter, new TreePath(e.Path));
            bool value = !(bool)store.GetValue(iter, 1);

            store.SetValue(iter, 1, value);
            TorrentFile file = (TorrentFile)store.GetValue(iter, 2);

            if (file != null)
            {
                file.Priority = value ? Priority.Normal : Priority.DoNotDownload;
            }

            if (store.IterHasChild(iter))
            {
                store.IterChildren(out iter, iter);
                RecurseToggle(iter, value);
            }
        }
Beispiel #4
0
        private static void RemoveAllChildren(Gtk.TreeStore model, TreeIter ti)
        {
            TreeIter child;

            if (model.IterChildren(out child, ti))
            {
                int depth = model.IterDepth(ti);

                while (model.Remove(ref child) && model.IterDepth(child) > depth)
                {
                    ;
                }
            }
        }
Beispiel #5
0
        bool FindCategory(TreeIter piter, string name, out TreeIter child)
        {
            if (piter.Equals(TreeIter.Zero))
            {
                if (!treeStore.GetIterFirst(out child))
                {
                    return(false);
                }
            }
            else if (!treeStore.IterChildren(out child, piter))
            {
                return(false);
            }

            do
            {
                if (((string)treeStore.GetValue(child, ColName)) == name)
                {
                    return(true);
                }
            } while (treeStore.IterNext(ref child));

            return(false);
        }
        void FullRepoNode(Repository parent, TreeIter repoIter)
        {
            // Remove the dummy child
            TreeIter citer;

            store.IterChildren(out citer, repoIter);

            store.SetValue(citer, RepoNameCol, GettextCatalog.GetString("Loading..."));

            loadingRepos.Add(FindRootRepo(repoIter));
            UpdateControls();

            ThreadPool.QueueUserWorkItem(delegate {
                LoadRepoInfo(parent, repoIter, citer);
            });
        }
Beispiel #7
0
        public void ApplyChanges(Gtk.TreeIter iter)
        {
            do
            {
                var node = treeStore.GetValue(iter, 2) as CodeIssueProvider;

                if (node != null)
                {
                    var severity = (Severity)treeStore.GetValue(iter, 1);
                    node.SetSeverity(severity);
                }

                TreeIter child;
                if (treeStore.IterChildren(out child, iter))
                {
                    ApplyChanges(child);
                }
            } while (treeStore.IterNext(ref iter));
            MonoDevelop.SourceEditor.OptionPanels.ColorShemeEditor.RefreshAllColors();
        }
Beispiel #8
0
        void FullRepoNode(Repository parent, TreeIter repoIter)
        {
            // Remove the dummy child
            TreeIter citer;

            store.IterChildren(out citer, repoIter);

            store.SetValue(citer, RepoNameCol, GettextCatalog.GetString("Loading..."));

            loadingRepos.Add(FindRootRepo(repoIter));
            UpdateControls();

            Thread t = new Thread(delegate() {
                LoadRepoInfo(parent, repoIter, citer);
            });

            t.Name         = "VCS repository loader";
            t.IsBackground = true;
            t.Start();
        }
Beispiel #9
0
        private void OnTestExpandRow(object sender, Gtk.TestExpandRowArgs args)
        {
            bool          filled = (bool)store.GetValue(args.Iter, FilledCol);
            ReferenceNode parent = (ReferenceNode)store.GetValue(args.Iter, ReferenceCol);

            if (!filled)
            {
                store.SetValue(args.Iter, FilledCol, true);
                TreeIter iter;
                store.IterChildren(out iter, args.Iter);
                store.Remove(ref iter);
                if (parent.References.Count > 0 || parent.FieldReferences.Count > 0)
                {
                    int nr = 0;
                    foreach (ReferenceNode nod in parent.References)
                    {
                        if (!AddNode(args.Iter, nod).Equals(TreeIter.Zero))
                        {
                            nr++;
                        }
                    }
                    foreach (FieldReference fref in parent.FieldReferences)
                    {
                        if (!AddNode(args.Iter, fref).Equals(TreeIter.Zero))
                        {
                            nr++;
                        }
                    }
                    if (nr == 0)
                    {
                        args.RetVal = true;
                    }
                }
                else
                {
                    args.RetVal = true;
                }
            }
        }
Beispiel #10
0
        void updateTreeNode <T> (TreeIter theNode, IEnumerable <T> objects)
        {
            TreeIter item;

            if (theModel.IterChildren(out item, theNode))
            {
                int depth = theModel.IterDepth(theNode);

                while (theModel.Remove(ref item) &&
                       theModel.IterDepth(item) > depth)
                {
                    ;
                }
            }
            int i = 0;

            foreach (T o in objects)
            {
                theModel.AppendValues(theNode, new TreeItemWrapper(o));
                i++;
            }
            exporerTreeview.ExpandRow(theModel.GetPath(theNode), true);
        }
        //Rekurzivní fuknce na procházení treeview, který má strukturu stromu
        private void getTreeValues(TreeIter iter)
        {
            TreeIter childIter;

            do
            {
                try {
                    string name = foodTreeStore.GetValue(iter, 0).ToString();
                    treeModelValues.Add(foodTreeStore.GetPath(iter), name);
                    int result = food.FindFoodIndex(name);
                    distinct.Add(food.FindFood(name));
                    if (result != -1)
                    {
                        food[result].Path = foodTreeStore.GetPath(iter).ToString();
                    }
                    if (foodTreeStore.IterHasChild(iter))
                    {
                        foodTreeStore.IterChildren(out childIter, iter);
                        getTreeValues(childIter);
                    }
                } catch (Exception) { return; };
            } while (foodTreeStore.IterNext(ref iter));
        }
Beispiel #12
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));
        }