diff --git a/SourceGen/AppForms/DataFileLoadIssue.cs b/SourceGen/AppForms/DataFileLoadIssue.cs
index 2cc1c0d..b8b9fe3 100644
--- a/SourceGen/AppForms/DataFileLoadIssue.cs
+++ b/SourceGen/AppForms/DataFileLoadIssue.cs
@@ -21,20 +21,24 @@ namespace SourceGen.AppForms {
///
/// Path name of problematic file.
///
- public string PathName { get; set; }
+ private string mPathName;
///
/// Message to show in the dialog.
///
- public string Message { get; set; }
+ private string mMessage;
- public DataFileLoadIssue() {
+
+ public DataFileLoadIssue(string pathName, string message) {
InitializeComponent();
+
+ mPathName = pathName;
+ mMessage = message;
}
private void DataFileLoadIssue_Load(object sender, EventArgs e) {
- pathNameTextBox.Text = PathName;
- problemLabel.Text = Message;
+ pathNameTextBox.Text = mPathName;
+ problemLabel.Text = mMessage;
}
}
}
diff --git a/SourceGen/AppForms/EditAddress.Designer.cs b/SourceGen/AppForms/EditAddress.Designer.cs
index 70c9381..b6594df 100644
--- a/SourceGen/AppForms/EditAddress.Designer.cs
+++ b/SourceGen/AppForms/EditAddress.Designer.cs
@@ -41,7 +41,7 @@ namespace SourceGen.AppForms {
System.Windows.Forms.Label addressLabel;
this.okButton = new System.Windows.Forms.Button();
this.cancelButton = new System.Windows.Forms.Button();
- this.textBox1 = new System.Windows.Forms.TextBox();
+ this.addressTextBox = new System.Windows.Forms.TextBox();
this.instructionLabel1 = new System.Windows.Forms.Label();
this.instructionLabel2 = new System.Windows.Forms.Label();
addressLabel = new System.Windows.Forms.Label();
@@ -79,12 +79,13 @@ namespace SourceGen.AppForms {
this.cancelButton.Text = "Cancel";
this.cancelButton.UseVisualStyleBackColor = true;
//
- // textBox1
+ // addressTextBox
//
- this.textBox1.Location = new System.Drawing.Point(68, 13);
- this.textBox1.Name = "textBox1";
- this.textBox1.Size = new System.Drawing.Size(275, 20);
- this.textBox1.TabIndex = 0;
+ this.addressTextBox.Location = new System.Drawing.Point(68, 13);
+ this.addressTextBox.Name = "addressTextBox";
+ this.addressTextBox.Size = new System.Drawing.Size(275, 20);
+ this.addressTextBox.TabIndex = 0;
+ this.addressTextBox.TextChanged += new System.EventHandler(this.addressTextBox_TextChanged);
//
// instructionLabel1
//
@@ -113,7 +114,7 @@ namespace SourceGen.AppForms {
this.ClientSize = new System.Drawing.Size(358, 126);
this.Controls.Add(this.instructionLabel2);
this.Controls.Add(this.instructionLabel1);
- this.Controls.Add(this.textBox1);
+ this.Controls.Add(this.addressTextBox);
this.Controls.Add(addressLabel);
this.Controls.Add(this.cancelButton);
this.Controls.Add(this.okButton);
@@ -124,6 +125,7 @@ namespace SourceGen.AppForms {
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Edit Address";
+ this.Load += new System.EventHandler(this.EditAddress_Load);
this.ResumeLayout(false);
this.PerformLayout();
@@ -133,7 +135,7 @@ namespace SourceGen.AppForms {
private System.Windows.Forms.Button okButton;
private System.Windows.Forms.Button cancelButton;
- private System.Windows.Forms.TextBox textBox1;
+ private System.Windows.Forms.TextBox addressTextBox;
private System.Windows.Forms.Label instructionLabel1;
private System.Windows.Forms.Label instructionLabel2;
}
diff --git a/SourceGen/AppForms/EditAddress.cs b/SourceGen/AppForms/EditAddress.cs
index 7cca9db..503e900 100644
--- a/SourceGen/AppForms/EditAddress.cs
+++ b/SourceGen/AppForms/EditAddress.cs
@@ -19,14 +19,6 @@ using System.Windows.Forms;
namespace SourceGen.AppForms {
public partial class EditAddress : Form {
-#if false
- private bool mAllowLastChar;
-#endif
-
- ///
- /// Maximum allowed address value.
- ///
- public int MaxAddressValue { get; set; }
///
/// Address typed by user. Only valid after the dialog returns OK. Will be set to -1
@@ -34,91 +26,53 @@ namespace SourceGen.AppForms {
///
public int Address { get; private set; }
- public EditAddress() {
+ ///
+ /// Maximum allowed address value.
+ ///
+ private int mMaxAddressValue;
+
+
+ public EditAddress(int initialAddr, int maxAddressValue) {
InitializeComponent();
+
Address = -2;
- MaxAddressValue = (1 << 24) - 1;
-
-#if false
- // This is probably not all that useful. We're not preventing
- // invalid inputs, e.g. excessively large values or "$/$/$/", by restricting
- // the keys that can be typed.
- textBox1.KeyDown += textBox1_KeyDown;
- textBox1.KeyPress += textBox1_KeyPress;
-#endif
-
- // Update the OK button based on current contents.
- textBox1.TextChanged += textBox1_TextChanged;
+ mMaxAddressValue = maxAddressValue;
+ addressTextBox.Text = Asm65.Address.AddressToString(initialAddr, false);
}
- public void SetInitialAddress(int addr) {
- textBox1.Text = Asm65.Address.AddressToString(addr, false);
- textBox1.SelectAll();
+ private void EditAddress_Load(object sender, EventArgs e) {
+ addressTextBox.SelectAll();
}
///
/// Handles a click on the OK button by setting the Address property to the
/// decoded value from the text field.
///
- ///
- ///
private void okButton_Click(object sender, EventArgs e) {
- if (textBox1.Text.Length == 0) {
+ if (addressTextBox.Text.Length == 0) {
Address = -1;
} else {
- Asm65.Address.ParseAddress(textBox1.Text, MaxAddressValue, out int addr);
+ Asm65.Address.ParseAddress(addressTextBox.Text, mMaxAddressValue, out int addr);
Address = addr;
}
}
+ ///
+ /// Updates the OK button whenever the text changes. This works for all change sources,
+ /// including programmatic.
+ ///
+ private void addressTextBox_TextChanged(object sender, EventArgs e) {
+ UpdateOkEnabled();
+ }
+
///
/// Enables or disables the OK button depending on whether the current input is
/// valid. We allow valid addresses and an empty box.
///
private void UpdateOkEnabled() {
- string text = textBox1.Text;
+ string text = addressTextBox.Text;
okButton.Enabled = (text.Length == 0) ||
- Asm65.Address.ParseAddress(text, MaxAddressValue, out int unused);
- }
-
-#if false
- ///
- /// Limits characters to [A-F][a-f][0-9][/].
- ///
- private void textBox1_KeyDown(object sender, KeyEventArgs e) {
- bool allow = false;
- if (e.KeyCode == Keys.D4 && e.Modifiers == Keys.Shift) {
- allow = true; // allow '$'; not sure this works on non-US keyboards?
- } else if (e.KeyCode >= Keys.A && e.KeyCode <= Keys.F) {
- allow = !(e.Alt || e.Control); // allow shift
- } else if ((e.KeyCode >= Keys.D0 && e.KeyCode <= Keys.D9) ||
- e.KeyCode == Keys.OemQuestion) {
- allow = (e.Modifiers == 0);
- } else if (e.KeyCode == Keys.Back || e.KeyCode == Keys.Delete) {
- allow = true;
- }
-
- mAllowLastChar = allow;
- //Debug.WriteLine("DOWN " + e.KeyCode + " allow=" + allow);
- }
-
- ///
- /// Rejects invalid characters.
- ///
- private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) {
- //Debug.WriteLine("PRESS " + e.KeyChar + " : " + mAllowLastChar);
- if (!mAllowLastChar) {
- e.Handled = true;
- }
- }
-#endif
-
- ///
- /// Updates the OK button whenever the text changes. This works for all change sources,
- /// including programmatic.
- ///
- private void textBox1_TextChanged(object sender, EventArgs e) {
- UpdateOkEnabled();
+ Asm65.Address.ParseAddress(text, mMaxAddressValue, out int unused);
}
}
}
diff --git a/SourceGen/AppForms/EditAppSettings.cs b/SourceGen/AppForms/EditAppSettings.cs
index 4d392c3..ec4b891 100644
--- a/SourceGen/AppForms/EditAppSettings.cs
+++ b/SourceGen/AppForms/EditAppSettings.cs
@@ -540,10 +540,11 @@ namespace SourceGen.AppForms {
name += ".exe";
}
- OpenFileDialog dlg = new OpenFileDialog();
- dlg.FileName = name;
- dlg.Filter = prefix + "|" + name;
- dlg.RestoreDirectory = true;
+ OpenFileDialog dlg = new OpenFileDialog() {
+ FileName = name,
+ Filter = prefix + "|" + name,
+ RestoreDirectory = true
+ };
if (dlg.ShowDialog() != DialogResult.Cancel) {
pathName = dlg.FileName;
}
diff --git a/SourceGen/AppForms/EditComment.Designer.cs b/SourceGen/AppForms/EditComment.Designer.cs
index 3ac1317..92a4ae5 100644
--- a/SourceGen/AppForms/EditComment.Designer.cs
+++ b/SourceGen/AppForms/EditComment.Designer.cs
@@ -41,7 +41,7 @@ namespace SourceGen.AppForms {
this.cancelButton = new System.Windows.Forms.Button();
this.okButton = new System.Windows.Forms.Button();
this.instructionLabel = new System.Windows.Forms.Label();
- this.textBox1 = new System.Windows.Forms.TextBox();
+ this.commentTextBox = new System.Windows.Forms.TextBox();
this.asciiOnlyLabel = new System.Windows.Forms.Label();
this.maxLengthLabel = new System.Windows.Forms.Label();
this.numCharsLabel = new System.Windows.Forms.Label();
@@ -81,11 +81,11 @@ namespace SourceGen.AppForms {
//
// textBox1
//
- this.textBox1.Location = new System.Drawing.Point(13, 30);
- this.textBox1.Name = "textBox1";
- this.textBox1.Size = new System.Drawing.Size(488, 20);
- this.textBox1.TabIndex = 1;
- this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged);
+ this.commentTextBox.Location = new System.Drawing.Point(13, 30);
+ this.commentTextBox.Name = "textBox1";
+ this.commentTextBox.Size = new System.Drawing.Size(488, 20);
+ this.commentTextBox.TabIndex = 1;
+ this.commentTextBox.TextChanged += new System.EventHandler(this.commentTextBox_TextChanged);
//
// asciiOnlyLabel
//
@@ -124,7 +124,7 @@ namespace SourceGen.AppForms {
this.Controls.Add(this.numCharsLabel);
this.Controls.Add(this.maxLengthLabel);
this.Controls.Add(this.asciiOnlyLabel);
- this.Controls.Add(this.textBox1);
+ this.Controls.Add(this.commentTextBox);
this.Controls.Add(this.instructionLabel);
this.Controls.Add(this.okButton);
this.Controls.Add(this.cancelButton);
@@ -145,7 +145,7 @@ namespace SourceGen.AppForms {
private System.Windows.Forms.Button cancelButton;
private System.Windows.Forms.Button okButton;
private System.Windows.Forms.Label instructionLabel;
- private System.Windows.Forms.TextBox textBox1;
+ private System.Windows.Forms.TextBox commentTextBox;
private System.Windows.Forms.Label asciiOnlyLabel;
private System.Windows.Forms.Label maxLengthLabel;
private System.Windows.Forms.Label numCharsLabel;
diff --git a/SourceGen/AppForms/EditComment.cs b/SourceGen/AppForms/EditComment.cs
index dc50bf2..af0e625 100644
--- a/SourceGen/AppForms/EditComment.cs
+++ b/SourceGen/AppForms/EditComment.cs
@@ -21,9 +21,9 @@ using System.Windows.Forms;
namespace SourceGen.AppForms {
public partial class EditComment : Form {
///
- /// Comment string being edited.
+ /// Edited comment string. Will be empty if the comment is to be deleted.
///
- public string Comment { get; set; }
+ public string Comment { get; private set; }
private string mNumCharsFormat;
@@ -32,33 +32,36 @@ namespace SourceGen.AppForms {
private const int RECOMMENDED_MAX_LENGTH = 52;
- public EditComment() {
+ public EditComment(string comment) {
InitializeComponent();
+
+ // The initial label string is used as the format arg.
+ mNumCharsFormat = numCharsLabel.Text;
+
+ // Remember the default color.
+ mDefaultLabelColor = asciiOnlyLabel.ForeColor;
+
+ Debug.Assert(comment != null);
+ commentTextBox.Text = comment;
}
private void EditComment_Load(object sender, EventArgs e) {
- mDefaultLabelColor = asciiOnlyLabel.ForeColor;
-
- // Extract the format string from the label.
- mNumCharsFormat = numCharsLabel.Text;
-
- textBox1.Text = Comment;
UpdateLengthLabel();
}
private void UpdateLengthLabel() {
- numCharsLabel.Text = string.Format(mNumCharsFormat, textBox1.Text.Length);
+ numCharsLabel.Text = string.Format(mNumCharsFormat, commentTextBox.Text.Length);
}
- private void textBox1_TextChanged(object sender, EventArgs e) {
+ private void commentTextBox_TextChanged(object sender, EventArgs e) {
UpdateLengthLabel();
- if (!CommonUtil.TextUtil.IsPrintableAscii(textBox1.Text)) {
+ if (!CommonUtil.TextUtil.IsPrintableAscii(commentTextBox.Text)) {
asciiOnlyLabel.ForeColor = Color.Red;
} else {
asciiOnlyLabel.ForeColor = mDefaultLabelColor;
}
- if (textBox1.Text.Length > RECOMMENDED_MAX_LENGTH) {
+ if (commentTextBox.Text.Length > RECOMMENDED_MAX_LENGTH) {
maxLengthLabel.ForeColor = Color.Red;
} else {
maxLengthLabel.ForeColor = mDefaultLabelColor;
@@ -66,7 +69,7 @@ namespace SourceGen.AppForms {
}
private void okButton_Click(object sender, EventArgs e) {
- Comment = textBox1.Text;
+ Comment = commentTextBox.Text;
}
}
}
diff --git a/SourceGen/AppForms/EditDefSymbol.cs b/SourceGen/AppForms/EditDefSymbol.cs
index 5fafa68..68aa4c8 100644
--- a/SourceGen/AppForms/EditDefSymbol.cs
+++ b/SourceGen/AppForms/EditDefSymbol.cs
@@ -32,12 +32,12 @@ namespace SourceGen.AppForms {
///
/// Format object to use when formatting addresses and constants.
///
- private Formatter NumFormatter { get; set; }
+ private Formatter mNumFormatter;
///
/// List of existing symbols, for uniqueness check. The list will not be modified.
///
- private SortedList DefSymbolList { get; set; }
+ private SortedList mDefSymbolList;
// Saved off at dialog load time.
private Color mDefaultLabelColor;
@@ -46,8 +46,8 @@ namespace SourceGen.AppForms {
public EditDefSymbol(Formatter formatter, SortedList defList) {
InitializeComponent();
- NumFormatter = formatter;
- DefSymbolList = defList;
+ mNumFormatter = formatter;
+ mDefSymbolList = defList;
}
private void EditDefSymbol_Load(object sender, EventArgs e) {
@@ -55,7 +55,7 @@ namespace SourceGen.AppForms {
if (DefSym != null) {
labelTextBox.Text = DefSym.Label;
- valueTextBox.Text = NumFormatter.FormatValueInBase(DefSym.Value,
+ valueTextBox.Text = mNumFormatter.FormatValueInBase(DefSym.Value,
DefSym.DataDescriptor.NumBase);
commentTextBox.Text = DefSym.Comment;
@@ -78,7 +78,7 @@ namespace SourceGen.AppForms {
// if it exists elsewhere.)
labelValid = Asm65.Label.ValidateLabel(labelTextBox.Text);
- if (DefSymbolList.TryGetValue(labelTextBox.Text, out DefSymbol existing)) {
+ if (mDefSymbolList.TryGetValue(labelTextBox.Text, out DefSymbol existing)) {
// It's okay if it's the same object.
labelUnique = (existing == DefSym);
} else {
diff --git a/SourceGen/AppForms/EditLabel.cs b/SourceGen/AppForms/EditLabel.cs
index cc7070c..a29f554 100644
--- a/SourceGen/AppForms/EditLabel.cs
+++ b/SourceGen/AppForms/EditLabel.cs
@@ -21,25 +21,30 @@ using System.Windows.Forms;
namespace SourceGen.AppForms {
public partial class EditLabel : Form {
///
- /// Symbol object. May initially be null. When the dialog completes successfully,
+ /// Symbol object. When the dialog completes successfully,
/// this will have the new symbol, or null if the user deleted the label.
///
- public Symbol LabelSym { get; set; }
+ public Symbol LabelSym { get; private set; }
///
/// Address we are editing the label for.
///
- public int Address { private get; set; }
+ private int mAddress;
- // Saved off at dialog load time.
- private Color mDefaultLabelColor;
-
- // Reference to DisasmProject's SymbolTable.
+ ///
+ /// Reference to DisasmProject's SymbolTable.
+ ///
private SymbolTable mSymbolTable;
+ // Dialog label text color, saved off at dialog load time.
+ private Color mDefaultLabelColor;
- public EditLabel(SymbolTable symbolTable) {
+
+ public EditLabel(Symbol origSym, int address, SymbolTable symbolTable) {
InitializeComponent();
+
+ LabelSym = origSym;
+ mAddress = address;
mSymbolTable = symbolTable;
}
@@ -140,7 +145,7 @@ namespace SourceGen.AppForms {
Debug.Assert(false); // WTF
symbolType = Symbol.Type.LocalOrGlobalAddr;
}
- LabelSym = new Symbol(labelTextBox.Text, Address, Symbol.Source.User, symbolType);
+ LabelSym = new Symbol(labelTextBox.Text, mAddress, Symbol.Source.User, symbolType);
}
}
}
diff --git a/SourceGen/AppForms/EditProjectProperties.cs b/SourceGen/AppForms/EditProjectProperties.cs
index 67bd406..0c16c79 100644
--- a/SourceGen/AppForms/EditProjectProperties.cs
+++ b/SourceGen/AppForms/EditProjectProperties.cs
@@ -32,11 +32,6 @@ namespace SourceGen.AppForms {
/// regardless of the dialog's return value.
///
public partial class EditProjectProperties : Form {
- ///
- /// Working set. Used internally to hold state.
- ///
- private ProjectProperties WorkProps { get; set; }
-
///
/// New set. Updated when Apply or OK is hit. This will be null if no changes have
/// been applied.
@@ -46,7 +41,12 @@ namespace SourceGen.AppForms {
///
/// Format object to use when formatting addresses and constants.
///
- public Formatter NumFormatter { get; set; }
+ private Formatter mFormatter { get; set; }
+
+ ///
+ /// Working set. Used internally to hold state.
+ ///
+ private ProjectProperties mWorkProps;
///
/// Dirty flag. Ideally this would just be "WorkProps != OldProps", but it doesn't
@@ -60,24 +60,24 @@ namespace SourceGen.AppForms {
private string mProjectDir;
- public EditProjectProperties(string projectDir) {
+ ///
+ /// Constructor. Initial state is configured from an existing ProjectProperties object.
+ ///
+ /// Property holder to clone.
+ /// Project directory, if known.
+ /// Text formatter.
+ public EditProjectProperties(ProjectProperties props, string projectDir,
+ Formatter formatter) {
InitializeComponent();
+ mWorkProps = new ProjectProperties(props);
mProjectDir = projectDir;
- }
-
- ///
- /// Sets the initial state from an existing ProjectProperties object. This must be
- /// called, and must be called before the dialog is shown.
- ///
- /// Object to clone.
- public void SetInitialProps(ProjectProperties props) {
- WorkProps = new ProjectProperties(props);
+ mFormatter = formatter;
}
private void EditProperties_Load(object sender, EventArgs e) {
// Configure CPU chooser. This must match the order of strings in the designer.
- switch (WorkProps.CpuType) {
+ switch (mWorkProps.CpuType) {
case CpuDef.CpuType.Cpu6502:
cpuComboBox.SelectedIndex = 0;
break;
@@ -93,13 +93,13 @@ namespace SourceGen.AppForms {
break;
}
- undocInstrCheckBox.Checked = WorkProps.IncludeUndocumentedInstr;
+ undocInstrCheckBox.Checked = mWorkProps.IncludeUndocumentedInstr;
analyzeUncategorizedCheckBox.Checked =
- WorkProps.AnalysisParams.AnalyzeUncategorizedData;
+ mWorkProps.AnalysisParams.AnalyzeUncategorizedData;
seekAltTargetCheckBox.Checked =
- WorkProps.AnalysisParams.SeekNearbyTargets;
+ mWorkProps.AnalysisParams.SeekNearbyTargets;
- int matchLen = WorkProps.AnalysisParams.MinCharsForString;
+ int matchLen = mWorkProps.AnalysisParams.MinCharsForString;
int selIndex;
if (matchLen == DataAnalysis.MIN_CHARS_FOR_STRING_DISABLED) {
selIndex = 0; // disabled
@@ -122,11 +122,11 @@ namespace SourceGen.AppForms {
}
private void okButton_Click(object sender, EventArgs e) {
- NewProps = new ProjectProperties(WorkProps);
+ NewProps = new ProjectProperties(mWorkProps);
}
private void applyButton_Click(object sender, EventArgs e) {
- NewProps = new ProjectProperties(WorkProps);
+ NewProps = new ProjectProperties(mWorkProps);
mDirty = false;
UpdateControls();
}
@@ -140,7 +140,7 @@ namespace SourceGen.AppForms {
const string FLAGS = "CZIDXMVNE"; // flags, in order low to high, plus emu bit
const string VALUES = "-?01";
StringBuilder sb = new StringBuilder(27);
- StatusFlags flags = WorkProps.EntryFlags;
+ StatusFlags flags = mWorkProps.EntryFlags;
for (int i = 0; i < 9; i++) {
// Want to show P reg flags (first 8) in conventional high-to-low order.
int idx = (7 - i) + (i == 8 ? 9 : 0);
@@ -197,34 +197,31 @@ namespace SourceGen.AppForms {
private void cpuComboBox_SelectedIndexChanged(object sender, EventArgs e) {
CpuDef.CpuType cpuType = CpuSelectionToCpuType(cpuComboBox.SelectedIndex);
- if (WorkProps.CpuType != cpuType) {
- WorkProps.CpuType = cpuType;
+ if (mWorkProps.CpuType != cpuType) {
+ mWorkProps.CpuType = cpuType;
mDirty = true;
UpdateControls();
}
}
private void undocInstrCheckBox_CheckedChanged(object sender, EventArgs e) {
- if (WorkProps.IncludeUndocumentedInstr != undocInstrCheckBox.Checked) {
- WorkProps.IncludeUndocumentedInstr = undocInstrCheckBox.Checked;
+ if (mWorkProps.IncludeUndocumentedInstr != undocInstrCheckBox.Checked) {
+ mWorkProps.IncludeUndocumentedInstr = undocInstrCheckBox.Checked;
mDirty = true;
UpdateControls();
}
}
private void changeFlagButton_Click(object sender, EventArgs e) {
- EditStatusFlags dlg = new EditStatusFlags();
- dlg.FlagValue = WorkProps.EntryFlags;
-
- CpuDef cpuDef = CpuDef.GetBestMatch(WorkProps.CpuType,
- WorkProps.IncludeUndocumentedInstr);
- dlg.HasEmuFlag = cpuDef.HasEmuFlag;
+ CpuDef cpuDef = CpuDef.GetBestMatch(mWorkProps.CpuType,
+ mWorkProps.IncludeUndocumentedInstr);
+ EditStatusFlags dlg = new EditStatusFlags(mWorkProps.EntryFlags, cpuDef.HasEmuFlag);
dlg.ShowDialog();
if (dlg.DialogResult == DialogResult.OK) {
- if (WorkProps.EntryFlags != dlg.FlagValue) {
+ if (mWorkProps.EntryFlags != dlg.FlagValue) {
// Flags changed.
- WorkProps.EntryFlags = dlg.FlagValue;
+ mWorkProps.EntryFlags = dlg.FlagValue;
mDirty = true;
UpdateControls();
}
@@ -234,14 +231,14 @@ namespace SourceGen.AppForms {
}
private void analyzeUncategorizedCheckBox_CheckedChanged(object sender, EventArgs e) {
- WorkProps.AnalysisParams.AnalyzeUncategorizedData =
+ mWorkProps.AnalysisParams.AnalyzeUncategorizedData =
analyzeUncategorizedCheckBox.Checked;
mDirty = true;
UpdateControls();
}
private void seekAltTargetCheckBox_CheckedChanged(object sender, EventArgs e) {
- WorkProps.AnalysisParams.SeekNearbyTargets =
+ mWorkProps.AnalysisParams.SeekNearbyTargets =
seekAltTargetCheckBox.Checked;
mDirty = true;
UpdateControls();
@@ -256,8 +253,8 @@ namespace SourceGen.AppForms {
newVal = index + 2;
}
- if (newVal != WorkProps.AnalysisParams.MinCharsForString) {
- WorkProps.AnalysisParams.MinCharsForString = newVal;
+ if (newVal != mWorkProps.AnalysisParams.MinCharsForString) {
+ mWorkProps.AnalysisParams.MinCharsForString = newVal;
mDirty = true;
UpdateControls();
}
@@ -280,7 +277,7 @@ namespace SourceGen.AppForms {
//Debug.WriteLine("LPS loading " + WorkProps.ProjectSyms.Count + " project symbols");
projectSymbolsListView.BeginUpdate();
projectSymbolsListView.Items.Clear();
- foreach (KeyValuePair kvp in WorkProps.ProjectSyms) {
+ foreach (KeyValuePair kvp in mWorkProps.ProjectSyms) {
DefSymbol defSym = kvp.Value;
string typeStr;
if (defSym.SymbolType == Symbol.Type.Constant) {
@@ -292,7 +289,7 @@ namespace SourceGen.AppForms {
ListViewItem lvi = new ListViewItem();
lvi.Text = defSym.Label;
mSymbolSubArray[0] = new ListViewItem.ListViewSubItem(lvi,
- NumFormatter.FormatValueInBase(defSym.Value, defSym.DataDescriptor.NumBase));
+ mFormatter.FormatValueInBase(defSym.Value, defSym.DataDescriptor.NumBase));
mSymbolSubArray[1] = new ListViewItem.ListViewSubItem(lvi, typeStr);
mSymbolSubArray[2] = new ListViewItem.ListViewSubItem(lvi, defSym.Comment);
lvi.SubItems.AddRange(mSymbolSubArray);
@@ -310,11 +307,11 @@ namespace SourceGen.AppForms {
}
private void newSymbolButton_Click(object sender, EventArgs e) {
- EditDefSymbol dlg = new EditDefSymbol(NumFormatter, WorkProps.ProjectSyms);
+ EditDefSymbol dlg = new EditDefSymbol(mFormatter, mWorkProps.ProjectSyms);
dlg.ShowDialog();
if (dlg.DialogResult == DialogResult.OK) {
Debug.WriteLine("ADD: " + dlg.DefSym);
- WorkProps.ProjectSyms[dlg.DefSym.Label] = dlg.DefSym;
+ mWorkProps.ProjectSyms[dlg.DefSym.Label] = dlg.DefSym;
mDirty = true;
LoadProjectSymbols();
UpdateControls();
@@ -326,24 +323,24 @@ namespace SourceGen.AppForms {
// Single-select list view, button dimmed when no selection.
Debug.Assert(projectSymbolsListView.SelectedItems.Count == 1);
ListViewItem item = projectSymbolsListView.SelectedItems[0];
- DefSymbol defSym = WorkProps.ProjectSyms[item.Text];
+ DefSymbol defSym = mWorkProps.ProjectSyms[item.Text];
DoEditSymbol(defSym);
}
private void projectSymbolsListView_MouseDoubleClick(object sender, MouseEventArgs e) {
ListViewHitTestInfo info = projectSymbolsListView.HitTest(e.X, e.Y);
- DefSymbol defSym = WorkProps.ProjectSyms[info.Item.Text];
+ DefSymbol defSym = mWorkProps.ProjectSyms[info.Item.Text];
DoEditSymbol(defSym);
}
private void DoEditSymbol(DefSymbol defSym) {
- EditDefSymbol dlg = new EditDefSymbol(NumFormatter, WorkProps.ProjectSyms);
+ EditDefSymbol dlg = new EditDefSymbol(mFormatter, mWorkProps.ProjectSyms);
dlg.DefSym = defSym;
dlg.ShowDialog();
if (dlg.DialogResult == DialogResult.OK) {
// Label might have changed, so remove old before adding new.
- WorkProps.ProjectSyms.Remove(defSym.Label);
- WorkProps.ProjectSyms[dlg.DefSym.Label] = dlg.DefSym;
+ mWorkProps.ProjectSyms.Remove(defSym.Label);
+ mWorkProps.ProjectSyms[dlg.DefSym.Label] = dlg.DefSym;
mDirty = true;
LoadProjectSymbols();
UpdateControls();
@@ -357,8 +354,8 @@ namespace SourceGen.AppForms {
int selectionIndex = projectSymbolsListView.SelectedIndices[0];
ListViewItem item = projectSymbolsListView.SelectedItems[0];
- DefSymbol defSym = WorkProps.ProjectSyms[item.Text];
- WorkProps.ProjectSyms.Remove(defSym.Label);
+ DefSymbol defSym = mWorkProps.ProjectSyms[item.Text];
+ mWorkProps.ProjectSyms.Remove(defSym.Label);
mDirty = true;
LoadProjectSymbols();
UpdateControls();
@@ -387,7 +384,7 @@ namespace SourceGen.AppForms {
symbolFilesListBox.BeginUpdate();
symbolFilesListBox.Items.Clear();
- foreach (string fileName in WorkProps.PlatformSymbolFileIdentifiers) {
+ foreach (string fileName in mWorkProps.PlatformSymbolFileIdentifiers) {
symbolFilesListBox.Items.Add(fileName);
}
@@ -400,11 +397,12 @@ namespace SourceGen.AppForms {
}
private void addSymbolFilesButton_Click(object sender, EventArgs e) {
- OpenFileDialog fileDlg = new OpenFileDialog();
- fileDlg.Filter = PlatformSymbols.FILENAME_FILTER;
- fileDlg.Multiselect = true;
- fileDlg.InitialDirectory = RuntimeDataAccess.GetDirectory();
- fileDlg.RestoreDirectory = true; // doesn't seem to work?
+ OpenFileDialog fileDlg = new OpenFileDialog() {
+ Filter = PlatformSymbols.FILENAME_FILTER,
+ Multiselect = true,
+ InitialDirectory = RuntimeDataAccess.GetDirectory(),
+ RestoreDirectory = true // doesn't seem to work?
+ };
if (fileDlg.ShowDialog() != DialogResult.OK) {
return;
}
@@ -429,13 +427,13 @@ namespace SourceGen.AppForms {
string ident = ef.Identifier;
- if (WorkProps.PlatformSymbolFileIdentifiers.Contains(ident)) {
+ if (mWorkProps.PlatformSymbolFileIdentifiers.Contains(ident)) {
Debug.WriteLine("Already present: " + ident);
continue;
}
Debug.WriteLine("Adding symbol file: " + ident);
- WorkProps.PlatformSymbolFileIdentifiers.Add(ident);
+ mWorkProps.PlatformSymbolFileIdentifiers.Add(ident);
mDirty = true;
}
@@ -468,9 +466,9 @@ namespace SourceGen.AppForms {
symbolFilesListBox.SetSelected(selIndex + adj, true);
// do the same operation in the file name list
- string str = WorkProps.PlatformSymbolFileIdentifiers[selIndex];
- WorkProps.PlatformSymbolFileIdentifiers.RemoveAt(selIndex);
- WorkProps.PlatformSymbolFileIdentifiers.Insert(selIndex + adj, str);
+ string str = mWorkProps.PlatformSymbolFileIdentifiers[selIndex];
+ mWorkProps.PlatformSymbolFileIdentifiers.RemoveAt(selIndex);
+ mWorkProps.PlatformSymbolFileIdentifiers.Insert(selIndex + adj, str);
mDirty = true;
UpdateControls();
@@ -481,7 +479,7 @@ namespace SourceGen.AppForms {
for (int i = symbolFilesListBox.SelectedIndices.Count - 1; i >= 0; i--) {
int index = symbolFilesListBox.SelectedIndices[i];
symbolFilesListBox.Items.RemoveAt(index);
- WorkProps.PlatformSymbolFileIdentifiers.RemoveAt(index);
+ mWorkProps.PlatformSymbolFileIdentifiers.RemoveAt(index);
}
mDirty = true;
@@ -489,11 +487,10 @@ namespace SourceGen.AppForms {
}
private void importSymbolsButton_Click(object sender, EventArgs e) {
- OpenFileDialog fileDlg = new OpenFileDialog();
-
- fileDlg.Filter = ProjectFile.FILENAME_FILTER + "|" +
- Properties.Resources.FILE_FILTER_ALL;
- fileDlg.FilterIndex = 1;
+ OpenFileDialog fileDlg = new OpenFileDialog() {
+ Filter = ProjectFile.FILENAME_FILTER + "|" + Properties.Resources.FILE_FILTER_ALL,
+ FilterIndex = 1
+ };
if (fileDlg.ShowDialog() != DialogResult.OK) {
return;
}
@@ -502,9 +499,9 @@ namespace SourceGen.AppForms {
DisasmProject newProject = new DisasmProject();
if (!ProjectFile.DeserializeFromFile(projPathName, newProject,
out FileLoadReport report)) {
- ProjectLoadIssues dlg = new ProjectLoadIssues();
- dlg.Messages = report.Format();
- dlg.CanContinue = false;
+ // Unable to open project file. Report error and bail.
+ ProjectLoadIssues dlg = new ProjectLoadIssues(report.Format(),
+ ProjectLoadIssues.Buttons.Cancel);
dlg.ShowDialog();
// ignore dlg.DialogResult
dlg.Dispose();
@@ -520,7 +517,7 @@ namespace SourceGen.AppForms {
DefSymbol defSym = new DefSymbol(sym.Label, sym.Value, Symbol.Source.Project,
Symbol.Type.ExternalAddr, FormatDescriptor.SubType.None,
string.Empty, string.Empty);
- WorkProps.ProjectSyms[defSym.Label] = defSym;
+ mWorkProps.ProjectSyms[defSym.Label] = defSym;
foundCount++;
}
}
@@ -556,7 +553,7 @@ namespace SourceGen.AppForms {
extensionScriptsListBox.BeginUpdate();
extensionScriptsListBox.Items.Clear();
- foreach (string fileName in WorkProps.ExtensionScriptFileIdentifiers) {
+ foreach (string fileName in mWorkProps.ExtensionScriptFileIdentifiers) {
extensionScriptsListBox.Items.Add(fileName);
}
@@ -569,11 +566,12 @@ namespace SourceGen.AppForms {
}
private void addExtensionScriptsButton_Click(object sender, EventArgs e) {
- OpenFileDialog fileDlg = new OpenFileDialog();
- fileDlg.Filter = Sandbox.ScriptManager.FILENAME_FILTER;
- fileDlg.Multiselect = true;
- fileDlg.InitialDirectory = RuntimeDataAccess.GetDirectory();
- fileDlg.RestoreDirectory = true; // doesn't seem to work?
+ OpenFileDialog fileDlg = new OpenFileDialog() {
+ Filter = Sandbox.ScriptManager.FILENAME_FILTER,
+ Multiselect = true,
+ InitialDirectory = RuntimeDataAccess.GetDirectory(),
+ RestoreDirectory = true // doesn't seem to work?
+ };
if (fileDlg.ShowDialog() != DialogResult.OK) {
return;
}
@@ -598,13 +596,13 @@ namespace SourceGen.AppForms {
string ident = ef.Identifier;
- if (WorkProps.ExtensionScriptFileIdentifiers.Contains(ident)) {
+ if (mWorkProps.ExtensionScriptFileIdentifiers.Contains(ident)) {
Debug.WriteLine("Already present: " + ident);
continue;
}
Debug.WriteLine("Adding extension script: " + ident);
- WorkProps.ExtensionScriptFileIdentifiers.Add(ident);
+ mWorkProps.ExtensionScriptFileIdentifiers.Add(ident);
mDirty = true;
}
@@ -619,7 +617,7 @@ namespace SourceGen.AppForms {
for (int i = extensionScriptsListBox.SelectedIndices.Count - 1; i >= 0; i--) {
int index = extensionScriptsListBox.SelectedIndices[i];
extensionScriptsListBox.Items.RemoveAt(index);
- WorkProps.ExtensionScriptFileIdentifiers.RemoveAt(index);
+ mWorkProps.ExtensionScriptFileIdentifiers.RemoveAt(index);
}
mDirty = true;
diff --git a/SourceGen/AppForms/EditStatusFlags.cs b/SourceGen/AppForms/EditStatusFlags.cs
index 448d26d..27bf0a1 100644
--- a/SourceGen/AppForms/EditStatusFlags.cs
+++ b/SourceGen/AppForms/EditStatusFlags.cs
@@ -24,21 +24,24 @@ namespace SourceGen.AppForms {
///
/// In/out status flag value.
///
- public StatusFlags FlagValue { get; set; }
+ public StatusFlags FlagValue { get; private set; }
///
/// Set this if the CPU has an emulation flag (65802/65816). If this isn't
/// set, the M, X, and E flag buttons will be disabled.
///
- public bool HasEmuFlag { get; set; }
+ private bool mHasEmuFlag;
- public EditStatusFlags() {
+ public EditStatusFlags(StatusFlags flagValue, bool hasEmuFlag) {
InitializeComponent();
+
+ FlagValue = flagValue;
+ mHasEmuFlag = hasEmuFlag;
}
private void EditStatusFlags_Load(object sender, EventArgs e) {
- if (!HasEmuFlag) {
+ if (!mHasEmuFlag) {
panelM.Enabled = false;
panelX.Enabled = false;
panelE.Enabled = false;
diff --git a/SourceGen/AppForms/FindBox.cs b/SourceGen/AppForms/FindBox.cs
index 333ecf2..eeb1869 100644
--- a/SourceGen/AppForms/FindBox.cs
+++ b/SourceGen/AppForms/FindBox.cs
@@ -19,12 +19,15 @@ using System.Windows.Forms;
namespace SourceGen.AppForms {
public partial class FindBox : Form {
///
- /// Text to find.
+ /// Text to find. On success, holds the string searched for.
///
- public string TextToFind { get; set; }
+ public string TextToFind { get; private set; }
- public FindBox() {
+
+ public FindBox(string findStr) {
InitializeComponent();
+
+ TextToFind = findStr;
}
private void FindBox_Load(object sender, EventArgs e) {
diff --git a/SourceGen/AppForms/ProjectLoadIssues.cs b/SourceGen/AppForms/ProjectLoadIssues.cs
index 084b81b..db9a909 100644
--- a/SourceGen/AppForms/ProjectLoadIssues.cs
+++ b/SourceGen/AppForms/ProjectLoadIssues.cs
@@ -14,7 +14,6 @@
* limitations under the License.
*/
using System;
-using System.Drawing;
using System.Windows.Forms;
namespace SourceGen.AppForms {
@@ -25,34 +24,36 @@ namespace SourceGen.AppForms {
///
/// Multi-line message for text box.
///
- public string Messages { get; set; }
+ private string mMessages;
///
- /// Enable or disable the Continue button. Defaults to true.
+ /// Which buttons are enabled.
///
- public bool CanContinue { get; set; }
-
- ///
- /// Enable or disable the Cancel button. Defaults to true.
- ///
- public bool CanCancel { get; set; }
+ private Buttons mAllowedButtons;
+ public enum Buttons {
+ Unknown = 0, Continue, Cancel, ContinueOrCancel
+ }
- public ProjectLoadIssues() {
+ public ProjectLoadIssues(string msgs, Buttons allowedButtons) {
InitializeComponent();
- CanContinue = CanCancel = true;
+
+ mMessages = msgs;
+ mAllowedButtons = allowedButtons;
}
private void ProjectLoadIssues_Load(object sender, EventArgs e) {
- messageTextBox.Text = Messages;
+ messageTextBox.Text = mMessages;
- if (!CanContinue) {
+ if (mAllowedButtons == Buttons.Cancel) {
+ // Continue not allowed
okButton.Enabled = false;
// No point warning them about invalid data if they can't continue.
invalidDiscardLabel.Visible = false;
}
- if (!CanCancel) {
+ if (mAllowedButtons == Buttons.Continue) {
+ // Cancel not allowed.
cancelButton.Enabled = false;
// They're stuck with the problem.
diff --git a/SourceGen/AppForms/ProjectView.cs b/SourceGen/AppForms/ProjectView.cs
index baaf1ba..5158641 100644
--- a/SourceGen/AppForms/ProjectView.cs
+++ b/SourceGen/AppForms/ProjectView.cs
@@ -803,9 +803,8 @@ namespace SourceGen.AppForms {
string messages = mProject.LoadExternalFiles();
if (messages.Length != 0) {
// ProjectLoadIssues isn't quite the right dialog, but it'll do.
- ProjectLoadIssues dlg = new ProjectLoadIssues();
- dlg.CanCancel = false;
- dlg.Messages = messages;
+ ProjectLoadIssues dlg = new ProjectLoadIssues(messages,
+ ProjectLoadIssues.Buttons.Continue);
dlg.ShowDialog();
dlg.Dispose();
}
@@ -1326,11 +1325,10 @@ namespace SourceGen.AppForms {
return;
}
- OpenFileDialog fileDlg = new OpenFileDialog();
-
- fileDlg.Filter = ProjectFile.FILENAME_FILTER + "|" +
- Properties.Resources.FILE_FILTER_ALL;
- fileDlg.FilterIndex = 1;
+ OpenFileDialog fileDlg = new OpenFileDialog() {
+ Filter = ProjectFile.FILENAME_FILTER + "|" + Properties.Resources.FILE_FILTER_ALL,
+ FilterIndex = 1
+ };
if (fileDlg.ShowDialog() != DialogResult.OK) {
return;
}
@@ -1365,9 +1363,8 @@ namespace SourceGen.AppForms {
// Should probably use a less-busy dialog for something simple like
// "permission denied", but the open file dialog handles most simple
// stuff directly.
- ProjectLoadIssues dlg = new ProjectLoadIssues();
- dlg.Messages = report.Format();
- dlg.CanContinue = false;
+ ProjectLoadIssues dlg = new ProjectLoadIssues(report.Format(),
+ ProjectLoadIssues.Buttons.Cancel);
dlg.ShowDialog();
// ignore dlg.DialogResult
dlg.Dispose();
@@ -1397,8 +1394,8 @@ namespace SourceGen.AppForms {
// If there were warnings, notify the user and give the a chance to cancel.
if (report.Count != 0) {
- ProjectLoadIssues dlg = new ProjectLoadIssues();
- dlg.Messages = report.Format();
+ ProjectLoadIssues dlg = new ProjectLoadIssues(report.Format(),
+ ProjectLoadIssues.Buttons.ContinueOrCancel);
dlg.ShowDialog();
DialogResult result = dlg.DialogResult;
dlg.Dispose();
@@ -1476,9 +1473,7 @@ namespace SourceGen.AppForms {
/// Message to display in the message box.
/// Full path of file to open.
private string ChooseDataFile(string origPath, string errorMsg) {
- DataFileLoadIssue dlg = new DataFileLoadIssue();
- dlg.PathName = origPath;
- dlg.Message = errorMsg;
+ DataFileLoadIssue dlg = new DataFileLoadIssue(origPath, errorMsg);
dlg.ShowDialog();
DialogResult result = dlg.DialogResult;
dlg.Dispose();
@@ -1486,9 +1481,10 @@ namespace SourceGen.AppForms {
return null;
}
- OpenFileDialog fileDlg = new OpenFileDialog();
- fileDlg.FileName = Path.GetFileName(origPath);
- fileDlg.Filter = Properties.Resources.FILE_FILTER_ALL;
+ OpenFileDialog fileDlg = new OpenFileDialog() {
+ FileName = Path.GetFileName(origPath),
+ Filter = Properties.Resources.FILE_FILTER_ALL
+ };
if (fileDlg.ShowDialog() != DialogResult.OK) {
return null;
}
@@ -1513,14 +1509,13 @@ namespace SourceGen.AppForms {
// File > Save As...
private void saveAsToolStripMenuItem_Click(object sender, EventArgs e) {
- SaveFileDialog fileDlg = new SaveFileDialog();
-
- fileDlg.Filter = ProjectFile.FILENAME_FILTER + "|" +
- Properties.Resources.FILE_FILTER_ALL;
- fileDlg.FilterIndex = 1;
- fileDlg.ValidateNames = true;
- fileDlg.AddExtension = true;
- fileDlg.FileName = Path.GetFileName(mDataPathName) + ProjectFile.FILENAME_EXT;
+ SaveFileDialog fileDlg = new SaveFileDialog() {
+ Filter = ProjectFile.FILENAME_FILTER + "|" + Properties.Resources.FILE_FILTER_ALL,
+ FilterIndex = 1,
+ ValidateNames = true,
+ AddExtension = true,
+ FileName = Path.GetFileName(mDataPathName) + ProjectFile.FILENAME_EXT
+ };
if (fileDlg.ShowDialog() == DialogResult.OK) {
string pathName = Path.GetFullPath(fileDlg.FileName);
Debug.WriteLine("Project save path: " + pathName);
@@ -1839,8 +1834,7 @@ namespace SourceGen.AppForms {
// Edit > Find... (Ctrl+F)
private void findToolStripMenuItem_Click(object sender, EventArgs e) {
- FindBox dlg = new FindBox();
- dlg.TextToFind = mFindString;
+ FindBox dlg = new FindBox(mFindString);
if (dlg.ShowDialog() == DialogResult.OK) {
mFindString = dlg.TextToFind;
mFindStartIndex = -1;
@@ -1918,13 +1912,14 @@ namespace SourceGen.AppForms {
if (!string.IsNullOrEmpty(mProjectPathName)) {
projectDir = Path.GetDirectoryName(mProjectPathName);
}
- EditProjectProperties dlg = new EditProjectProperties(projectDir);
- dlg.SetInitialProps(mProject.ProjectProps);
- dlg.NumFormatter = mOutputFormatter;
+ EditProjectProperties dlg = new EditProjectProperties(mProject.ProjectProps,
+ projectDir, mOutputFormatter);
dlg.ShowDialog();
ProjectProperties newProps = dlg.NewProps;
dlg.Dispose();
+ // The dialog result doesn't matter, because the user might have hit "apply"
+ // before hitting "cancel".
if (newProps != null) {
UndoableChange uc = UndoableChange.CreateProjectPropertiesChange(
mProject.ProjectProps, newProps);
@@ -2553,13 +2548,9 @@ namespace SourceGen.AppForms {
Debug.Assert(IsSingleItemSelected());
int offset = mDisplayList[sel[0]].FileOffset;
- EditAddress dlg = new EditAddress();
Anattrib attr = mProject.GetAnattrib(offset);
- dlg.MaxAddressValue = mProject.CpuDef.MaxAddressValue;
- dlg.SetInitialAddress(attr.Address);
- dlg.ShowDialog();
-
- if (dlg.DialogResult == DialogResult.OK) {
+ EditAddress dlg = new EditAddress(attr.Address, mProject.CpuDef.MaxAddressValue);
+ if (dlg.ShowDialog() == DialogResult.OK) {
if (offset == 0 && dlg.Address < 0) {
// Not allowed. The AddressMap will just put it back, which confuses
// the undo operation.
@@ -2860,13 +2851,10 @@ namespace SourceGen.AppForms {
Debug.Assert(IsSingleItemSelected());
int offset = mDisplayList[sel[0]].FileOffset;
- EditLabel dlg = new EditLabel(mProject.SymbolTable);
Anattrib attr = mProject.GetAnattrib(offset);
+ EditLabel dlg = new EditLabel(attr.Symbol, attr.Address, mProject.SymbolTable);
- dlg.LabelSym = attr.Symbol;
- dlg.Address = attr.Address;
- dlg.ShowDialog();
- if (dlg.DialogResult == DialogResult.OK) {
+ if (dlg.ShowDialog() == DialogResult.OK) {
// NOTE: if label matching is case-insensitive, we want to allow a situation
// where a label is being renamed from "FOO" to "Foo". (We should be able to
// test for object equality on the Symbol.)
@@ -2895,11 +2883,9 @@ namespace SourceGen.AppForms {
Debug.Assert(IsSingleItemSelected());
int offset = mDisplayList[sel[0]].FileOffset;
- EditStatusFlags dlg = new EditStatusFlags();
- dlg.HasEmuFlag = mProject.CpuDef.HasEmuFlag;
- dlg.FlagValue = mProject.StatusFlagOverrides[offset];
- dlg.ShowDialog();
- if (dlg.DialogResult == DialogResult.OK) {
+ EditStatusFlags dlg = new EditStatusFlags(mProject.StatusFlagOverrides[offset],
+ mProject.CpuDef.HasEmuFlag);
+ if (dlg.ShowDialog() == DialogResult.OK) {
if (dlg.FlagValue != mProject.StatusFlagOverrides[offset]) {
UndoableChange uc = UndoableChange.CreateStatusFlagChange(offset,
mProject.StatusFlagOverrides[offset], dlg.FlagValue);
@@ -2916,11 +2902,9 @@ namespace SourceGen.AppForms {
Debug.Assert(IsSingleItemSelected());
int offset = mDisplayList[sel[0]].FileOffset;
- EditComment dlg = new EditComment();
- string oldComment = dlg.Comment = mProject.Comments[offset];
- dlg.ShowDialog();
-
- if (dlg.DialogResult == DialogResult.OK) {
+ string oldComment = mProject.Comments[offset];
+ EditComment dlg = new EditComment(oldComment);
+ if (dlg.ShowDialog() == DialogResult.OK) {
if (!oldComment.Equals(dlg.Comment)) {
Debug.WriteLine("Changing comment at +" + offset.ToString("x6"));
@@ -4478,9 +4462,10 @@ namespace SourceGen.AppForms {
#region Tools items
private void hexDumpToolStripMenuItem_Click(object sender, EventArgs e) {
- OpenFileDialog fileDlg = new OpenFileDialog();
- fileDlg.Filter = Properties.Resources.FILE_FILTER_ALL;
- fileDlg.FilterIndex = 1;
+ OpenFileDialog fileDlg = new OpenFileDialog() {
+ Filter = Properties.Resources.FILE_FILTER_ALL,
+ FilterIndex = 1
+ };
if (fileDlg.ShowDialog() != DialogResult.OK) {
return;
}
diff --git a/SourceGen/DisplayList.cs b/SourceGen/DisplayList.cs
index da5da82..48ceb95 100644
--- a/SourceGen/DisplayList.cs
+++ b/SourceGen/DisplayList.cs
@@ -188,12 +188,7 @@ namespace SourceGen {
public string SearchString { get; set; }
- public Line(int offset, int span, Type type) {
- FileOffset = offset;
- OffsetSpan = span;
- LineType = type;
- SubLineIndex = 0;
- }
+ public Line(int offset, int span, Type type) : this(offset, span, type, 0) { }
public Line(int offset, int span, Type type, int subLineIndex) {
FileOffset = offset;
diff --git a/SourceGen/Setup/NewProject.cs b/SourceGen/Setup/NewProject.cs
index 1ce32c0..8844152 100644
--- a/SourceGen/Setup/NewProject.cs
+++ b/SourceGen/Setup/NewProject.cs
@@ -167,11 +167,10 @@ namespace SourceGen.Setup {
}
private void selectFileButton_Click(object sender, EventArgs e) {
- OpenFileDialog fileDlg = new OpenFileDialog();
-
- fileDlg.Filter = Properties.Resources.FILE_FILTER_ALL;
-
- fileDlg.FilterIndex = 1;
+ OpenFileDialog fileDlg = new OpenFileDialog() {
+ Filter = Properties.Resources.FILE_FILTER_ALL,
+ FilterIndex = 1
+ };
if (fileDlg.ShowDialog() == DialogResult.OK) {
FileInfo fi = new FileInfo(fileDlg.FileName);