private void ChangeFileType(FileType NewFileType) { bool changedType = false; foreach (ListViewItem item in listFiles.SelectedItems) { RetroDevStudio.Types.FileInfo fileToChange = (RetroDevStudio.Types.FileInfo)item.Tag; if (fileToChange.Type != NewFileType) { m_Media.ChangeFileType(fileToChange, NewFileType); changedType = true; } } if (changedType) { RefreshFileView(); SetModified(); UpdateStatusInfo(); } }
private void UpdateStatusInfo() { if (m_Media == null) { saveToolStripMenuItem.Enabled = false; saveasToolStripMenuItem.Enabled = false; validateMediumToolStripMenuItem.Enabled = false; } else { saveToolStripMenuItem.Enabled = Modified; saveasToolStripMenuItem.Enabled = true; validateMediumToolStripMenuItem.Enabled = true; } if (listFiles.SelectedItems.Count == 0) { if ((m_Media is Formats.D64) || (m_Media is Formats.D71) || (m_Media is Formats.D81)) { statusFileManager.Text = m_Media.FreeSlots.ToString() + "/" + m_Media.Slots.ToString() + " blocks free" + " " + listFiles.Items.Count + " files"; return; } if (m_Media != null) { statusFileManager.Text = m_Media.FreeSlots.ToString() + "/" + m_Media.Slots.ToString() + " files free" + " " + listFiles.Items.Count + " files"; return; } statusFileManager.Text = "No media opened"; return; } RetroDevStudio.Types.FileInfo file = (RetroDevStudio.Types.FileInfo)listFiles.SelectedItems[0].Tag; statusFileManager.Text = Util.FilenameToUnicode(file.Filename) + " " + file.Blocks.ToString() + " blocks"; }
private void listFiles_SelectedIndexChanged(object sender, EventArgs e) { if (listFiles.SelectedIndices.Count == 0) { toolStripBtnOpenHex.Enabled = false; toolStripBtnOpenBASIC.Enabled = false; toolStripBtnExportToFile.Enabled = false; } else { toolStripBtnOpenHex.Enabled = true; toolStripBtnExportToFile.Enabled = true; bool exportToBasicPossible = true; foreach (ListViewItem listItem in listFiles.SelectedItems) { RetroDevStudio.Types.FileInfo fileInfo = (RetroDevStudio.Types.FileInfo)listItem.Tag; if (fileInfo.Type != RetroDevStudio.Types.FileType.PRG) { exportToBasicPossible = false; break; } } toolStripBtnOpenBASIC.Enabled = exportToBasicPossible; } if ((listFiles.Items.Count <= 1) || (listFiles.SelectedIndices.Count == 0)) { toolStripBtnMoveFileDown.Enabled = false; toolStripBtnMoveFileUp.Enabled = false; return; } toolStripBtnMoveFileUp.Enabled = (listFiles.SelectedIndices[0] > 0); toolStripBtnMoveFileDown.Enabled = (listFiles.SelectedIndices[0] + 1 < listFiles.Items.Count); }
private void ExportSelectedItems() { foreach (ListViewItem item in listFiles.SelectedItems) { RetroDevStudio.Types.FileInfo fileToExport = (RetroDevStudio.Types.FileInfo)item.Tag; RetroDevStudio.Types.FileInfo fileInfo = null; if (m_Media != null) { fileInfo = m_Media.LoadFile(fileToExport.Filename); } if (fileInfo != null) { System.Windows.Forms.SaveFileDialog saveDlg = new System.Windows.Forms.SaveFileDialog(); string readableFilename = Util.FilenameToReadableUnicode(fileToExport.Filename).TrimEnd(); char[] invalidChars = System.IO.Path.GetInvalidFileNameChars(); foreach (char invChar in invalidChars) { readableFilename = readableFilename.Replace(invChar, '_'); } saveDlg.Title = "Select target file name for " + readableFilename; saveDlg.Filter = "All Files|*.*"; saveDlg.FileName = readableFilename; if (fileToExport.Type == RetroDevStudio.Types.FileType.PRG) { saveDlg.FileName += ".prg"; } if (saveDlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) { GR.IO.File.WriteAllBytes(saveDlg.FileName, fileInfo.Data); } } } }
private void listFiles_MouseClick(object sender, MouseEventArgs e) { if ((e.Button != MouseButtons.Right) || (listFiles.SelectedItems.Count == 0)) { return; } System.Windows.Forms.ContextMenuStrip contextMenu = new System.Windows.Forms.ContextMenuStrip(); System.Windows.Forms.ToolStripMenuItem item = new System.Windows.Forms.ToolStripMenuItem("Export"); item.Tag = 0; contextMenu.Items.Add(item); System.Windows.Forms.ToolStripMenuItem subItem = new System.Windows.Forms.ToolStripMenuItem("Export to file"); subItem.Tag = 0; subItem.Click += new EventHandler(itemExport_Click); item.DropDownItems.Add(subItem); bool exportToBasicPossible = true; foreach (ListViewItem listItem in listFiles.SelectedItems) { RetroDevStudio.Types.FileInfo fileInfo = (RetroDevStudio.Types.FileInfo)listItem.Tag; if (fileInfo.Type != RetroDevStudio.Types.FileType.PRG) { exportToBasicPossible = false; } } if (exportToBasicPossible) { item.DropDownItems.Add("--"); foreach (var dialect in Core.Compiling.BASICDialects) { subItem = new System.Windows.Forms.ToolStripMenuItem("Export to Basic code: " + dialect.Key); subItem.Tag = dialect.Value; subItem.Click += new EventHandler(itemExportToBasic_Click); item.DropDownItems.Add(subItem); } } // view in Hex display item = new System.Windows.Forms.ToolStripMenuItem("View in Hex Editor"); item.Tag = 2; item.Click += new EventHandler(itemViewInHexEditor_Click); contextMenu.Items.Add(item); item = new System.Windows.Forms.ToolStripMenuItem("Change File Type"); item.Tag = 2; //item.Click += new EventHandler( itemChangeType_Click ); contextMenu.Items.Add(item); subItem = new ToolStripMenuItem("PRG"); subItem.Tag = FileType.PRG; subItem.Click += new EventHandler(itemChangeType_Click); item.DropDownItems.Add(subItem); subItem = new ToolStripMenuItem("DEL"); subItem.Tag = FileType.DEL; subItem.Click += new EventHandler(itemChangeType_Click); item.DropDownItems.Add(subItem); subItem = new ToolStripMenuItem("USR"); subItem.Tag = FileType.USR; subItem.Click += new EventHandler(itemChangeType_Click); item.DropDownItems.Add(subItem); subItem = new ToolStripMenuItem("REL"); subItem.Tag = FileType.REL; subItem.Click += new EventHandler(itemChangeType_Click); item.DropDownItems.Add(subItem); subItem = new ToolStripMenuItem("SEQ"); subItem.Tag = FileType.SEQ; subItem.Click += new EventHandler(itemChangeType_Click); item.DropDownItems.Add(subItem); item = new System.Windows.Forms.ToolStripMenuItem("Rename"); item.Tag = 2; item.Click += new EventHandler(itemRename_Click); contextMenu.Items.Add(item); item = new System.Windows.Forms.ToolStripMenuItem("Delete"); item.Tag = 1; item.Click += new EventHandler(itemDelete_Click); contextMenu.Items.Add(item); contextMenu.Show(listFiles.PointToScreen(e.Location)); }