Пример #1
0
        private static void LoadTexture(TextureLibrary library, TextureInfo info)
        {
            OpenFileDialog ofd = new OpenFileDialog
            {
                Filter = "Images|*.png;*.bmp;*.jpg",
            };

            if (ofd.ShowDialog() == DialogResult.OK)
            {
                Bitmap bitmap;
                try
                {
                    bitmap = new Bitmap(ofd.FileName);
                }
                catch (Exception exception)
                {
                    MessageBox.Show(
                        $"Unable to open image {ofd.FileName}\n{exception.Message}",
                        "Invalid image",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Error,
                        MessageBoxDefaultButton.Button1);
                    return;
                }
                library.AddChange(info.name, bitmap);
            }
        }
Пример #2
0
        public static ContextMenuStrip FromImages(TextureLibrary library, IEnumerable <TextureInfo> info,
                                                  bool useBaseFolder = false, IProgress <ImageOpProgress> progress = null)
        {
            ContextMenuStrip menu = new ContextMenuStrip();

            menu.Items.Add($"&Save {info.Count()} images as...", null,
                           (sender, ev) => SaveTextures(library, info, useBaseFolder, progress));
            return(menu);
        }
Пример #3
0
        public static ContextMenuStrip FromImage(TextureLibrary library, TextureInfo info)
        {
            ContextMenuStrip menu = new ContextMenuStrip();

            menu.Items.Add("&Replace with...", null, (sender, ev) => LoadTexture(library, info));
            if (library.ImageChanges.Any(n => n.Key == info.name))
            {
                menu.Items.Add("Discard changes", null, (sender, ev) => library.DiscardChange(info));
            }
            menu.Items.Add(new ToolStripSeparator());
            menu.Items.Add("&Copy", null, (sender, ev) => Clipboard.SetImage(library.LoadTexture(info)));
            menu.Items.Add("&Save as...", null, (sender, ev) => SaveTexture(info.name, library.LoadTexture(info)));
            return(menu);
        }
Пример #4
0
        public static void SaveTextures(TextureLibrary library, IEnumerable <TextureInfo> files, bool useBaseFolder = false, IProgress <ImageOpProgress> progress = null)
        {
            var fbd = new FolderBrowserDialog()
            {
                RootFolder             = Environment.SpecialFolder.Desktop,
                UseDescriptionForTitle = true,
                Description            = "Destination folder"
            };

            if (fbd.ShowDialog() == DialogResult.OK)
            {
                library.SaveTextures(fbd.SelectedPath, files, useBaseFolder, progress);
            }
        }
Пример #5
0
 public DraggableImages(TextureLibrary library, TextureInfo[] images)
 {
     this.library = library;
     this.images  = images;
 }