object AddTypeWithNamespace(Type t, Hashtable ht) { //Console.WriteLine ("add type {0}", t.FullName); if (!IsVisible(t)) { return(null); } //Console.WriteLine ("try type {0}", t.FullName); if (ht [t] != null) { return((TreeIter)ht [t]); } //Console.WriteLine ("new line {0}", t.FullName); TreeIter iter = new TreeIter(); if (t.BaseType != null /* FIXME? && t.BaseType.Assembly == assembly */ && t.BaseType.Namespace == t.Namespace) { typeStore.Append(out iter, (TreeIter)AddTypeWithNamespace(t.BaseType, ht)); } else { if (t.Namespace != null && t.Namespace != "") { typeStore.Append(out iter, NamespaceIter(t.Namespace, ht)); } else { typeStore.Append(out iter); } } TypeRecord tr = new TypeRecord(t); typeStore.SetValue(iter, 0, new GLib.Value(tr.Label)); typeStore.SetValue(iter, 1, new GLib.Value(t.FullName)); typeStore.SetValue(iter, 2, new GLib.Value(tr.Icon)); ht [t] = iter; return(iter); }
object AddTypeWithoutNamespace(Type t, Hashtable ht) { TreeIter iter; //Console.WriteLine ("add type {0}", t.FullName); if (!IsVisible(t)) { return(null); } //Console.WriteLine ("try type {0}", t.FullName); if (ht [t] != null) { return((TreeIter)ht [t]); } //Console.WriteLine ("new line {0}", t.FullName); iter = new TreeIter(); if (t.BaseType == null) // FIXME? || t.BaseType.Assembly != assembly) { typeStore.Append(out iter); } else { typeStore.Append(out iter, (TreeIter)AddTypeWithoutNamespace(t.BaseType, ht)); } TypeRecord tr = new TypeRecord(t); typeStore.SetValue(iter, 0, new GLib.Value(tr.Label)); typeStore.SetValue(iter, 1, new GLib.Value(t.FullName)); typeStore.SetValue(iter, 2, new GLib.Value(tr.Icon)); ht [t] = iter; return(iter); }