Exemplo n.º 1
0
        void ReadNames()
        {
            while (names.Count > 0)
            {
                NamedPackedFileDescriptor pfd = null;
                lock (names)
                {
                    if (names.Count == 0)
                    {
                        break;
                    }
                    pfd = names.Pop();
                    if (Helper.WindowsRegistry.AsynchronSort)
                    {
                        SimPe.Wait.Progress = counter++;
                    }
                }
                pfd.GetRealName();
            }

            lock (names)
            {
                started--;
                if (started == 0)
                {
                    parent.SignalFinishedSort(handle, ticket);
                }
            }
        }
Exemplo n.º 2
0
        private ResourceListItemExt CreateItem(int index)
        {
            ResourceListItemExt ret = null;

            if (index >= 0 && index < names.Count)
            {
                bool vis = false;
                if (lastcache != null)
                {
                    vis = index >= lastcache.StartIndex && index <= lastcache.EndIndex;
                }

                if (cache.ContainsKey(index))
                {
                    ret = cache[index];
                }

                if (ret == null)
                {
                    NamedPackedFileDescriptor pfd = names[index];
                    ret = new ResourceListItemExt(pfd, manager, vis);
                    //cache.Add(index, ret);
                }
                else
                {
                    ret.Visible = vis;
                }
            }

            return(ret);
        }
Exemplo n.º 3
0
        internal ResourceListItemExt(NamedPackedFileDescriptor pfd, ResourceViewManager manager, bool visible)
            : base()
        {
            this.vis = visible;
            if (regular == null)
            {
                regular = new System.Drawing.Font(Font.FontFamily, Font.Size, System.Drawing.FontStyle.Regular, Font.Unit);
                strike  = new System.Drawing.Font(Font.FontFamily, Font.Size, System.Drawing.FontStyle.Strikeout, Font.Unit);
            }

            this.manager = manager;
            this.pfd     = pfd;


            string[] subitems = new string[7];
            subitems[0] = visible ? pfd.GetRealName() : pfd.Descriptor.ToResListString(); // Name
            subitems[1] = GetExtText();                                                   // Type
            subitems[2] = "0x" + Helper.HexString(pfd.Descriptor.Group);                  // Group
            subitems[3] = "0x" + Helper.HexString(pfd.Descriptor.SubType);                // InstHi

            // Inst
            if (Helper.WindowsRegistry.ResourceListInstanceFormatHexOnly)
            {
                subitems[4] = "0x" + Helper.HexString(pfd.Descriptor.Instance);
            }
            else if (Helper.WindowsRegistry.ResourceListInstanceFormatDecOnly)
            {
                subitems[4] = ((int)pfd.Descriptor.Instance).ToString();
            }
            else
            {
                subitems[4] = "0x" + Helper.HexString(pfd.Descriptor.Instance) + " (" + ((int)pfd.Descriptor.Instance).ToString() + ")";
            }

            subitems[5] = "0x" + Helper.HexString(pfd.Descriptor.Offset);
            subitems[6] = "0x" + Helper.HexString(pfd.Descriptor.Size);


            this.SubItems.Clear();
            this.Text = (string)subitems[0];
            for (int i = 1; i < subitems.Length; i++)
            {
                SubItems.Add(subitems[i]);
            }


            this.ImageIndex = ResourceViewManager.GetIndexForResourceType(pfd.Descriptor.Type);

            /*pfd.Descriptor.ChangedData += new SimPe.Events.PackedFileChanged(Descriptor_ChangedData);
             * pfd.Descriptor.ChangedUserData += new SimPe.Events.PackedFileChanged(Descriptor_ChangedUserData);
             * pfd.Descriptor.DescriptionChanged += new EventHandler(Descriptor_DescriptionChanged);*/

            ChangeDescription(true);
        }
Exemplo n.º 4
0
        private void AddToInstMap(NamedPackedFileDescriptor npfd)
        {
            ResourceNameList pfdlist = null;

            if (maps.ByInstance.ContainsKey(npfd.Descriptor.LongInstance))
            {
                pfdlist = maps.ByInstance[npfd.Descriptor.LongInstance];
            }
            else
            {
                pfdlist = new ResourceNameList();
                maps.ByInstance[npfd.Descriptor.LongInstance] = pfdlist;
            }

            pfdlist.Add(npfd);
        }
Exemplo n.º 5
0
        private void AddToGroupMap(NamedPackedFileDescriptor npfd)
        {
            ResourceNameList pfdlist = null;

            if (maps.ByGroup.ContainsKey(npfd.Descriptor.Group))
            {
                pfdlist = maps.ByGroup[npfd.Descriptor.Group];
            }
            else
            {
                pfdlist = new ResourceNameList();
                maps.ByGroup[npfd.Descriptor.Group] = pfdlist;
            }

            pfdlist.Add(npfd);
        }
Exemplo n.º 6
0
        private void AddToTypeMap(NamedPackedFileDescriptor npfd)
        {
            ResourceNameList pfdlist = null;

            if (maps.ByType.ContainsKey(npfd.Descriptor.Type))
            {
                pfdlist = maps.ByType[npfd.Descriptor.Type];
            }
            else
            {
                pfdlist = new ResourceNameList();
                maps.ByType[npfd.Descriptor.Type] = pfdlist;
            }

            pfdlist.Add(npfd);
        }
Exemplo n.º 7
0
        protected void OnChangedPackage(SimPe.Interfaces.Files.IPackageFile oldpkg, SimPe.Interfaces.Files.IPackageFile newpkg, bool lettreeviewselect)
        {
            lock (maps)
            {
                if (lv != null)
                {
                    lv.BeginUpdate();
                }
                if (oldpkg != null)
                {
                    oldpkg.SavedIndex      -= new EventHandler(newpkg_SavedIndex);
                    oldpkg.RemovedResource -= new EventHandler(newpkg_RemovedResource);
                    oldpkg.AddedResource   -= new EventHandler(newpkg_AddedResource);
                }
                maps.Clear();



                if (newpkg != null)
                {
                    if (Helper.WindowsRegistry.ShowProgressWhenPackageLoads || !Helper.WindowsRegistry.AsynchronSort)
                    {
                        Wait.Start(newpkg.Index.Length);
                    }
                    else
                    {
                        Wait.Start();
                    }
                    Wait.Message = SimPe.Localization.GetString("Loading package...");
                    int ct = 0;
                    foreach (SimPe.Interfaces.Files.IPackedFileDescriptor pfd in newpkg.Index)
                    {
                        NamedPackedFileDescriptor npfd = new NamedPackedFileDescriptor(pfd, newpkg);
                        if (!Helper.WindowsRegistry.AsynchronSort)
                        {
                            npfd.GetRealName();
                        }

                        maps.Everything.Add(npfd);
                        AddResourceToMaps(npfd);
                        if (Helper.WindowsRegistry.ShowProgressWhenPackageLoads || !Helper.WindowsRegistry.AsynchronSort)
                        {
                            Wait.Progress = ct++;
                        }
                    }
                    Wait.Stop();
                }

                UpdateContent(lettreeviewselect);

                if (newpkg != null)
                {
                    newpkg.AddedResource   += new EventHandler(newpkg_AddedResource);
                    newpkg.RemovedResource += new EventHandler(newpkg_RemovedResource);
                    newpkg.SavedIndex      += new EventHandler(newpkg_SavedIndex);
                }

                if (lv != null)
                {
                    lv.EndUpdate();
                }
            }
        }
Exemplo n.º 8
0
 private void AddResourceToMaps(NamedPackedFileDescriptor npfd)
 {
     AddToTypeMap(npfd);
     AddToGroupMap(npfd);
     AddToInstMap(npfd);
 }