Example #1
0
 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));
 }
Example #2
0
        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);
        }
Example #3
0
 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");
         }
     }
 }
Example #4
0
 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();
         }
     }
 }
Example #5
0
 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;
         }
     }
 }
Example #6
0
        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();
            }
        }
Example #7
0
        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);
                }
            }
        }
Example #8
0
        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);
        }
Example #9
0
        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;
            }
        }
Example #10
0
 public void SetValues(MNReferencedImage img)
 {
     labelKey.Text     = img.Name;
     Value             = img;
     pictureBox1.Image = img.ImageData;
 }
Example #11
0
        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;
                }
            }
        }
Example #12
0
        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");
                }
            }
        }
Example #13
0
 public static void AddImage(MNReferencedImage img)
 {
     AddImageToArray(internalDocument, img, true);
 }