private TreeNode FindOrCreate(TreeNode parent, TreeNodeCollection parentNodes, string[] subpath, SettingsPageStruct page) { if (subpath.Length == 0) { return(parent); } //TreeNode[] childs = parentNodes.Find(Texts.Get(subpath[0]), false); TreeNode child = null; foreach (TreeNode n in parentNodes) { if (n.Text == Texts.Get(subpath[0])) { child = n; break; } } //if (childs.Length > 0) child = childs[0]; if (child != null) { return(FindOrCreate(child, child.Nodes, PyList.SliceFrom(subpath, 1), page)); } child = new TreeNode(); if (page != null && page.Attribute.ImageName != null) { child.ImageIndex = m_imgCache.GetImageIndex(ImageTool.ImageFromName(page.Attribute.ImageName, CoreIcons.settings)); } else { child.ImageIndex = m_imgCache.GetImageIndex(CoreIcons.settings); } child.SelectedImageIndex = child.ImageIndex; parentNodes.Add(child); child.Text = Texts.Get(subpath[0]); if (subpath.Length == 1) { child.Tag = page; if ((page.Attribute.Targets & Target) == 0) { parentNodes.Remove(child); } } return(FindOrCreate(child, child.Nodes, PyList.SliceFrom(subpath, 1), page)); }
public override System.Drawing.Bitmap ImageFromName(string name, Bitmap defimage) { return(ImageTool.ImageFromName(name, defimage)); }