Exemplo n.º 1
0
 public void AddGlobalReferences()
 {
     RefCount     = map.GetObjectCountForType(type);
     RefsToParent = 0;
     TotalMemory  = map.GetObjectSizeForType(type);
     globalRefs   = true;
 }
        public void FillAllTypes(ObjectMapReader file)
        {
            this.file         = file;
            this.typeName     = null;
            boxFilter.Visible = true;
            treeview.Columns [TreeColRefs].Visible     = InverseReferences;
            treeview.Columns [TreeColRefs + 1].Visible = InverseReferences;
            treeview.Columns [TreeColRefs + 2].Visible = InverseReferences;

            if (loading)
            {
                // If the tree is already being loaded, notify that loading
                // has to start again, since the file has changed.
                reloadRequested = true;
                return;
            }

            loading = true;
            store.Clear();
            int n = 0;

            foreach (int t in file.GetTypes())
            {
                if (++n == 20)
                {
                    if (ProgressEvent != null)
                    {
                        ProgressEvent(n, file.GetTypeCount(), null);
                    }
                    while (Gtk.Application.EventsPending())
                    {
                        Gtk.Application.RunIteration();
                    }
                    if (reloadRequested)
                    {
                        loading         = false;
                        reloadRequested = false;
                        FillAllTypes(this.file);
                        return;
                    }
                    n = 0;
                }
                if (file.GetObjectCountForType(t) > 0)
                {
                    InternalFillType(file, t);
                }
            }
            loading = false;
        }