private void LoadSelectedImage() { TreeNode selected = UI_FileList.SelectedNode; if (selected.Tag != null && selected.Tag is CASCFile) { CASCFile file = (CASCFile)selected.Tag; if (extractRunner != null) { extractRunner.Kill(); extractRunner = null; } ClearImagePreview(); UI_PreviewStatus.Text = "Loading..."; UI_PreviewStatus.Show(); string fullPath = Path.Combine(Constants.TEMP_DIRECTORY, file.FullName); if (File.Exists(fullPath)) { displayImage(fullPath); } else { extractRunner = new RunnerExtractItem(file); runnerID = extractRunner.runnerID; extractRunner.Begin(); } } }
private void displayImage(string file) { currentImage = null; UI_PreviewStatus.Hide(); using (var blp = new BlpFile(File.OpenRead(file))) currentImage = blp.GetBitmap(0); Graphics gfx = UI_ImagePreview.CreateGraphics(); gfx.Clear(UI_ImagePreview.BackColor); gfx.DrawImage(currentImage, 0, 0); UI_ExportButton.Show(); currentImageName = file; }
private void UI_FileList_AfterSelect(object sender, TreeViewEventArgs e) { TreeNode selected = UI_FileList.SelectedNode; if (selected != null) { // Clean up previous excursions. TerminateRunners(); // Terminate runners that be running. if (canvas != null) { canvas.Dispose(); } canvas = null; overlay.ClearPoints(); UI_PreviewStatus.Hide(); UI_Map.Invalidate(); UI_ExportButton.Enabled = true; UI_ExportImageButton.Enabled = true; drawOffsetX = lastOffsetX = 0; drawOffsetY = lastOffsetY = 0; // Detatch mouse control (this shouldn't ever be an issue, really). isMovingMap = false; string mapName = selected.Text; selectedMapName = mapName; tileTotal = maps[mapName].Count; tileDone = 0; UI_TileDisplay.Text = string.Format(Constants.MAP_VIEWER_TILE_STATUS, 0, 0); UI_TileDisplay.Show(); UI_ExportTip.Hide(); buildRunner = new RunnerBuildMinimap(maps[mapName].ToArray()); buildRunnerIndex = buildRunner.Index; buildRunner.Begin(); } }
private void OnFileExtractComplete(object sender, EventArgs rawArgs) { FileExtractCompleteArgs args = (FileExtractCompleteArgs)rawArgs; if (args.RunnerID == runnerID) { currentImageName = null; UI_ExportButton.Hide(); if (args.Success) { displayImage(Path.Combine(Constants.TEMP_DIRECTORY, args.File.FullName)); } else { UI_PreviewStatus.Text = "Error loading image!"; UI_PreviewStatus.Show(); } extractRunner = null; } }