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); }
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 void SetFile(ArchivedFile file) { //Log.WriteLine("SetFile"); MemoryStream memoryStream = new MemoryStream(); file.Download(memoryStream); SetStream(file.FileName, memoryStream); }
public FileNode(ArchivedFile archivedFile, int icon) : base(archivedFile.FileName) { ImageIndex = 2 + (icon * 2); SelectedImageIndex = 3 + (icon * 2); m_ArchivedFile = archivedFile; m_Icon = icon; }
public Archive(string name, ArchivedFile[] files) { m_Name = name; m_Files = files; for (int i = 0; i < files.Length; i++) { files[i].Archive = this; } }
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; }
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); } }
public virtual string GetType(ArchivedFile file) { return(m_Title); }
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]); } } }
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); }
public virtual string GetType(ArchivedFile file) { return m_Title; }
public abstract void FillPanel(ArchivedFile file, Panel pn);