WIP: Working on "zerofy widht for blank symbols" feature
This commit is contained in:
35
McBitFont/Form1.Designer.cs
generated
35
McBitFont/Form1.Designer.cs
generated
@@ -119,6 +119,7 @@
|
||||
dlgSavePNG = new System.Windows.Forms.SaveFileDialog();
|
||||
pnlRightButtons = new System.Windows.Forms.Panel();
|
||||
pnlInfo = new System.Windows.Forms.Panel();
|
||||
zerofyWidthToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
((System.ComponentModel.ISupportInitialize)nudX).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)nudY).BeginInit();
|
||||
panel1.SuspendLayout();
|
||||
@@ -720,7 +721,7 @@
|
||||
//
|
||||
// fontToolStripMenuItem
|
||||
//
|
||||
fontToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { makeVarWidthToolStripMenuItem, prependSymbolToolStripMenuItem, appendSymbolToolStripMenuItem, removeSymbolToolStripMenuItem, removeBeforeToolStripMenuItem, removeAfterToolStripMenuItem, CodeShiftToolStripMenuItem, toolStripSeparator3, previousSymbolToolStripMenuItem, nextSymbolToolStripMenuItem, toolStripSeparator4, testFontToolStripMenuItem });
|
||||
fontToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { makeVarWidthToolStripMenuItem, prependSymbolToolStripMenuItem, appendSymbolToolStripMenuItem, removeSymbolToolStripMenuItem, removeBeforeToolStripMenuItem, removeAfterToolStripMenuItem, zerofyWidthToolStripMenuItem, CodeShiftToolStripMenuItem, toolStripSeparator3, previousSymbolToolStripMenuItem, nextSymbolToolStripMenuItem, toolStripSeparator4, testFontToolStripMenuItem });
|
||||
fontToolStripMenuItem.Name = "fontToolStripMenuItem";
|
||||
fontToolStripMenuItem.Size = new System.Drawing.Size(43, 20);
|
||||
fontToolStripMenuItem.Text = "Font";
|
||||
@@ -730,7 +731,7 @@
|
||||
//
|
||||
makeVarWidthToolStripMenuItem.Image = Properties.Resources.z_asterisk;
|
||||
makeVarWidthToolStripMenuItem.Name = "makeVarWidthToolStripMenuItem";
|
||||
makeVarWidthToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
|
||||
makeVarWidthToolStripMenuItem.Size = new System.Drawing.Size(241, 22);
|
||||
makeVarWidthToolStripMenuItem.Text = "Make Variable Width";
|
||||
makeVarWidthToolStripMenuItem.ToolTipText = "Make Font Variable width one";
|
||||
makeVarWidthToolStripMenuItem.Visible = false;
|
||||
@@ -743,7 +744,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(215, 22);
|
||||
prependSymbolToolStripMenuItem.Size = new System.Drawing.Size(241, 22);
|
||||
prependSymbolToolStripMenuItem.Text = "Prepend symbol";
|
||||
prependSymbolToolStripMenuItem.ToolTipText = "Add a symbol to the beginning of the sequence";
|
||||
prependSymbolToolStripMenuItem.Click += prependSymbolToolStripMenuItem_Click;
|
||||
@@ -755,7 +756,7 @@
|
||||
appendSymbolToolStripMenuItem.Name = "appendSymbolToolStripMenuItem";
|
||||
appendSymbolToolStripMenuItem.ShortcutKeyDisplayString = "";
|
||||
appendSymbolToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.End;
|
||||
appendSymbolToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
|
||||
appendSymbolToolStripMenuItem.Size = new System.Drawing.Size(241, 22);
|
||||
appendSymbolToolStripMenuItem.Text = "Append symbol";
|
||||
appendSymbolToolStripMenuItem.ToolTipText = "Add a symbol to the end of the sequence";
|
||||
appendSymbolToolStripMenuItem.Click += prependSymbolToolStripMenuItem_Click;
|
||||
@@ -767,7 +768,7 @@
|
||||
removeSymbolToolStripMenuItem.Name = "removeSymbolToolStripMenuItem";
|
||||
removeSymbolToolStripMenuItem.ShortcutKeyDisplayString = "";
|
||||
removeSymbolToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Delete;
|
||||
removeSymbolToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
|
||||
removeSymbolToolStripMenuItem.Size = new System.Drawing.Size(241, 22);
|
||||
removeSymbolToolStripMenuItem.Text = "Remove symbol";
|
||||
removeSymbolToolStripMenuItem.ToolTipText = "Remove current symbol (works only for first or last symbol in the sequence)";
|
||||
removeSymbolToolStripMenuItem.Click += removeSymbolToolStripMenuItem_Click;
|
||||
@@ -777,7 +778,7 @@
|
||||
removeBeforeToolStripMenuItem.Enabled = false;
|
||||
removeBeforeToolStripMenuItem.Image = Properties.Resources.delete;
|
||||
removeBeforeToolStripMenuItem.Name = "removeBeforeToolStripMenuItem";
|
||||
removeBeforeToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
|
||||
removeBeforeToolStripMenuItem.Size = new System.Drawing.Size(241, 22);
|
||||
removeBeforeToolStripMenuItem.Text = "Remove all before selected";
|
||||
removeBeforeToolStripMenuItem.ToolTipText = "Remove all symbols before current one";
|
||||
removeBeforeToolStripMenuItem.Click += removeBeforeToolStripMenuItem_Click;
|
||||
@@ -787,7 +788,7 @@
|
||||
removeAfterToolStripMenuItem.Enabled = false;
|
||||
removeAfterToolStripMenuItem.Image = Properties.Resources.delete;
|
||||
removeAfterToolStripMenuItem.Name = "removeAfterToolStripMenuItem";
|
||||
removeAfterToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
|
||||
removeAfterToolStripMenuItem.Size = new System.Drawing.Size(241, 22);
|
||||
removeAfterToolStripMenuItem.Text = "Remove all after selected";
|
||||
removeAfterToolStripMenuItem.ToolTipText = "Remove all symbols after current one";
|
||||
removeAfterToolStripMenuItem.Click += removeAfterToolStripMenuItem_Click;
|
||||
@@ -796,7 +797,7 @@
|
||||
//
|
||||
CodeShiftToolStripMenuItem.Image = Properties.Resources.z_align_center;
|
||||
CodeShiftToolStripMenuItem.Name = "CodeShiftToolStripMenuItem";
|
||||
CodeShiftToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
|
||||
CodeShiftToolStripMenuItem.Size = new System.Drawing.Size(241, 22);
|
||||
CodeShiftToolStripMenuItem.Text = "Code shift";
|
||||
CodeShiftToolStripMenuItem.ToolTipText = "Shift the font on the code line";
|
||||
CodeShiftToolStripMenuItem.Click += CodeShiftToolStripMenuItem_Click;
|
||||
@@ -804,13 +805,13 @@
|
||||
// toolStripSeparator3
|
||||
//
|
||||
toolStripSeparator3.Name = "toolStripSeparator3";
|
||||
toolStripSeparator3.Size = new System.Drawing.Size(212, 6);
|
||||
toolStripSeparator3.Size = new System.Drawing.Size(238, 6);
|
||||
//
|
||||
// previousSymbolToolStripMenuItem
|
||||
//
|
||||
previousSymbolToolStripMenuItem.Name = "previousSymbolToolStripMenuItem";
|
||||
previousSymbolToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.Left;
|
||||
previousSymbolToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
|
||||
previousSymbolToolStripMenuItem.Size = new System.Drawing.Size(241, 22);
|
||||
previousSymbolToolStripMenuItem.Text = "Previous Symbol";
|
||||
previousSymbolToolStripMenuItem.Click += previousSymbolToolStripMenuItem_Click;
|
||||
//
|
||||
@@ -818,20 +819,20 @@
|
||||
//
|
||||
nextSymbolToolStripMenuItem.Name = "nextSymbolToolStripMenuItem";
|
||||
nextSymbolToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.Right;
|
||||
nextSymbolToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
|
||||
nextSymbolToolStripMenuItem.Size = new System.Drawing.Size(241, 22);
|
||||
nextSymbolToolStripMenuItem.Text = "Next symbol";
|
||||
nextSymbolToolStripMenuItem.Click += nextSymbolToolStripMenuItem_Click;
|
||||
//
|
||||
// toolStripSeparator4
|
||||
//
|
||||
toolStripSeparator4.Name = "toolStripSeparator4";
|
||||
toolStripSeparator4.Size = new System.Drawing.Size(212, 6);
|
||||
toolStripSeparator4.Size = new System.Drawing.Size(238, 6);
|
||||
//
|
||||
// testFontToolStripMenuItem
|
||||
//
|
||||
testFontToolStripMenuItem.Image = Properties.Resources.font;
|
||||
testFontToolStripMenuItem.Name = "testFontToolStripMenuItem";
|
||||
testFontToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
|
||||
testFontToolStripMenuItem.Size = new System.Drawing.Size(241, 22);
|
||||
testFontToolStripMenuItem.Text = "Test font";
|
||||
testFontToolStripMenuItem.ToolTipText = "Open dialog where you can test the font with any text you type";
|
||||
testFontToolStripMenuItem.Click += TestFont_Click;
|
||||
@@ -1140,6 +1141,13 @@
|
||||
pnlInfo.Size = new System.Drawing.Size(103, 154);
|
||||
pnlInfo.TabIndex = 28;
|
||||
//
|
||||
// zerofyWidthToolStripMenuItem
|
||||
//
|
||||
zerofyWidthToolStripMenuItem.Name = "zerofyWidthToolStripMenuItem";
|
||||
zerofyWidthToolStripMenuItem.Size = new System.Drawing.Size(241, 22);
|
||||
zerofyWidthToolStripMenuItem.Text = "Make all blank symbols 0-width";
|
||||
zerofyWidthToolStripMenuItem.Click += ZerofyBlankWidth;
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||
@@ -1273,6 +1281,7 @@
|
||||
private System.Windows.Forms.Panel pnlInfo;
|
||||
private System.Windows.Forms.ToolStripMenuItem toggleBarToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator4;
|
||||
private System.Windows.Forms.ToolStripMenuItem zerofyWidthToolStripMenuItem;
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -98,6 +98,17 @@ namespace McBitFont {
|
||||
}
|
||||
}
|
||||
|
||||
// Check if a frame is "blank"
|
||||
private static bool IsFrameBlank(FrameMiniature frame) {
|
||||
if (frame.code == 32) return false; // Space character is always blank, so skip it
|
||||
for (int i = 0; i < frame.width; i++) {
|
||||
for (int j = 0; j < frame.height; j++) {
|
||||
if (frame.data[i, j]) return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// Remember sidebar panels locations
|
||||
private void SideBarRecalc() {
|
||||
|
||||
@@ -1633,5 +1644,25 @@ namespace McBitFont {
|
||||
}
|
||||
PrevNextMenuCheck();
|
||||
}
|
||||
|
||||
private void ZerofyBlankWidth(object sender, EventArgs e) {
|
||||
if (monospaced) return; // Does not work for monospaced fonts
|
||||
if (frames.Count < 2) return; // Does not work for single images
|
||||
|
||||
for (int i = 0; i < frames.Count; i++) {
|
||||
if (IsFrameBlank(frames[i])) {
|
||||
Bitmap bmp;
|
||||
|
||||
frames[i] = FrameResize(frames[i], 0, dotHeight);
|
||||
bmp = GetMiniPictue(frames[i]);
|
||||
string s = frames[i].code.ToString().PadLeft(3, '0');
|
||||
ilMiniatures.Images.RemoveByKey(s);
|
||||
ilMiniatures.Images.Add(s, (Image)bmp);
|
||||
miniList.Items[s].ImageKey = s;
|
||||
|
||||
SetModified(true, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user