private int CompareReverse(TreemapItem b, TreemapItem a)
        {
            int diff = b.Size.CompareTo(a.Size);

            if (diff == 0)
            {
                diff = string.Compare(b.name, a.name, true);
            }
            return(diff);
        }
        private TreemapItem(TreemapItem file, TreemapItem parent)
        {
            this.parent = parent;
            int count = file.ChildCount;

            children = new List <TreemapItem>(count);
            for (int i = 0; i < count; i++)
            {
                children.Add(new TreemapItem(file[i], this));
            }
            children.Sort(CompareReverse);
            children.Sort(Compare);
            size      = file.Size;
            extension = file.Extension + "";
            name      = file.name + "";
            type      = file.type;
            color     = file.Color;
        }
 public void AddChild(TreemapItem item)
 {
     children.Add(item);
     item.parent = this;
 }
 public TreemapItem(TreemapItem file) : this(file, null)
 {
 }