TODO feature: Delete symbols before/after selected

This commit is contained in:
Anton Mukhin
2025-05-20 14:05:42 +03:00
parent bbfccc2308
commit ca42d3819f
4 changed files with 99 additions and 31 deletions

View File

@@ -62,6 +62,8 @@
prependSymbolToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
appendSymbolToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
removeSymbolToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
removeBeforeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
removeAfterToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
applyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
ClearToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@@ -461,7 +463,7 @@
//
// editToolStripMenuItem
//
editToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { copyToolStripMenuItem, pasteToolStripMenuItem, prependSymbolToolStripMenuItem, appendSymbolToolStripMenuItem, removeSymbolToolStripMenuItem, applyToolStripMenuItem });
editToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { copyToolStripMenuItem, pasteToolStripMenuItem, prependSymbolToolStripMenuItem, appendSymbolToolStripMenuItem, removeSymbolToolStripMenuItem, removeBeforeToolStripMenuItem, removeAfterToolStripMenuItem, applyToolStripMenuItem });
editToolStripMenuItem.Name = "editToolStripMenuItem";
editToolStripMenuItem.Size = new System.Drawing.Size(39, 20);
editToolStripMenuItem.Text = "Edit";
@@ -473,7 +475,7 @@
copyToolStripMenuItem.Name = "copyToolStripMenuItem";
copyToolStripMenuItem.ShortcutKeyDisplayString = "Ctrl+C";
copyToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.C;
copyToolStripMenuItem.Size = new System.Drawing.Size(212, 22);
copyToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
copyToolStripMenuItem.Text = "Copy";
copyToolStripMenuItem.Click += copyToolStripMenuItem_Click;
//
@@ -484,7 +486,7 @@
pasteToolStripMenuItem.Name = "pasteToolStripMenuItem";
pasteToolStripMenuItem.ShortcutKeyDisplayString = "Ctrl+V";
pasteToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.V;
pasteToolStripMenuItem.Size = new System.Drawing.Size(212, 22);
pasteToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
pasteToolStripMenuItem.Text = "Paste";
pasteToolStripMenuItem.Click += pasteToolStripMenuItem_Click;
//
@@ -495,7 +497,7 @@
prependSymbolToolStripMenuItem.Name = "prependSymbolToolStripMenuItem";
prependSymbolToolStripMenuItem.ShortcutKeyDisplayString = "Ctrl+Ins";
prependSymbolToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Insert;
prependSymbolToolStripMenuItem.Size = new System.Drawing.Size(212, 22);
prependSymbolToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
prependSymbolToolStripMenuItem.Text = "Prepend symbol";
prependSymbolToolStripMenuItem.Click += prependSymbolToolStripMenuItem_Click;
//
@@ -506,7 +508,7 @@
appendSymbolToolStripMenuItem.Name = "appendSymbolToolStripMenuItem";
appendSymbolToolStripMenuItem.ShortcutKeyDisplayString = "Ctrl+End";
appendSymbolToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.End;
appendSymbolToolStripMenuItem.Size = new System.Drawing.Size(212, 22);
appendSymbolToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
appendSymbolToolStripMenuItem.Text = "Append symbol";
appendSymbolToolStripMenuItem.Click += prependSymbolToolStripMenuItem_Click;
//
@@ -517,17 +519,35 @@
removeSymbolToolStripMenuItem.Name = "removeSymbolToolStripMenuItem";
removeSymbolToolStripMenuItem.ShortcutKeyDisplayString = "Ctrl+Del";
removeSymbolToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Delete;
removeSymbolToolStripMenuItem.Size = new System.Drawing.Size(212, 22);
removeSymbolToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
removeSymbolToolStripMenuItem.Text = "Remove symbol";
removeSymbolToolStripMenuItem.Click += removeSymbolToolStripMenuItem_Click;
//
// removeBeforeToolStripMenuItem
//
removeBeforeToolStripMenuItem.Enabled = false;
removeBeforeToolStripMenuItem.Image = Properties.Resources.action_remove;
removeBeforeToolStripMenuItem.Name = "removeBeforeToolStripMenuItem";
removeBeforeToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
removeBeforeToolStripMenuItem.Text = "Remove all before selected";
removeBeforeToolStripMenuItem.Click += removeBeforeToolStripMenuItem_Click;
//
// removeAfterToolStripMenuItem
//
removeAfterToolStripMenuItem.Enabled = false;
removeAfterToolStripMenuItem.Image = Properties.Resources.action_remove;
removeAfterToolStripMenuItem.Name = "removeAfterToolStripMenuItem";
removeAfterToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
removeAfterToolStripMenuItem.Text = "Remove all after selected";
removeAfterToolStripMenuItem.Click += removeAfterToolStripMenuItem_Click;
//
// applyToolStripMenuItem
//
applyToolStripMenuItem.Image = Properties.Resources.action_check;
applyToolStripMenuItem.Name = "applyToolStripMenuItem";
applyToolStripMenuItem.ShortcutKeyDisplayString = "Ctrl+Space";
applyToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Space;
applyToolStripMenuItem.Size = new System.Drawing.Size(212, 22);
applyToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
applyToolStripMenuItem.Text = "Apply";
applyToolStripMenuItem.Click += button2_Click;
//
@@ -786,6 +806,8 @@
private System.Windows.Forms.ToolStripMenuItem ClearToolStripMenuItem;
private System.Windows.Forms.CheckBox chkLeftSide;
private System.Windows.Forms.CheckBox chkTopSide;
private System.Windows.Forms.ToolStripMenuItem removeBeforeToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem removeAfterToolStripMenuItem;
}
}

View File

@@ -56,7 +56,7 @@ namespace McBitFont {
public bool monospaced = false;
bool modified = false;
bool prjModified = false;
public const string version = "1.7";
public const string version = "2.0";
public string prjName = "Untitled";
public string prjFileName = "";
public int codepage = 1251;
@@ -603,6 +603,8 @@ namespace McBitFont {
checkModifiedFrame();
if (miniList.SelectedItems.Count == 0) {
removeSymbolToolStripMenuItem.Enabled = false;
removeBeforeToolStripMenuItem.Enabled = false;
removeAfterToolStripMenuItem.Enabled = false;
copyToolStripMenuItem.Enabled = false;
pasteToolStripMenuItem.Enabled = false;
return;
@@ -622,6 +624,17 @@ namespace McBitFont {
removeSymbolToolStripMenuItem.Enabled = false;
}
copyToolStripMenuItem.Enabled = true;
if (ff.Equals(frames.First())) {
removeBeforeToolStripMenuItem.Enabled = false;
removeAfterToolStripMenuItem.Enabled = true;
} else if (ff.Equals(frames.Last())) {
removeBeforeToolStripMenuItem.Enabled = true;
removeAfterToolStripMenuItem.Enabled = false;
} else {
removeBeforeToolStripMenuItem.Enabled = true;
removeAfterToolStripMenuItem.Enabled = true;
}
if (fbuffer) pasteToolStripMenuItem.Enabled = true;
else pasteToolStripMenuItem.Enabled = false;
}
@@ -817,5 +830,35 @@ namespace McBitFont {
dotPanel.Refresh();
}
// Remove all before or after specified symbol
private void removeBA(bool before) {
if (miniList.SelectedItems.Count == 0) {
removeBeforeToolStripMenuItem.Enabled = false;
removeAfterToolStripMenuItem.Enabled = false;
return;
}
int step = before ? -1 : 1;
var sel = miniList.SelectedItems[0].ImageKey;
int code = Convert.ToInt32(sel);
int findex;
while (miniList.Items.ContainsKey((code + step).ToString().PadLeft(3, '0'))) {
code += step;
findex = frames.FindIndex(x => x.code == code);
frames.RemoveAt(findex);
miniList.Items.RemoveByKey(code.ToString().PadLeft(3, '0'));
}
//dotPanel.Refresh();
miniList.Refresh();
prjModified = true;
}
private void removeBeforeToolStripMenuItem_Click(object sender, EventArgs e) {
removeBA(true);
}
private void removeAfterToolStripMenuItem_Click(object sender, EventArgs e) {
removeBA(false);
}
}
}

View File

@@ -20,6 +20,8 @@
<UseWindowsForms>true</UseWindowsForms>
<ImportWindowsDesktopTargets>true</ImportWindowsDesktopTargets>
<ApplicationIcon>icon_64.ico</ApplicationIcon>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<FileVersion>2.0.0.0</FileVersion>
</PropertyGroup>
<ItemGroup>
<Content Include="icon.ico" />

View File

@@ -1,8 +1,9 @@
Application:
V Migrate from .Net Framework 4.7 to .NET 9
Functionality:
- Context menu in symbol navigator
- Delete symbols before/after selected
V Delete symbols before/after selected
- Shift all symbols on code line (change symbol codes)
- Specify starting code (extends the shift)
- Ability to make monospaced font a variable width one