コード例 #1
0
ファイル: ImageForm.cs プロジェクト: ultramario1998/Kuriimu2
        public ImageForm(KoreFileInfo kfi, TabPage tabPage, IArchiveAdapter parentAdapter, TabPage parentTabPage)
        {
            InitializeComponent();

            Kfi = kfi;

            _currentTab    = tabPage;
            _parentTab     = parentTabPage;
            _parentAdapter = parentAdapter;
            _bestBitmaps   = _imageAdapter.BitmapInfos.Select(x => (Bitmap)x.Image.Clone()).ToArray();

            imbPreview.Image = _imageAdapter.BitmapInfos.FirstOrDefault()?.Image;
            tsbFormat.DropDownItems.AddRange(_imageAdapter.FormatInfos?.Select(f => new ToolStripMenuItem {
                Text = f.FormatName, Tag = f, Checked = f.FormatIndex == _selectedBitmapInfo.FormatInfo.FormatIndex
            }).ToArray());
            if (tsbFormat.DropDownItems.Count > 0)
            {
                foreach (var tsb in tsbFormat.DropDownItems)
                {
                    ((ToolStripMenuItem)tsb).Click += tsbFormat_Click;
                }
            }

            tsbImageBorderStyle.DropDownItems.AddRange(Enum.GetNames(typeof(ImageBoxBorderStyle)).Select(s => new ToolStripMenuItem {
                Image = (Image)Resources.ResourceManager.GetObject(_stylesImages[s]), Text = _stylesText[s], Tag = s
            }).ToArray());
            foreach (var tsb in tsbImageBorderStyle.DropDownItems)
            {
                ((ToolStripMenuItem)tsb).Click += tsbImageBorderStyle_Click;
            }

            UpdateForm();
            UpdatePreview();
            UpdateImageList();
        }
コード例 #2
0
        public LayoutForm(KoreFileInfo kfi, TabPage tabPage, IArchiveAdapter parentAdapter, TabPage parentTabPage)
        {
            InitializeComponent();

            Kfi            = kfi;
            _currentTab    = tabPage;
            _parentTab     = parentTabPage;
            _parentAdapter = parentAdapter;

            imgLayout.Image = new Bitmap(500, 500);

            UpdateForm();
            UpdateLayout();
        }
コード例 #3
0
ファイル: TextForm.cs プロジェクト: my-test-hub/Kuriimu2
        public TextForm(KoreFileInfo kfi, TabPage tabPage, IArchiveAdapter parentAdapter, TabPage parentTabPage, IList <IGameAdapter> gameAdapters)
        {
            InitializeComponent();

            Kfi = kfi;

            _currentTab    = tabPage;
            _parentTab     = parentTabPage;
            _parentAdapter = parentAdapter;

            LoadGameAdapters(gameAdapters);
            LoadEntries(_textAdapter.Entries);

            UpdatePreview();
            UpdateForm();
        }
コード例 #4
0
        private void ReplaceFilesInAdapter(IArchiveAdapter parentAdapter, BaseReadOnlyDirectoryNode physicalFs, string root)
        {
            // Loop through all directories
            foreach (var dir in physicalFs.EnumerateDirectories())
            {
                ReplaceFilesInAdapter(parentAdapter, physicalFs.GetDirectoryNode(dir.RelativePath), root);
            }

            // Update files of this directory
            foreach (var file in physicalFs.EnumerateFiles())
            {
                var openedFile = file.Open();
                var afi        = parentAdapter.Files.FirstOrDefault(x => Common.UnifyPath(x.FileName) == file.RelativePath);
                if (afi != null)
                {
                    afi.FileData.Dispose();
                    afi.FileData = openedFile;
                    afi.State    = ArchiveFileState.Replaced;
                }
            }
        }
コード例 #5
0
        private void ReplaceFilesInAdapter(IArchiveAdapter parentAdapter, IFileSystem physicalFS, string root)
        {
            // Loop through all directories
            foreach (var dir in physicalFS.EnumerateDirectories(true))
            {
                ReplaceFilesInAdapter(parentAdapter, physicalFS.GetDirectory(dir), root);
            }

            // Update files of this directory
            foreach (var file in physicalFS.EnumerateFiles())
            {
                var openedFile = physicalFS.OpenFile(file.Remove(0, root.Length + 1));
                var afi        = parentAdapter.Files.FirstOrDefault(x => UnifyPathDelimiters(x.FileName) == UnifyPathDelimiters(file.Remove(0, root.Length + 1)));
                if (afi != null)
                {
                    afi.FileData.Dispose();
                    afi.FileData = openedFile;
                    afi.State    = ArchiveFileState.Replaced;
                }
            }
        }
コード例 #6
0
        public ArchiveForm(KoreFileInfo kfi, TabPage tabPage, IArchiveAdapter parentAdapter, TabPage parentTabPage, string tempFolder, PluginLoader pluginLoader)
        {
            InitializeComponent();

            // Overwrite window themes
            //Win32.SetWindowTheme(treDirectories.Handle, "explorer", null);
            //Win32.SetWindowTheme(lstFiles.Handle, "explorer", null);

            // Populate image list
            imlFiles.Images.Add("tree-directory", Resources.tree_directory);
            imlFiles.Images.Add("tree-directory-open", Resources.tree_directory_open);
            imlFiles.Images.Add("tree-text-file", Resources.tree_text_file);
            imlFiles.Images.Add("tree-image-file", Resources.tree_image_file);
            imlFiles.Images.Add("tree-archive-file", Resources.tree_archive_file);
            imlFilesLarge.Images.Add("tree-directory", Resources.tree_directory_32);
            imlFilesLarge.Images.Add("tree-directory-open", Resources.tree_directory_open);
            imlFilesLarge.Images.Add("tree-text-file", Resources.tree_text_file_32);
            imlFilesLarge.Images.Add("tree-image-file", Resources.tree_image_file_32);
            imlFilesLarge.Images.Add("tree-archive-file", Resources.tree_archive_file_32);

            Kfi = kfi;
            Kfi.PropertyChanged += Kfi_PropertyChanged;

            _currentTab = tabPage;
            _parentTab  = parentTabPage;

            _tempFolder = tempFolder;
            _subFolder  = Guid.NewGuid().ToString();
            _childTabs  = new List <TabPage>();

            _pluginLoader = pluginLoader;

            if (!Directory.Exists(Path.Combine(tempFolder, _subFolder)))
            {
                Directory.CreateDirectory(Path.Combine(tempFolder, _subFolder));
            }

            LoadDirectories();
            UpdateForm();
        }
コード例 #7
0
        public VirtualFileSystem(IArchiveAdapter adapter, string tempFolder, string root = "")
        {
            if (string.IsNullOrEmpty(tempFolder))
            {
                throw new InvalidOperationException("Temporary Folder path was not given.");
            }
            if (root == null)
            {
                throw new ArgumentNullException("Root directory was null.");
            }

            _adapter = adapter ?? throw new ArgumentNullException("Archive Adapter was null.");
            _files   = adapter.Files;

            RootDirectory = UnifyPathDelimiters(root);
            _tempFolder   = Path.GetFullPath(tempFolder);

            if (!Directory.Exists(_tempFolder))
            {
                Directory.CreateDirectory(_tempFolder);
            }
        }
コード例 #8
0
ファイル: ImageForm.cs プロジェクト: my-test-hub/Kuriimu2
        public ImageForm(KoreFileInfo kfi, TabPage tabPage, IArchiveAdapter parentAdapter, TabPage parentTabPage)
        {
            InitializeComponent();

            Kfi            = kfi;
            _currentTab    = tabPage;
            _parentTab     = parentTabPage;
            _parentAdapter = parentAdapter;

            try
            {
                if (_imageAdapter.BitmapInfos == null)
                {
                    throw new ArgumentNullException(nameof(_imageAdapter.BitmapInfos));
                }
                if (_imageAdapter.ImageEncodingInfos == null)
                {
                    throw new ArgumentNullException(nameof(_imageAdapter.ImageEncodingInfos));
                }
                if (_imageAdapter is IIndexedImageAdapter indexAdapter)
                {
                    if (indexAdapter.PaletteEncodingInfos == null)
                    {
                        throw new ArgumentNullException(nameof(indexAdapter.PaletteEncodingInfos));
                    }
                }
            }
            catch
            {
                throw new InvalidOperationException($"The plugin missed to implement a property.");
            }

            _bestBitmaps = _imageAdapter.BitmapInfos.Select(x => (Bitmap)x.Image.Clone()).ToArray();

            imbPreview.Image = _imageAdapter.BitmapInfos.FirstOrDefault()?.Image;

            // Populate format dropdown
            tsbFormat.DropDownItems.AddRange(_imageAdapter.ImageEncodingInfos?.Select(f => new ToolStripMenuItem {
                Text = f.EncodingName, Tag = f, Checked = f.EncodingIndex == _selectedBitmapInfo.ImageEncoding.EncodingIndex
            }).ToArray());
            if (tsbFormat.DropDownItems.Count > 0)
            {
                foreach (var tsb in tsbFormat.DropDownItems)
                {
                    ((ToolStripMenuItem)tsb).Click += tsbFormat_Click;
                }
            }

            // populate palette format dropdown
            if (_imageAdapter is IIndexedImageAdapter indexAdapter2 && _selectedBitmapInfo is IndexedBitmapInfo indexInfo)
            {
                tsbPalette.DropDownItems.AddRange(indexAdapter2.PaletteEncodingInfos?.Select(f => new ToolStripMenuItem {
                    Text = f.EncodingName, Tag = f, Checked = f.EncodingIndex == indexInfo.PaletteEncoding.EncodingIndex
                }).ToArray());
                if (tsbPalette.DropDownItems.Count > 0)
                {
                    foreach (var tsb in tsbPalette.DropDownItems)
                    {
                        ((ToolStripMenuItem)tsb).Click += tsbPalette_Click;
                    }
                }
            }

            tsbImageBorderStyle.DropDownItems.AddRange(Enum.GetNames(typeof(ImageBoxBorderStyle)).Select(s => new ToolStripMenuItem {
                Image = (Image)Resources.ResourceManager.GetObject(_stylesImages[s]), Text = _stylesText[s], Tag = s
            }).ToArray());
            foreach (var tsb in tsbImageBorderStyle.DropDownItems)
            {
                ((ToolStripMenuItem)tsb).Click += tsbImageBorderStyle_Click;
            }

            UpdateForm();
            UpdatePreview();
            UpdateImageList();
        }
コード例 #9
0
 public void Dispose()
 {
     _adapter = null;
     _files   = null;
 }