diff --git a/SourceGen/AppForms/EditData.Designer.cs b/SourceGen/AppForms/EditData.Designer.cs index 760831d..6fd9e18 100644 --- a/SourceGen/AppForms/EditData.Designer.cs +++ b/SourceGen/AppForms/EditData.Designer.cs @@ -506,7 +506,7 @@ namespace SourceGen.AppForms { this.Name = "EditData"; this.ShowInTaskbar = false; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Edit Data"; + this.Text = "Edit Data Format"; this.Load += new System.EventHandler(this.EditData_Load); this.Shown += new System.EventHandler(this.EditData_Shown); this.symbolPartPanel.ResumeLayout(false); diff --git a/SourceGen/AppForms/EditOperand.Designer.cs b/SourceGen/AppForms/EditOperand.Designer.cs index 2d29147..ac99dca 100644 --- a/SourceGen/AppForms/EditOperand.Designer.cs +++ b/SourceGen/AppForms/EditOperand.Designer.cs @@ -340,7 +340,7 @@ namespace SourceGen.AppForms { this.Name = "EditOperand"; this.ShowInTaskbar = false; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Edit Operand"; + this.Text = "Edit Instruction Operand"; this.Load += new System.EventHandler(this.EditOperand_Load); this.Shown += new System.EventHandler(this.EditOperand_Shown); this.mainRadioPanel.ResumeLayout(false); diff --git a/SourceGen/AppForms/ProjectView.Designer.cs b/SourceGen/AppForms/ProjectView.Designer.cs index 2137b0d..4a66fd0 100644 --- a/SourceGen/AppForms/ProjectView.Designer.cs +++ b/SourceGen/AppForms/ProjectView.Designer.cs @@ -72,6 +72,7 @@ namespace SourceGen.AppForms this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator(); this.editHeaderCommentToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.projectPropertiesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toggleDataScanToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItem7 = new System.Windows.Forms.ToolStripSeparator(); this.settingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.actionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); @@ -79,7 +80,6 @@ namespace SourceGen.AppForms this.overrideStatusFlagsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.editLabelToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.editOperandToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.editDataFormatToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.editCommentToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.editLongCommentToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.editNoteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); @@ -175,7 +175,6 @@ namespace SourceGen.AppForms this.symbolNameColumnHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.infoGroupBox = new System.Windows.Forms.GroupBox(); this.infoTextBox = new System.Windows.Forms.TextBox(); - this.toggleDataScanToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.mainMenuStrip.SuspendLayout(); this.mainStatusStrip.SuspendLayout(); this.mainToolStrip.SuspendLayout(); @@ -247,7 +246,6 @@ namespace SourceGen.AppForms // openToolStripMenuItem // this.openToolStripMenuItem.Name = "openToolStripMenuItem"; - this.openToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O))); this.openToolStripMenuItem.Size = new System.Drawing.Size(208, 22); this.openToolStripMenuItem.Text = "Open"; this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click); @@ -356,7 +354,7 @@ namespace SourceGen.AppForms this.undoToolStripMenuItem.Name = "undoToolStripMenuItem"; this.undoToolStripMenuItem.ShortcutKeyDisplayString = ""; this.undoToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Z))); - this.undoToolStripMenuItem.Size = new System.Drawing.Size(201, 22); + this.undoToolStripMenuItem.Size = new System.Drawing.Size(207, 22); this.undoToolStripMenuItem.Text = "Undo"; this.undoToolStripMenuItem.Click += new System.EventHandler(this.undoToolStripMenuItem_Click); // @@ -364,33 +362,33 @@ namespace SourceGen.AppForms // this.redoToolStripMenuItem.Name = "redoToolStripMenuItem"; this.redoToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Y))); - this.redoToolStripMenuItem.Size = new System.Drawing.Size(201, 22); + this.redoToolStripMenuItem.Size = new System.Drawing.Size(207, 22); this.redoToolStripMenuItem.Text = "Redo"; this.redoToolStripMenuItem.Click += new System.EventHandler(this.redoToolStripMenuItem_Click); // // toolStripMenuItem1 // this.toolStripMenuItem1.Name = "toolStripMenuItem1"; - this.toolStripMenuItem1.Size = new System.Drawing.Size(198, 6); + this.toolStripMenuItem1.Size = new System.Drawing.Size(204, 6); // // copyToolStripMenuItem // this.copyToolStripMenuItem.Name = "copyToolStripMenuItem"; this.copyToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.C))); - this.copyToolStripMenuItem.Size = new System.Drawing.Size(201, 22); + this.copyToolStripMenuItem.Size = new System.Drawing.Size(207, 22); this.copyToolStripMenuItem.Text = "Copy"; this.copyToolStripMenuItem.Click += new System.EventHandler(this.copyToolStripMenuItem_Click); // // toolStripMenuItem2 // this.toolStripMenuItem2.Name = "toolStripMenuItem2"; - this.toolStripMenuItem2.Size = new System.Drawing.Size(198, 6); + this.toolStripMenuItem2.Size = new System.Drawing.Size(204, 6); // // selectAllToolStripMenuItem // this.selectAllToolStripMenuItem.Name = "selectAllToolStripMenuItem"; this.selectAllToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.A))); - this.selectAllToolStripMenuItem.Size = new System.Drawing.Size(201, 22); + this.selectAllToolStripMenuItem.Size = new System.Drawing.Size(207, 22); this.selectAllToolStripMenuItem.Text = "Select All"; this.selectAllToolStripMenuItem.Click += new System.EventHandler(this.selectAllToolStripMenuItem_Click); // @@ -398,7 +396,7 @@ namespace SourceGen.AppForms // this.findToolStripMenuItem.Name = "findToolStripMenuItem"; this.findToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F))); - this.findToolStripMenuItem.Size = new System.Drawing.Size(201, 22); + this.findToolStripMenuItem.Size = new System.Drawing.Size(207, 22); this.findToolStripMenuItem.Text = "Find..."; this.findToolStripMenuItem.Click += new System.EventHandler(this.findToolStripMenuItem_Click); // @@ -406,7 +404,7 @@ namespace SourceGen.AppForms // this.findNextToolStripMenuItem.Name = "findNextToolStripMenuItem"; this.findNextToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.F3; - this.findNextToolStripMenuItem.Size = new System.Drawing.Size(201, 22); + this.findNextToolStripMenuItem.Size = new System.Drawing.Size(207, 22); this.findNextToolStripMenuItem.Text = "Find Next"; this.findNextToolStripMenuItem.Click += new System.EventHandler(this.findNextToolStripMenuItem_Click); // @@ -414,38 +412,46 @@ namespace SourceGen.AppForms // this.gotoToolStripMenuItem.Name = "gotoToolStripMenuItem"; this.gotoToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.G))); - this.gotoToolStripMenuItem.Size = new System.Drawing.Size(201, 22); + this.gotoToolStripMenuItem.Size = new System.Drawing.Size(207, 22); this.gotoToolStripMenuItem.Text = "Go To..."; this.gotoToolStripMenuItem.Click += new System.EventHandler(this.gotoToolStripMenuItem_Click); // // toolStripMenuItem3 // this.toolStripMenuItem3.Name = "toolStripMenuItem3"; - this.toolStripMenuItem3.Size = new System.Drawing.Size(198, 6); + this.toolStripMenuItem3.Size = new System.Drawing.Size(204, 6); // // editHeaderCommentToolStripMenuItem // this.editHeaderCommentToolStripMenuItem.Name = "editHeaderCommentToolStripMenuItem"; - this.editHeaderCommentToolStripMenuItem.Size = new System.Drawing.Size(201, 22); + this.editHeaderCommentToolStripMenuItem.Size = new System.Drawing.Size(207, 22); this.editHeaderCommentToolStripMenuItem.Text = "Edit Header Comment..."; this.editHeaderCommentToolStripMenuItem.Click += new System.EventHandler(this.editHeaderCommentToolStripMenuItem_Click); // // projectPropertiesToolStripMenuItem // this.projectPropertiesToolStripMenuItem.Name = "projectPropertiesToolStripMenuItem"; - this.projectPropertiesToolStripMenuItem.Size = new System.Drawing.Size(201, 22); + this.projectPropertiesToolStripMenuItem.Size = new System.Drawing.Size(207, 22); this.projectPropertiesToolStripMenuItem.Text = "Project Properties..."; this.projectPropertiesToolStripMenuItem.Click += new System.EventHandler(this.projectPropertiesToolStripMenuItem_Click); // + // toggleDataScanToolStripMenuItem + // + this.toggleDataScanToolStripMenuItem.Name = "toggleDataScanToolStripMenuItem"; + this.toggleDataScanToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.D))); + this.toggleDataScanToolStripMenuItem.Size = new System.Drawing.Size(207, 22); + this.toggleDataScanToolStripMenuItem.Text = "Toggle Data Scan"; + this.toggleDataScanToolStripMenuItem.Click += new System.EventHandler(this.toggleDataScanToolStripMenuItem_Click); + // // toolStripMenuItem7 // this.toolStripMenuItem7.Name = "toolStripMenuItem7"; - this.toolStripMenuItem7.Size = new System.Drawing.Size(198, 6); + this.toolStripMenuItem7.Size = new System.Drawing.Size(204, 6); // // settingsToolStripMenuItem // this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem"; - this.settingsToolStripMenuItem.Size = new System.Drawing.Size(201, 22); + this.settingsToolStripMenuItem.Size = new System.Drawing.Size(207, 22); this.settingsToolStripMenuItem.Text = "Settings..."; this.settingsToolStripMenuItem.Click += new System.EventHandler(this.settingsToolStripMenuItem_Click); // @@ -456,7 +462,6 @@ namespace SourceGen.AppForms this.overrideStatusFlagsToolStripMenuItem, this.editLabelToolStripMenuItem, this.editOperandToolStripMenuItem, - this.editDataFormatToolStripMenuItem, this.editCommentToolStripMenuItem, this.editLongCommentToolStripMenuItem, this.editNoteToolStripMenuItem, @@ -502,20 +507,16 @@ namespace SourceGen.AppForms // editOperandToolStripMenuItem // this.editOperandToolStripMenuItem.Name = "editOperandToolStripMenuItem"; + this.editOperandToolStripMenuItem.ShortcutKeyDisplayString = ""; + this.editOperandToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O))); this.editOperandToolStripMenuItem.Size = new System.Drawing.Size(289, 22); this.editOperandToolStripMenuItem.Text = "Edit Operand..."; - this.editOperandToolStripMenuItem.Click += new System.EventHandler(this.EditOperand_Click); - // - // editDataFormatToolStripMenuItem - // - this.editDataFormatToolStripMenuItem.Name = "editDataFormatToolStripMenuItem"; - this.editDataFormatToolStripMenuItem.Size = new System.Drawing.Size(289, 22); - this.editDataFormatToolStripMenuItem.Text = "Edit Data Format..."; - this.editDataFormatToolStripMenuItem.Click += new System.EventHandler(this.EditData_Click); + this.editOperandToolStripMenuItem.Click += new System.EventHandler(this.EditInstrDataOperand_Click); // // editCommentToolStripMenuItem // this.editCommentToolStripMenuItem.Name = "editCommentToolStripMenuItem"; + this.editCommentToolStripMenuItem.ShortcutKeyDisplayString = "Ctrl+;"; this.editCommentToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Oem1))); this.editCommentToolStripMenuItem.Size = new System.Drawing.Size(289, 22); this.editCommentToolStripMenuItem.Text = "Edit Comment..."; @@ -1449,14 +1450,6 @@ namespace SourceGen.AppForms this.infoTextBox.Size = new System.Drawing.Size(177, 120); this.infoTextBox.TabIndex = 0; // - // toggleDataScanToolStripMenuItem - // - this.toggleDataScanToolStripMenuItem.Name = "toggleDataScanToolStripMenuItem"; - this.toggleDataScanToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.D))); - this.toggleDataScanToolStripMenuItem.Size = new System.Drawing.Size(207, 22); - this.toggleDataScanToolStripMenuItem.Text = "Toggle Data Scan"; - this.toggleDataScanToolStripMenuItem.Click += new System.EventHandler(this.toggleDataScanToolStripMenuItem_Click); - // // ProjectView // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -1573,7 +1566,6 @@ namespace SourceGen.AppForms private System.Windows.Forms.ToolStripMenuItem overrideStatusFlagsToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem editLabelToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem editOperandToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem editDataFormatToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem editCommentToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem editLongCommentToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem editNoteToolStripMenuItem; diff --git a/SourceGen/AppForms/ProjectView.cs b/SourceGen/AppForms/ProjectView.cs index 328d1b4..b026445 100644 --- a/SourceGen/AppForms/ProjectView.cs +++ b/SourceGen/AppForms/ProjectView.cs @@ -1137,7 +1137,7 @@ namespace SourceGen.AppForms { // regardless of which has focus, making it useful for keyboard shortcuts. // Return true to indicate that we've handled the key. protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { - // Handle the Ctrl+H chord. + // Handle the Ctrl+H sequence. if (mCtrlHSeen) { if (keyData == (Keys.Control | Keys.C)) { if (hintAsCodeToolStripMenuItem.Enabled) { @@ -1167,7 +1167,7 @@ namespace SourceGen.AppForms { return true; } - // Ctrl-Shift-Z is an alias for Redo (Ctrl-Y). + // Ctrl+Shift+Z is an alias for Redo (Ctrl+Y). if (keyData == (Keys.Control | Keys.Shift | Keys.Z)) { if (redoToolStripMenuItem.Enabled) { redoToolStripMenuItem_Click(null, null); @@ -2054,9 +2054,7 @@ namespace SourceGen.AppForms { break; case ColumnIndex.Operand: if (editOperandToolStripMenuItem.Enabled) { - EditOperand_Click(sender, e); - } else if (editDataFormatToolStripMenuItem.Enabled) { - EditData_Click(sender, e); + EditInstrDataOperand_Click(sender, e); } break; case ColumnIndex.Comment: @@ -2203,6 +2201,9 @@ namespace SourceGen.AppForms { ListView.SelectedIndexCollection sel = codeListView.SelectedIndices; EntityCounts entityCounts; + bool editDataOperandEnabled = false; + bool editInstrOperandEnabled = false; + // Use IsSingleItemSelected(), rather than just checking sel.Count, because we // want the user to be able to e.g. EditData on a multi-line string even if all // lines in the string are selected. @@ -2217,11 +2218,9 @@ namespace SourceGen.AppForms { setAddressToolStripMenuItem.Enabled = (isCodeOrData || lineType == DisplayList.Line.Type.OrgDirective); - editOperandToolStripMenuItem.Enabled = - (lineType == DisplayList.Line.Type.Code && - mProject.GetAnattrib(line.FileOffset).IsInstructionWithOperand); - editDataFormatToolStripMenuItem.Enabled = - (lineType == DisplayList.Line.Type.Data); + editInstrOperandEnabled = (lineType == DisplayList.Line.Type.Code && + mProject.GetAnattrib(line.FileOffset).IsInstructionWithOperand); + editDataOperandEnabled = (lineType == DisplayList.Line.Type.Data); editLabelToolStripMenuItem.Enabled = isCodeOrData; editCommentToolStripMenuItem.Enabled = isCodeOrData; editLongCommentToolStripMenuItem.Enabled = @@ -2249,7 +2248,7 @@ namespace SourceGen.AppForms { // Disable all single-target-only items. setAddressToolStripMenuItem.Enabled = false; - editOperandToolStripMenuItem.Enabled = false; + editInstrOperandEnabled = false; editLabelToolStripMenuItem.Enabled = false; editCommentToolStripMenuItem.Enabled = false; editLongCommentToolStripMenuItem.Enabled = false; @@ -2260,7 +2259,7 @@ namespace SourceGen.AppForms { if (sel.Count == 0) { // Disable everything else. - editDataFormatToolStripMenuItem.Enabled = false; + editDataOperandEnabled = false; hintAsCodeToolStripMenuItem.Enabled = false; hintAsDataToolStripMenuItem.Enabled = false; hintAsInlineDataToolStripMenuItem.Enabled = false; @@ -2268,11 +2267,16 @@ namespace SourceGen.AppForms { } else { // Must be all data items. Blank lines are okay. Currently allowing // control lines as well. - editDataFormatToolStripMenuItem.Enabled = + editDataOperandEnabled = (entityCounts.mDataLines > 0 && entityCounts.mCodeLines == 0); } } + // Enable the "edit operand" menu item if either instruction or data operand + // editing is allowed. + editOperandToolStripMenuItem.Enabled = + editDataOperandEnabled || editInstrOperandEnabled; + formatSplitAddressTableToolStripMenuItem.Enabled = (entityCounts.mDataLines > 0 && entityCounts.mCodeLines == 0); toggleSingleBytesToolStripMenuItem.Enabled = @@ -2549,6 +2553,16 @@ namespace SourceGen.AppForms { dlg.Dispose(); } + // Convert generic "edit operand" request to instruction or data edit call. + private void EditInstrDataOperand_Click(object sender, EventArgs e) { + ListView.SelectedIndexCollection sel = codeListView.SelectedIndices; + if (mDisplayList[sel[0]].LineType == DisplayList.Line.Type.Code) { + EditOperand_Click(sender, e); + } else { + EditData_Click(sender, e); + } + } + private void EditOperand_Click(Object sender, EventArgs e) { Debug.Assert(IsSingleItemSelected()); ListView.SelectedIndexCollection sel = codeListView.SelectedIndices; diff --git a/SourceGen/RuntimeData/Help/editors.html b/SourceGen/RuntimeData/Help/editors.html index aad4aeb..df6e287 100644 --- a/SourceGen/RuntimeData/Help/editors.html +++ b/SourceGen/RuntimeData/Help/editors.html @@ -48,7 +48,7 @@ always output as-is. Exported labels are added to a table that may be imported by other projects.
-Operands can be displayed in a variety of numeric formats, or as a symbol. The ASCII character format is only available for operands whose value falls into the range of low- or high-ASCII characters.
diff --git a/SourceGen/RuntimeData/Help/index.html b/SourceGen/RuntimeData/Help/index.html index 66bf4f7..61e0217 100644 --- a/SourceGen/RuntimeData/Help/index.html +++ b/SourceGen/RuntimeData/Help/index.html @@ -66,7 +66,7 @@ and 65816 code. The official web site is