Add/Remove symbols

This commit is contained in:
Anton Mukhin
2023-05-12 14:08:21 +03:00
parent 302977c3f4
commit 0ba03444d1
2 changed files with 59 additions and 3 deletions

View File

@@ -325,6 +325,7 @@
this.miniList.ShowGroups = false; this.miniList.ShowGroups = false;
this.miniList.Size = new System.Drawing.Size(343, 395); this.miniList.Size = new System.Drawing.Size(343, 395);
this.miniList.SmallImageList = this.ilMiniatures; this.miniList.SmallImageList = this.ilMiniatures;
this.miniList.Sorting = System.Windows.Forms.SortOrder.Ascending;
this.miniList.TabIndex = 12; this.miniList.TabIndex = 12;
this.miniList.TabStop = false; this.miniList.TabStop = false;
this.miniList.TileSize = new System.Drawing.Size(50, 50); this.miniList.TileSize = new System.Drawing.Size(50, 50);
@@ -459,6 +460,7 @@
this.removeSymbolToolStripMenuItem.Name = "removeSymbolToolStripMenuItem"; this.removeSymbolToolStripMenuItem.Name = "removeSymbolToolStripMenuItem";
this.removeSymbolToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.removeSymbolToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.removeSymbolToolStripMenuItem.Text = "Remove symbol"; this.removeSymbolToolStripMenuItem.Text = "Remove symbol";
this.removeSymbolToolStripMenuItem.Click += new System.EventHandler(this.removeSymbolToolStripMenuItem_Click);
// //
// applyToolStripMenuItem // applyToolStripMenuItem
// //
@@ -582,6 +584,7 @@
this.prependSymbolToolStripMenuItem.Name = "prependSymbolToolStripMenuItem"; this.prependSymbolToolStripMenuItem.Name = "prependSymbolToolStripMenuItem";
this.prependSymbolToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.prependSymbolToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.prependSymbolToolStripMenuItem.Text = "Prepend symbol"; this.prependSymbolToolStripMenuItem.Text = "Prepend symbol";
this.prependSymbolToolStripMenuItem.Click += new System.EventHandler(this.prependSymbolToolStripMenuItem_Click);
// //
// appendSymbolToolStripMenuItem // appendSymbolToolStripMenuItem
// //
@@ -590,6 +593,7 @@
this.appendSymbolToolStripMenuItem.Name = "appendSymbolToolStripMenuItem"; this.appendSymbolToolStripMenuItem.Name = "appendSymbolToolStripMenuItem";
this.appendSymbolToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.appendSymbolToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.appendSymbolToolStripMenuItem.Text = "Append symbol"; this.appendSymbolToolStripMenuItem.Text = "Append symbol";
this.appendSymbolToolStripMenuItem.Click += new System.EventHandler(this.prependSymbolToolStripMenuItem_Click);
// //
// MainForm // MainForm
// //

View File

@@ -391,7 +391,7 @@ namespace McBitFont {
frames[index] = f; frames[index] = f;
var sizedBMP = getMiniPictue(f); var sizedBMP = getMiniPictue(f);
string s = f.code.ToString(); string s = f.code.ToString().PadLeft(3, '0');
ilMiniatures.Images.RemoveByKey(s); ilMiniatures.Images.RemoveByKey(s);
ilMiniatures.Images.Add(s, (Image)sizedBMP); ilMiniatures.Images.Add(s, (Image)sizedBMP);
sizedBMP.Dispose(); sizedBMP.Dispose();
@@ -492,7 +492,7 @@ namespace McBitFont {
} }
lblType.Text = monospaced ? "Monospaced" : "Variable width / Single"; lblType.Text = monospaced ? "Monospaced" : "Variable width / Single";
foreach (FrameMiniature ff in frames) { foreach (FrameMiniature ff in frames) {
var s = ff.code.ToString(); var s = ff.code.ToString().PadLeft(3, '0');
ilMiniatures.Images.Add(s, (Image)getMiniPictue(ff)); ilMiniatures.Images.Add(s, (Image)getMiniPictue(ff));
codepage =(form.cbEncoding.SelectedItem as New.EncodingItem).Code; codepage =(form.cbEncoding.SelectedItem as New.EncodingItem).Code;
var sss = decodeSymbol(ff.code); var sss = decodeSymbol(ff.code);
@@ -506,6 +506,7 @@ namespace McBitFont {
prjName = "Untitled"; prjName = "Untitled";
this.Text = "McBitFont " + version + " - " + prjName; this.Text = "McBitFont " + version + " - " + prjName;
modified = false; modified = false;
checkForAdd();
} }
} }
@@ -518,7 +519,9 @@ namespace McBitFont {
modified = false; modified = false;
} }
if (miniList.SelectedItems.Count == 0) { if (miniList.SelectedItems.Count == 0) {
miniList.Items[0].Selected = true; removeSymbolToolStripMenuItem.Enabled = false;
return;
//miniList.Items[0].Selected = true;
} }
var sel = miniList.SelectedItems[0]; var sel = miniList.SelectedItems[0];
int code = Convert.ToInt32(sel.ImageKey); int code = Convert.ToInt32(sel.ImageKey);
@@ -527,6 +530,12 @@ namespace McBitFont {
nudY.Value = ff.height; nudY.Value = ff.height;
f = ff; f = ff;
dotPanel.Refresh(); dotPanel.Refresh();
ff = frames.Find(x => x.code == code);
if (frames.Count > 1 && (ff.Equals(frames.First()) || ff.Equals(frames.Last()))) {
removeSymbolToolStripMenuItem.Enabled = true;
} else {
removeSymbolToolStripMenuItem.Enabled = false;
}
} }
private void saveToolStripMenuItem_Click(object sender, EventArgs e) { private void saveToolStripMenuItem_Click(object sender, EventArgs e) {
@@ -587,6 +596,49 @@ namespace McBitFont {
prjName = Path.GetFileNameWithoutExtension(dlgOpen.FileName); prjName = Path.GetFileNameWithoutExtension(dlgOpen.FileName);
this.Text = "McBitFont " + version + " - " + prjName; this.Text = "McBitFont " + version + " - " + prjName;
checkForAdd();
}
}
private void removeSymbolToolStripMenuItem_Click(object sender, EventArgs e) {
if (miniList.SelectedItems.Count == 0) {
removeSymbolToolStripMenuItem.Enabled = false;
return;
}
var sel = miniList.SelectedItems[0].ImageKey;
int code = Convert.ToInt32(miniList.SelectedItems[0].ImageKey);
FrameMiniature ff = frames.Find(x => x.code == code);
frames.Remove(ff);
miniList.SelectedItems[0].Remove();
//miniList.Items[0].Selected = true;
}
private void prependSymbolToolStripMenuItem_Click(object sender, EventArgs e) {
FrameMiniature ff;
if (sender == prependSymbolToolStripMenuItem) {
ff = new FrameMiniature(frames.First().code - 1, dotWidth, dotHeight);
frames.Insert(0, ff);
} else {
ff = new FrameMiniature(frames.Last().code + 1, dotWidth, dotHeight);
frames.Add(ff);
}
var s = ff.code.ToString().PadLeft(3, '0');
ilMiniatures.Images.Add(s, (Image)getMiniPictue(ff));
var sss = decodeSymbol(ff.code);
miniList.Items.Add(s, s + ' ' + sss, s);
checkForAdd();
}
private void checkForAdd() {
if (frames.Count > 1) {
if (frames.First().code > 0) prependSymbolToolStripMenuItem.Enabled = true;
else prependSymbolToolStripMenuItem.Enabled = false;
if (frames.Last().code < 255) appendSymbolToolStripMenuItem.Enabled = true;
else appendSymbolToolStripMenuItem.Enabled = false;
} else {
prependSymbolToolStripMenuItem.Enabled = false;
appendSymbolToolStripMenuItem.Enabled = false;
} }
} }