예제 #1
0
        /// <summary>
        /// Handles the export item context item activated event.
        /// </summary>
        /// <param name="page">Sender.</param>
        /// <param name="fileReference">E.</param>
        private static void OnExportItemRequested(GamePage page, FileReference fileReference)
        {
            // TODO: Create a better exporter (EverlookExporter.Export(<>)?)
            switch (fileReference.GetReferencedFileType())
            {
            case WarcraftFileType.Directory:
            {
                /*
                 * using (EverlookDirectoryExportDialog exportDialog = EverlookDirectoryExportDialog.Create(fileReference))
                 * {
                 *      if (exportDialog.Run() == (int)ResponseType.Ok)
                 *      {
                 *              exportDialog.RunExport();
                 *      }
                 *      exportDialog.Destroy();
                 * }
                 */
                break;
            }

            case WarcraftFileType.BinaryImage:
            {
                using (EverlookImageExportDialog exportDialog = EverlookImageExportDialog.Create(fileReference))
                {
                    if (exportDialog.Run() == (int)ResponseType.Ok)
                    {
                        exportDialog.RunExport();
                    }
                    exportDialog.Destroy();
                }
                break;
            }
            }
        }
예제 #2
0
        /// <summary>
        /// Handles the export item context item activated event.
        /// </summary>
        /// <param name="sender">Sender.</param>
        /// <param name="e">E.</param>
        private void OnExportItemContextItemActivated(object sender, EventArgs e)
        {
            FileReference fileReference = GetSelectedReference();

            if (string.IsNullOrEmpty(fileReference?.FilePath))
            {
                return;
            }

            WarcraftFileType fileType = fileReference.GetReferencedFileType();

            switch (fileType)
            {
            case WarcraftFileType.Directory:
            {
                if (fileReference.IsFullyEnumerated)
                {
                    using (EverlookDirectoryExportDialog exportDialog = EverlookDirectoryExportDialog.Create(fileReference))
                    {
                        if (exportDialog.Run() == (int)ResponseType.Ok)
                        {
                            exportDialog.RunExport();
                        }
                        exportDialog.Destroy();
                    }
                }
                else
                {
                    // TODO: Implement wait message when the directory and its subdirectories have not yet been enumerated.
                }
                break;
            }

            case WarcraftFileType.BinaryImage:
            {
                using (EverlookImageExportDialog exportDialog = EverlookImageExportDialog.Create(fileReference))
                {
                    if (exportDialog.Run() == (int)ResponseType.Ok)
                    {
                        exportDialog.RunExport();
                    }
                    exportDialog.Destroy();
                }
                break;
            }
            }
        }