public void UpdateListViewItem(ListViewItem lvi, MNReferencedImage img) { lvi.SubItems.Clear(); lvi.Text = img.Name; lvi.Tag = img; lvi.SubItems.Add(string.Format("{0}x{1}", img.ImageData.Size.Width, img.ImageData.Size.Height)); }
private void listBoxImages_MeasureItem(object sender, MeasureItemEventArgs e) { MNReferencedImage image = listBoxImages.Items[e.Index] as MNReferencedImage; SizeF sizeOfText = e.Graphics.MeasureString("M", SystemFonts.MenuFont); e.ItemHeight = Convert.ToInt32(sizeOfText.Height * 2 + 12); image.ItemHeight = e.ItemHeight; image.ItemTextHeight = Convert.ToInt32(sizeOfText.Height); }
private void tsbImagesEditSpots_Click(object sender, EventArgs e) { if (listBoxImages.SelectedIndex >= 0 && listBoxImages.SelectedIndex < listBoxImages.Items.Count) { MNReferencedImage ri = (MNReferencedImage)listBoxImages.Items[listBoxImages.SelectedIndex]; if (ri != null) { PresentData(ri, "spots"); } } }
private void tsbAddImageToLibrary(object sender, EventArgs e) { if (listBoxImages.SelectedIndex >= 0 && listBoxImages.SelectedIndex < listBoxImages.Items.Count) { MNReferencedImage ri = (MNReferencedImage)listBoxImages.Items[listBoxImages.SelectedIndex]; if (ri != null) { MNSharedObjects.AddImage(ri); MNSharedObjects.Save(); } } }
private void pictureBox1_DragDrop(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(typeof(MNReferencedImage)) && p_editedItem != null) { MNReferencedImage ri = (MNReferencedImage)e.Data.GetData(typeof(MNReferencedImage)); if (ri != null) { p_editedItem.ImageName = ri.Name; pictureBox1.Image = ri.ImageData; } } }
public static void Load() { if (File.Exists(FilePath)) { using (Stream sr = File.OpenRead(FilePath)) { using (BinaryReader br = new BinaryReader(sr)) { RSFileReader fr = new RSFileReader(br); byte b = 0; internalDocument = new MNDocument(); while ((b = fr.ReadByte()) != 0) { switch (b) { case 10: MNPage p = new MNPage(internalDocument); p.Load(fr); p.TemplateName = ""; p.TemplateId = -1; internalDocument.Data.Templates.Add(p); break; case 11: MNReferencedImage img = new MNReferencedImage(); img.Load(fr); internalDocument.DefaultLanguage.Images.Add(img); break; case 12: MNReferencedStyle st = new MNReferencedStyle(); st.Load(fr); internalDocument.DefaultLanguage.Styles.Add(st); break; } } } } //internalDocument.ReapplyStyles(); } }
private void listBoxImages_DrawItem(object sender, DrawItemEventArgs e) { if ((e.State & DrawItemState.Selected) > 0) { e.Graphics.FillRectangle(Brushes.LightBlue, e.Bounds); } else { e.Graphics.FillRectangle(SystemBrushes.Window, e.Bounds); } if (e.Index >= 0) { MNReferencedImage image = listBoxImages.Items[e.Index] as MNReferencedImage; SizeF sizeOfText = e.Graphics.MeasureString("M", SystemFonts.MenuFont); if (image != null && image.ImageData != null) { int sz = Math.Max(image.ImageData.Height, image.ImageData.Width); double change = image.ItemHeight / Convert.ToDouble(sz); Rectangle rect = new Rectangle(0, 0, Convert.ToInt32(image.ImageData.Width * change), Convert.ToInt32(image.ImageData.Height * change)); if (rect.Width > rect.Height) { rect.Y = (image.ItemHeight - rect.Height) / 2; } else { rect.X = (image.ItemHeight - rect.Width) / 2; } rect.X += e.Bounds.X + 8; rect.Y += e.Bounds.Y + 4; e.Graphics.DrawImage(image.ImageData, rect); e.Graphics.DrawString(image.Name, SystemFonts.MenuFont, Brushes.Black, e.Bounds.X + image.ItemHeight + 16, e.Bounds.Y + 4); e.Graphics.DrawString(image.Description, SystemFonts.MenuFont, Brushes.Gray, e.Bounds.X + image.ItemHeight + 8, e.Bounds.Y + 8 + sizeOfText.Height); } } }
private static bool AddImageToArray(MNDocument doc, MNReferencedImage img, bool overwrite) { bool added = false; if (img == null || img.Name.Length == 0) { return(false); } int index = -1; List <MNReferencedImage> array = doc.DefaultLanguage.Images; for (int i = 0; i < array.Count; i++) { if (array[i].Name == img.Name) { index = i; break; } } if (index >= 0) { if (overwrite) { array.RemoveAt(index); array.Insert(index, img); added = true; } } else { array.Add(img); added = true; } return(added); }
private static void ProcessCommand(string cmd, string arg) { string[] p; string fn; switch (cmd) { case "BookCode": Doc = new MNDocument(); Book = new MNBookHeader(); Book.BookCode = arg; BookCode = arg; Data = new MNBookData(Doc); break; case "BookName": Book.BookTitle = arg; break; case "BookColor": string[] rgb = arg.Split(','); Book.BookColor = Color.FromArgb(int.Parse(rgb[0]), int.Parse(rgb[1]), int.Parse(rgb[2])); break; case "BookIcon": Book.BookImage = GetSmallImage(arg); break; case "Author": Book.BookAuthor = arg; break; case "Copyright": Book.BookCopyright = arg; break; case "Publisher": Book.BookPublisher = arg; break; case "Collection": Book.BookCollection = arg; break; case "ExecuteFile": ProcessFile(arg); break; case "Language": Localisation = new MNLocalisation(); Localisation.SetProperty("BookCode", Book.BookCode); Localisation.SetProperty("LanguageName", arg); break; case "EndLanguage": string ln = Localisation.GetProperty("LanguageName"); if (ln == "Default") { fn = BookCode + ".sme"; } else { fn = string.Format("{0}_{1}.sme", BookCode, Localisation.GetProperty("LanguageName")); } string filePath = Path.Combine(OutputDir, fn); try { File.Delete(filePath); } catch { } Localisation.Save(filePath); Localisation = null; break; case "AddImage": MNReferencedImage img = new MNReferencedImage(); p = arg.Split(','); img.Name = p[0]; img.ImageData = Image.FromFile(p[1]); Localisation.Images.Add(img); break; case "AddSound": MNReferencedSound snd = new MNReferencedSound(); p = arg.Split(','); snd.Name = p[0]; snd.InitializeWithFile(p[1]); Localisation.Sounds.Add(snd); break; } }
public void SetValues(MNReferencedImage img) { labelKey.Text = img.Name; Value = img; pictureBox1.Image = img.ImageData; }
private void buttonNewObject_Click(SMContentType preferredType) { DialogNewObject d = new DialogNewObject(preferredType); if (d.ShowDialog() == DialogResult.OK) { switch (d.ObjectType) { case SMContentType.Image: { OpenFileDialog fd = new OpenFileDialog(); fd.Filter = "Images (*.png,*.jpg,*.bmp)|*.png;*.jpg;*.bmp|All Files (*.*)|*.*||"; if (fd.ShowDialog() == DialogResult.OK) { MNReferencedImage img = new MNReferencedImage(); img.ImageData = Image.FromFile(fd.FileName); img.Name = d.ObjectName.Trim().Length > 0 ? d.ObjectName.Trim() : fd.FileName; data.Images.Add(img); data.Modified = true; UpdateDataWithUI(); } } break; case SMContentType.AudioText: { MNReferencedAudioText ra = new MNReferencedAudioText(); ra.Name = d.ObjectName; data.AudioTexts.Add(ra); data.Modified = true; UpdateDataWithUI(); } break; case SMContentType.Audio: { OpenFileDialog fd = new OpenFileDialog(); fd.Filter = "Sounds (*.wav,*.mp3,*.aiff)|*.wav;*.mp3;*.aiff|All Files (*.*)|*.*||"; if (fd.ShowDialog() == DialogResult.OK) { MNReferencedSound img = new MNReferencedSound(); img.InitializeWithFile(fd.FileName); img.Name = d.ObjectName.Trim().Length > 0 ? d.ObjectName.Trim() : fd.FileName; data.Sounds.Add(img); data.Modified = true; UpdateDataWithUI(); } } break; case SMContentType.Text: { MNReferencedText rt = new MNReferencedText(); rt.Name = d.ObjectName; data.Texts.Add(rt); data.Modified = true; UpdateDataWithUI(); } break; } } }
private void shrinkImagesToTheirCanvasToolStripMenuItem_Click(object sender, EventArgs e) { MNDocument doc = MNNotificationCenter.CurrentDocument; if (doc == null) { return; } Dictionary <long, Size> dsz = new Dictionary <long, Size>(); Dictionary <long, MNReferencedImage> dri = new Dictionary <long, MNReferencedImage>(); foreach (MNPage p in doc.Data.Pages) { foreach (SMControl c in p.Objects) { if (c is SMImage) { MNReferencedImage img = (c as SMImage).Img.Image; if (img != null && img.ImageData != null) { if (!img.Name.StartsWith("Image Pasted")) { continue; } SMRectangleArea area = c.Area; Rectangle bounds = area.GetBounds(PageEditDisplaySize.LandscapeBig); Size imageSize = img.ImageData.Size; Size imageDrawSize = SMImage.GetImageDrawSize(bounds, img.ImageData); if (imageSize.Width > imageDrawSize.Width || imageSize.Height > imageDrawSize.Height) { if (!dsz.ContainsKey(img.Id)) { Debugger.Log(0, "", "Image " + img.Id + " shrinked from " + imageSize.ToString() + " to " + imageDrawSize.ToString() + "\n"); dsz[img.Id] = imageDrawSize; dri[img.Id] = img; } else { Size storedSize = dsz[img.Id]; if (storedSize.Width < imageDrawSize.Width || storedSize.Height < imageDrawSize.Height) { dsz[img.Id] = imageDrawSize; } } } } } } } foreach (long imageId in dsz.Keys) { string tempFileName = Path.GetTempFileName(); if (dri.ContainsKey(imageId)) { Size newSize = dsz[imageId]; MNReferencedImage img = dri[imageId]; //Debugger.Log(0, "", " Size before shrink: " + GetImageSize(img.ImageData) + "\n"); ResizeImage(img.ImageData, newSize.Width, newSize.Height, tempFileName); Image newImage = Image.FromFile(tempFileName); img.ImageData = newImage; //Debugger.Log(0, "", " Size after shrink: " + GetImageSize(img.ImageData) + "\n"); doc.DefaultLanguage.Modified = true; Debugger.Log(0, "", "Used file " + tempFileName + "\n"); } } }
public static void AddImage(MNReferencedImage img) { AddImageToArray(internalDocument, img, true); }