// Add public static void Add(VarBaseD v) { if (Root == null) { Root = v; } else { v.Next = Root; Root = v; } }
// Init public void Init() { // add the vars for (VarBaseD v = DebugVariables.Root; v != null; v = v.Next) { string[] items = v.Name.Split('.'); MenuItem c = Root; // drill down - adding new levels if required for (int i = 0; i < items.Length; ++i) { // attempt to find at this level MenuItem ci = null; for (ci = c.Child1; ci != null; ci = ci.Next) { if (items[i] == ci.Name) { if ((i == (items.Length - 1)) || (c.Child1 == null)) { ci = null; // we've got a duplicate between a level and var or two vars with the same name } break; } } if (ci == null) { // add new if (i == (items.Length - 1)) { ci = new MenuItem(items[i], v); // item } else { ci = new MenuItem(items[i]); // submenu } c.Add(ci); } // move down to new level c = ci; } } }
public MenuItem(string name, VarBaseD var) : this( name ) { Var = var; }
public MenuItem( string name, VarBaseD var ) : this(name) { Var = var; }
// Clear public static void Clear() { Root = null; }
// Add public static void Add( VarBaseD v ) { if ( Root == null ) Root = v; else { v.Next = Root; Root = v; } }