public override void FillPanel(ArchivedFile file, Panel pn)
        {
            Frame[]      frameArr1    = ImageDecoder.LoadFrames(file);
            Panel        panel        = pn;
            FileTabSheet fileTabSheet = new FileTabSheet();

            fileTabSheet.SetFile(file);
            pn                  = fileTabSheet.DecodedPanel;
            pn.AutoScroll       = true;
            pn.AutoScrollMargin = new Size(5, 5);
            int i1 = 5;

            for (int i2 = 0; i2 < (int)frameArr1.Length; i2++)
            {
                Frame[]      frameArr2    = new Frame[] { frameArr1[i2] };
                int[]        iArr         = new int[] { 1 };
                Animation    animation    = new Animation(frameArr2, iArr);
                AnimationBox animationBox = new AnimationBox();
                animationBox.Title = "Imagen";
                Animation[] animationArr = new Animation[] { animation };
                animationBox.Animations = animationArr;
                animationBox.Name       = Path.GetFileNameWithoutExtension(file.FileName);
                animationBox.UpdateSize();
                animationBox.SetBounds(5, i1, animationBox.Width, animationBox.Height);
                pn.Controls.Add(animationBox);
                i1 += animationBox.Height + 5;
            }
            panel.Controls.Add(fileTabSheet);
        }
示例#2
0
 public override void FillPanel(ArchivedFile file, Panel pn)
 {
     Frame[] frameArr1 = ImageDecoder.LoadFrames(file);
     Panel panel = pn;
     FileTabSheet fileTabSheet = new FileTabSheet();
     fileTabSheet.SetFile(file);
     pn = fileTabSheet.DecodedPanel;
     pn.AutoScroll = true;
     pn.AutoScrollMargin = new Size(5, 5);
     int i1 = 5;
     for (int i2 = 0; i2 < (int)frameArr1.Length; i2++)
     {
         Frame[] frameArr2 = new Frame[] { frameArr1[i2] };
         int[] iArr = new int[] { 1 };
         Animation animation = new Animation(frameArr2, iArr);
         AnimationBox animationBox = new AnimationBox();
         animationBox.Title = "Imagen";
         Animation[] animationArr = new Animation[] { animation };
         animationBox.Animations = animationArr;
         animationBox.Name = Path.GetFileNameWithoutExtension(file.FileName);
         animationBox.UpdateSize();
         animationBox.SetBounds(5, i1, animationBox.Width, animationBox.Height);
         pn.Controls.Add(animationBox);
         i1 += animationBox.Height + 5;
     }
     panel.Controls.Add(fileTabSheet);
 }
示例#3
0
        public void SetFile(ArchivedFile file)
        {
            TreeNode node = file.Node;

            for (TreeNode node2 = node.Parent; node2 != null; node2 = node2.Parent)
            {
                node2.Expand();
            }
            if (this.tvwFolders.SelectedNode != node)
            {
                this.tvwFolders.SelectedNode = node;
            }
            base.SuspendLayout();
            Panel pn = new Panel
            {
                Size = this.pnPanel.Size,
                Dock = DockStyle.Fill
            };

            FileDecoder.FindDecoder(Path.GetExtension(file.FileName)).FillPanel(file, pn);
            Control control = null;

            if (this.pnPanel.Controls.Count > 0)
            {
                control = this.pnPanel.Controls[0];
            }
            this.pnPanel.Controls.Clear();
            if (control != null)
            {
                control.Dispose();
            }
            this.pnPanel.Controls.Add(pn);
            base.ResumeLayout();
        }
示例#4
0
        public void SetFile(ArchivedFile file)
        {
            //Log.WriteLine("SetFile");
            MemoryStream memoryStream = new MemoryStream();

            file.Download(memoryStream);
            SetStream(file.FileName, memoryStream);
        }
示例#5
0
 public FileNode(ArchivedFile archivedFile, int icon)
     : base(archivedFile.FileName)
 {
     ImageIndex = 2 + (icon * 2);
     SelectedImageIndex = 3 + (icon * 2);
     m_ArchivedFile = archivedFile;
     m_Icon = icon;
 }
示例#6
0
 public FileNode(ArchivedFile archivedFile, int icon)
     : base(archivedFile.FileName)
 {
     ImageIndex         = 2 + (icon * 2);
     SelectedImageIndex = 3 + (icon * 2);
     m_ArchivedFile     = archivedFile;
     m_Icon             = icon;
 }
示例#7
0
 public Archive(string name, ArchivedFile[] files)
 {
     m_Name = name;
     m_Files = files;
     for (int i = 0; i < files.Length; i++)
     {
         files[i].Archive = this;
     }
 }
示例#8
0
 public FileListItem(ArchivedFile archivedFile, int icon)
     : base(new string[] { archivedFile.FileName, GetFileSize(archivedFile.Length), FileDecoder.FindDecoder(Path.GetExtension(archivedFile.FileName)).GetType(archivedFile) })
 {
     string[] sArr = new string[] {
                                    archivedFile.FileName, 
                                    FileListItem.GetFileSize(archivedFile.Length), 
                                    FileDecoder.FindDecoder(Path.GetExtension(archivedFile.FileName)).GetType(archivedFile) };
     ImageIndex = 2 + (icon * 2);
     m_ArchivedFile = archivedFile;
 }
示例#9
0
 public FileListItem(ArchivedFile archivedFile, int icon)
     : base(new string[] { archivedFile.FileName, GetFileSize(archivedFile.Length), FileDecoder.FindDecoder(Path.GetExtension(archivedFile.FileName)).GetType(archivedFile) })
 {
     string[] sArr = new string[] {
         archivedFile.FileName,
         FileListItem.GetFileSize(archivedFile.Length),
         FileDecoder.FindDecoder(Path.GetExtension(archivedFile.FileName)).GetType(archivedFile)
     };
     ImageIndex     = 2 + (icon * 2);
     m_ArchivedFile = archivedFile;
 }
示例#10
0
        public override void FillPanel(ArchivedFile file, Panel pn)
        {
            MemoryStream memoryStream = new MemoryStream();

            file.Download(memoryStream);
            Panel        panel        = null;
            FileTabSheet fileTabSheet = null;

            for (int i = 0; i < DataDecoder.m_Processors.Length; i++)
            {
                DataProcessor dataProcessor = DataDecoder.m_Processors[i];
                if (dataProcessor.IsMatch(file.FileName))
                {
                    panel        = pn;
                    fileTabSheet = new FileTabSheet();
                    pn           = fileTabSheet.DecodedPanel;
                    memoryStream = dataProcessor.Mutate(memoryStream);
                    fileTabSheet.SetStream(file.FileName, memoryStream);
                    memoryStream.Seek((long)0, SeekOrigin.Begin);
                    DataStream dataStream = new DirectDataStream(memoryStream);
                    TextWriter textWriter = new StringWriter();
                    dataProcessor.Process(dataStream, textWriter);
                    TextBox textBox = new TextBox();
                    pn.BorderStyle     = BorderStyle.None;
                    textBox.Dock       = DockStyle.Fill;
                    textBox.Multiline  = true;
                    textBox.ReadOnly   = true;
                    textBox.BackColor  = SystemColors.Window;
                    textBox.WordWrap   = false;
                    textBox.ScrollBars = ScrollBars.Both;
                    textBox.Text       = textWriter.ToString();
                    pn.Controls.Add(textBox);
                    break;
                }
            }
            if (panel != null)
            {
                panel.Controls.Add(fileTabSheet);
            }
            else
            {
                StreamDisplay streamDisplay = new StreamDisplay();
                streamDisplay.Dock        = DockStyle.Fill;
                streamDisplay.Stream      = memoryStream;
                streamDisplay.Position    = 0;
                streamDisplay.BorderStyle = BorderStyle.Fixed3D;
                pn.Controls.Add(streamDisplay);
            }
        }
示例#11
0
 public override void FillPanel(ArchivedFile file, Panel pn)
 {
     MemoryStream memoryStream = new MemoryStream();
     file.Download(memoryStream);
     Panel panel = null;
     FileTabSheet fileTabSheet = null;
     for (int i = 0; i < DataDecoder.m_Processors.Length; i++)
     {
         DataProcessor dataProcessor = DataDecoder.m_Processors[i];
         if (dataProcessor.IsMatch(file.FileName))
         {
             panel = pn;
             fileTabSheet = new FileTabSheet();
             pn = fileTabSheet.DecodedPanel;
             memoryStream = dataProcessor.Mutate(memoryStream);
             fileTabSheet.SetStream(file.FileName, memoryStream);
             memoryStream.Seek((long)0, SeekOrigin.Begin);
             DataStream dataStream = new DirectDataStream(memoryStream);
             TextWriter textWriter = new StringWriter();
             dataProcessor.Process(dataStream, textWriter);
             TextBox textBox = new TextBox();
             pn.BorderStyle = BorderStyle.None;
             textBox.Dock = DockStyle.Fill;
             textBox.Multiline = true;
             textBox.ReadOnly = true;
             textBox.BackColor = SystemColors.Window;
             textBox.WordWrap = false;
             textBox.ScrollBars = ScrollBars.Both;
             textBox.Text = textWriter.ToString();
             pn.Controls.Add(textBox);
             break;
         }
     }
     if (panel != null)
     {
         panel.Controls.Add(fileTabSheet);
     }
     else
     {
         StreamDisplay streamDisplay = new StreamDisplay();
         streamDisplay.Dock = DockStyle.Fill;
         streamDisplay.Stream = memoryStream;
         streamDisplay.Position = 0;
         streamDisplay.BorderStyle = BorderStyle.Fixed3D;
         pn.Controls.Add(streamDisplay);
     }
 }
示例#12
0
 public void SetFile(ArchivedFile file)
 {
     TreeNode node = file.Node;
     for (TreeNode node2 = node.Parent; node2 != null; node2 = node2.Parent)
     {
         node2.Expand();
     }
     if (this.tvwFolders.SelectedNode != node)
     {
         this.tvwFolders.SelectedNode = node;
     }
     base.SuspendLayout();
     Panel pn = new Panel
     {
         Size = this.pnPanel.Size,
         Dock = DockStyle.Fill
     };
     FileDecoder.FindDecoder(Path.GetExtension(file.FileName)).FillPanel(file, pn);
     Control control = null;
     if (this.pnPanel.Controls.Count > 0)
     {
         control = this.pnPanel.Controls[0];
     }
     this.pnPanel.Controls.Clear();
     if (control != null)
     {
         control.Dispose();
     }
     this.pnPanel.Controls.Add(pn);
     base.ResumeLayout();
 }
 public virtual string GetType(ArchivedFile file)
 {
     return(m_Title);
 }
示例#14
0
        public FolderNode(Archive archive)
            : base(archive.Name)
        {
            m_Folders          = new ArrayList();
            m_Files            = new ArrayList();
            ImageIndex         = 0;
            SelectedImageIndex = 1;
            m_Archive          = archive;
            ArrayList arrayList1 = new ArrayList();

            ArchivedFile[] archivedFileArr = archive.Files;
            for (int i1 = 0; i1 < archivedFileArr.Length; i1++)
            {
                ArchivedFile archivedFile = archivedFileArr[i1];
                string       s1           = Path.GetExtension(archivedFile.FileName);
                string[]     sArr1        = null;
                FolderInfo   folderInfo   = FolderInfo.GetFolder(archivedFile.FileName);
                if (folderInfo != null)
                {
                    sArr1 = folderInfo.Path;
                }
                else
                {
                    string[] sArr2 = new string[] { s1 };
                    sArr1 = sArr2;
                }
                ArrayList  arrayList2  = arrayList1;
                FolderNode folderNode1 = null;
                for (int i2 = 0; i2 < sArr1.Length; i2++)
                {
                    string     s2          = sArr1[i2];
                    FolderNode folderNode2 = null;
                    for (int i3 = 0; i3 < arrayList2.Count; i3++)
                    {
                        FolderNode folderNode3 = (FolderNode)arrayList2[i3];
                        if (folderNode3.Text == s2)
                        {
                            folderNode2 = folderNode3;
                            break;
                        }
                    }
                    if (folderNode2 == null)
                    {
                        folderNode2 = new FolderNode(s2);
                        arrayList2.Add(folderNode2);
                        if (folderNode1 != null)
                        {
                            folderNode1.Nodes.Add(folderNode2);
                        }
                    }
                    folderNode1 = folderNode2;
                    arrayList2  = folderNode1.Folders;
                }
                int i4 = GetFileIcon(s1);
                archivedFile.Icon   = i4;
                archivedFile.Folder = folderNode1;
                TreeNode treeNode = new FileNode(archivedFile, i4);
                archivedFile.Node = new FileNode(archivedFile, i4);
                folderNode1.Files.Add(treeNode);
            }
            for (int i5 = 0; i5 < arrayList1.Count; i5++)
            {
                FolderNode folderNode4 = (FolderNode)arrayList1[i5];
                folderNode4.RecurseSort();
            }
            if (arrayList1.Count == 1)
            {
                FolderNode folderNode5 = (FolderNode)arrayList1[0];
                m_Folders = folderNode5.Folders;
                m_Files   = folderNode5.Files;
                for (int i6 = 0; i6 < folderNode5.Nodes.Count; i6++)
                {
                    FolderNode folderNode6 = (FolderNode)folderNode5.Nodes[i6];
                    for (int i7 = 0; i7 < folderNode6.Files.Count; i7++)
                    {
                        ((FileNode)folderNode6.Files[i7]).ArchivedFile.Folder = this;
                    }
                    Nodes.Add(folderNode6);
                }
            }
            else
            {
                m_Folders = arrayList1;
                for (int i8 = 0; i8 < arrayList1.Count; i8++)
                {
                    Nodes.Add((TreeNode)arrayList1[i8]);
                }
            }
        }
示例#15
0
 public void SetFile(ArchivedFile file)
 {
     //Log.WriteLine("SetFile");
     MemoryStream memoryStream = new MemoryStream();
     file.Download(memoryStream);
     SetStream(file.FileName, memoryStream);
 }
示例#16
0
        public unsafe static Frame[] LoadFrames(ArchivedFile file)
        {
            MemoryStream memoryStream = new MemoryStream();
            file.Download(memoryStream);
            memoryStream.Seek((long)0, SeekOrigin.Begin);
            DataStream dataStream = new DirectDataStream(memoryStream);
            dataStream.ReadInt32();
            int i1 = dataStream.ReadInt32();
            Frame[] frames1 = new Frame[i1];
            int j1 = 0;
            while (j1 < i1)
            {
                int k1 = dataStream.ReadInt16();
                int i2 = dataStream.ReadInt16();
                int j2 = dataStream.ReadInt32();
                int k2 = dataStream.ReadInt32();
                int i3 = dataStream.ReadInt32();
                int j3 = dataStream.ReadInt32();
                int k3 = dataStream.ReadInt32();
                int i4 = dataStream.ReadInt32();
                int j4 = dataStream.ReadInt32();
                int k4 = dataStream.ReadInt32();
                int i5 = dataStream.ReadInt32();
                Debug.Assert((i5 < 16777216 && j2 > 0 && k2 > 0 && j2 <= 2048) ? (k2 > 2048 == false) : false);
                byte[] bs = dataStream.ReadBytes(i5);
                int j5 = k1 & 255;
                PixelFormat pixelFormat = PixelFormat.Format32bppArgb;
                Bitmap bitmap = new Bitmap(j2, k2, pixelFormat);
                frames1[j1] = new Frame(bitmap, i3, j3);
                BitmapData bitmapData = bitmap.LockBits(new Rectangle(0, 0, j2, k2), ImageLockMode.WriteOnly, pixelFormat);
                switch (j5)
                {
                    case 0:
                        fixed (byte* b1 = &bs[0])
                        {
                            short* s1 = (short*)b1;
                            int* k5 = (int*)bitmapData.Scan0;
                            short* s2 = s1 + (j2 * k2);
                            int i6 = (bitmapData.Stride >> 2) - bitmapData.Width;
                            while (s1 < s2)
                            {
                                short* s3 = s1 + j2;
                                while (s1 < s3)
                                {
                                    int j6 = *s1++;
                                    int k6 = j6 & 31;
                                    int i7 = j6 >> 5 & 63;
                                    int j7 = j6 >> 11 & 31;
                                    int k7 = 255;
                                    k6 *= 255;
                                    k6 /= 31;
                                    i7 *= 255;
                                    i7 /= 63;
                                    j7 *= 255;
                                    j7 /= 31;
                                    if (j7 == 0 && i7 == 0 && k6 == 0)
                                    {
                                        k7 = 0;
                                    }
                                    i7 <<= 8;
                                    j7 <<= 16;
                                    k7 <<= 24;
                                    j6 = k7 | j7 | i7 | k6;
                                    *k5++ = j6;
                                }
                                k5 += i6;
                            }
                        }
                        goto default;

                    case 2:
                        fixed (byte* b2 = &bs[0])
                        {
                            short* s4 = (short*)b2;
                            int* i8 = (int*)bitmapData.Scan0;
                            short* s5 = s4 + (j2 * k2);
                            int j8 = (bitmapData.Stride >> 2) - bitmapData.Width;
                            while (s4 < s5)
                            {
                                short* s6 = s4 + j2;
                                while (s4 < s6)
                                {
                                    int k8 = *s4++;
                                    int i9 = k8 & 15;
                                    int j9 = k8 >> 4 & 15;
                                    int k9 = k8 >> 8 & 15;
                                    int i10 = k8 >> 12 & 15;
                                    i9 *= 255;
                                    i9 /= 15;
                                    j9 *= 255;
                                    j9 /= 15;
                                    k9 *= 255;
                                    k9 /= 15;
                                    i10 *= 255;
                                    i10 /= 15;
                                    if (k9 == 0 && j9 == 0 && i9 == 0)
                                    {
                                        i10 = 0;
                                    }
                                    j9 <<= 8;
                                    k9 <<= 16;
                                    i10 <<= 24;
                                    k8 = i10 | k9 | j9 | i9;
                                    *i8++ = k8;
                                }
                                i8 += j8;
                            }
                        }
                        goto default;

                    case 1:
                        fixed (byte* b3 = &bs[0])
                        {
                            short* s7 = (short*)b3;
                            int* j10 = (int*)bitmapData.Scan0;
                            int k10 = bitmapData.Stride >> 2;
                            int* i12;
                            for (int i11 = 0; i11 < k2; i11++)
                            {
                                int* j11 = j10 + (i11 * k10);
                                int* k11 = j11;
                                i12 = k11;
                                int j12 = *s7++;
                                int k12 = *s7++;
                                for (int i13 = 0; i13 < k12; i13++)
                                {
                                    int j13 = *s7++;
                                    int* k13 = j11 + j13;
                                    if (k11 < k13)
                                    {
                                        try
                                        {
                                            for (*k11++ = 0; k11 < k13; *k11++ = 0)
                                            {
                                            }
                                        }
                                        catch { }
                                    }
                                    else if (k11 > k13)
                                    {
                                        try
                                        {
                                            for (*k11-- = 0; k11 > k13; *k11-- = 0)
                                            {
                                            }
                                        }
                                        catch { }
                                    }
                                    k11 = k13;
                                    int i14 = *s7++;
                                    k13 = k11 + i14;
                                    while (k11 < k13)
                                    {
                                        int j14 = *s7++;
                                        int k14 = j14 & 31;
                                        int i15 = j14 >> 5 & 63;
                                        int j15 = j14 >> 11 & 31;
                                        int k15 = 255;
                                        k14 *= 255;
                                        k14 /= 31;
                                        i15 *= 255;
                                        i15 /= 63;
                                        j15 *= 255;
                                        j15 /= 31;
                                        if (j15 == 0 && i15 == 0 && k14 == 0)
                                        {
                                            k15 = 0;
                                        }
                                        i15 <<= 8;
                                        j15 <<= 16;
                                        k15 <<= 24;
                                        j14 = k15 | j15 | i15 | k14;
                                        *k11++ = j14;
                                    }
                                }
                                while (k11 < i12)
                                {
                                    *k11++ = 0;
                                }
                                i12 += k10;
                            }
                        }
                        goto default;

                    default:
                        bitmap.UnlockBits(bitmapData);
                        j1++;
                        break;
                }
            }
            return frames1;
        }
        public unsafe static Frame[] LoadFrames(ArchivedFile file)
        {
            MemoryStream memoryStream = new MemoryStream();

            file.Download(memoryStream);
            memoryStream.Seek((long)0, SeekOrigin.Begin);
            DataStream dataStream = new DirectDataStream(memoryStream);

            dataStream.ReadInt32();
            int i1 = dataStream.ReadInt32();

            Frame[] frames1 = new Frame[i1];
            int     j1      = 0;

            while (j1 < i1)
            {
                int k1 = dataStream.ReadInt16();
                int i2 = dataStream.ReadInt16();
                int j2 = dataStream.ReadInt32();
                int k2 = dataStream.ReadInt32();
                int i3 = dataStream.ReadInt32();
                int j3 = dataStream.ReadInt32();
                int k3 = dataStream.ReadInt32();
                int i4 = dataStream.ReadInt32();
                int j4 = dataStream.ReadInt32();
                int k4 = dataStream.ReadInt32();
                int i5 = dataStream.ReadInt32();
                Debug.Assert((i5 < 16777216 && j2 > 0 && k2 > 0 && j2 <= 2048) ? (k2 > 2048 == false) : false);
                byte[]      bs          = dataStream.ReadBytes(i5);
                int         j5          = k1 & 255;
                PixelFormat pixelFormat = PixelFormat.Format32bppArgb;
                Bitmap      bitmap      = new Bitmap(j2, k2, pixelFormat);
                frames1[j1] = new Frame(bitmap, i3, j3);
                BitmapData bitmapData = bitmap.LockBits(new Rectangle(0, 0, j2, k2), ImageLockMode.WriteOnly, pixelFormat);
                switch (j5)
                {
                case 0:
                    fixed(byte *b1 = &bs[0])
                    {
                        short *s1 = (short *)b1;
                        int *  k5 = (int *)bitmapData.Scan0;
                        short *s2 = s1 + (j2 * k2);
                        int    i6 = (bitmapData.Stride >> 2) - bitmapData.Width;

                        while (s1 < s2)
                        {
                            short *s3 = s1 + j2;
                            while (s1 < s3)
                            {
                                int j6 = *s1++;
                                int k6 = j6 & 31;
                                int i7 = j6 >> 5 & 63;
                                int j7 = j6 >> 11 & 31;
                                int k7 = 255;
                                k6 *= 255;
                                k6 /= 31;
                                i7 *= 255;
                                i7 /= 63;
                                j7 *= 255;
                                j7 /= 31;
                                if (j7 == 0 && i7 == 0 && k6 == 0)
                                {
                                    k7 = 0;
                                }
                                i7 <<= 8;
                                j7 <<= 16;
                                k7 <<= 24;
                                j6   = k7 | j7 | i7 | k6;
                                *k5++ = j6;
                            }
                            k5 += i6;
                        }
                    }

                    goto default;

                case 2:
                    fixed(byte *b2 = &bs[0])
                    {
                        short *s4 = (short *)b2;
                        int *  i8 = (int *)bitmapData.Scan0;
                        short *s5 = s4 + (j2 * k2);
                        int    j8 = (bitmapData.Stride >> 2) - bitmapData.Width;

                        while (s4 < s5)
                        {
                            short *s6 = s4 + j2;
                            while (s4 < s6)
                            {
                                int k8  = *s4++;
                                int i9  = k8 & 15;
                                int j9  = k8 >> 4 & 15;
                                int k9  = k8 >> 8 & 15;
                                int i10 = k8 >> 12 & 15;
                                i9  *= 255;
                                i9  /= 15;
                                j9  *= 255;
                                j9  /= 15;
                                k9  *= 255;
                                k9  /= 15;
                                i10 *= 255;
                                i10 /= 15;
                                if (k9 == 0 && j9 == 0 && i9 == 0)
                                {
                                    i10 = 0;
                                }
                                j9  <<= 8;
                                k9  <<= 16;
                                i10 <<= 24;
                                k8    = i10 | k9 | j9 | i9;
                                *i8++ = k8;
                            }
                            i8 += j8;
                        }
                    }

                    goto default;

                case 1:
                    fixed(byte *b3 = &bs[0])
                    {
                        short *s7  = (short *)b3;
                        int *  j10 = (int *)bitmapData.Scan0;
                        int    k10 = bitmapData.Stride >> 2;
                        int *  i12;

                        for (int i11 = 0; i11 < k2; i11++)
                        {
                            int *j11 = j10 + (i11 * k10);
                            int *k11 = j11;
                            i12 = k11;
                            int j12 = *s7++;
                            int k12 = *s7++;
                            for (int i13 = 0; i13 < k12; i13++)
                            {
                                int  j13 = *s7++;
                                int *k13 = j11 + j13;
                                if (k11 < k13)
                                {
                                    try
                                    {
                                        for (*k11++ = 0; k11 < k13; *k11++ = 0)
                                        {
                                        }
                                    }
                                    catch { }
                                }
                                else if (k11 > k13)
                                {
                                    try
                                    {
                                        for (*k11-- = 0; k11 > k13; *k11-- = 0)
                                        {
                                        }
                                    }
                                    catch { }
                                }
                                k11 = k13;
                                int i14 = *s7++;
                                k13 = k11 + i14;
                                while (k11 < k13)
                                {
                                    int j14 = *s7++;
                                    int k14 = j14 & 31;
                                    int i15 = j14 >> 5 & 63;
                                    int j15 = j14 >> 11 & 31;
                                    int k15 = 255;
                                    k14 *= 255;
                                    k14 /= 31;
                                    i15 *= 255;
                                    i15 /= 63;
                                    j15 *= 255;
                                    j15 /= 31;
                                    if (j15 == 0 && i15 == 0 && k14 == 0)
                                    {
                                        k15 = 0;
                                    }
                                    i15 <<= 8;
                                    j15 <<= 16;
                                    k15 <<= 24;
                                    j14   = k15 | j15 | i15 | k14;
                                    *k11++ = j14;
                                }
                            }
                            while (k11 < i12)
                            {
                                *k11++ = 0;
                            }
                            i12 += k10;
                        }
                    }

                    goto default;

                default:
                    bitmap.UnlockBits(bitmapData);
                    j1++;
                    break;
                }
            }
            return(frames1);
        }
示例#18
0
 public virtual string GetType(ArchivedFile file)
 {
     return m_Title;
 }
示例#19
0
 public abstract void FillPanel(ArchivedFile file, Panel pn);
 public abstract void FillPanel(ArchivedFile file, Panel pn);