TODO features:

- Option to hide symbols list to narrow the side bar
- Buttons to select previous/next symbol with shortcuts
This commit is contained in:
Anton Mukhin
2025-06-17 17:03:08 +03:00
parent 07906b8abc
commit 7952263595
4 changed files with 110 additions and 37 deletions

View File

@@ -54,7 +54,7 @@
nudSpace.Maximum = new decimal(new int[] { 255, 0, 0, 0 });
nudSpace.Name = "nudSpace";
nudSpace.Size = new System.Drawing.Size(40, 23);
nudSpace.TabIndex = 1;
nudSpace.TabIndex = 2;
toolTip1.SetToolTip(nudSpace, "Space between symbols in pixels");
nudSpace.Value = new decimal(new int[] { 1, 0, 0, 0 });
nudSpace.ValueChanged += Scrolling;
@@ -75,7 +75,7 @@
tbText.Location = new System.Drawing.Point(12, 55);
tbText.Name = "tbText";
tbText.Size = new System.Drawing.Size(260, 29);
tbText.TabIndex = 3;
tbText.TabIndex = 1;
toolTip1.SetToolTip(tbText, "Text to test the font with");
tbText.TextChanged += Text_Changed;
//
@@ -125,12 +125,12 @@
//
cbZoom.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
cbZoom.FormattingEnabled = true;
cbZoom.Items.AddRange(new object[] { "2", "3", "5", "10", "15", "20", "25", "30", "35", "40", "45", "50" });
cbZoom.Items.AddRange(new object[] { "1", "2", "3", "5", "10", "15", "20", "25", "30", "35", "40", "45", "50" });
cbZoom.Location = new System.Drawing.Point(222, 6);
cbZoom.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
cbZoom.Name = "cbZoom";
cbZoom.Size = new System.Drawing.Size(50, 23);
cbZoom.TabIndex = 19;
cbZoom.TabIndex = 3;
cbZoom.TabStop = false;
toolTip1.SetToolTip(cbZoom, "Zoom level");
cbZoom.SelectedIndexChanged += ZoomChanged;
@@ -149,7 +149,7 @@
btnCopy.Location = new System.Drawing.Point(110, 214);
btnCopy.Name = "btnCopy";
btnCopy.Size = new System.Drawing.Size(80, 30);
btnCopy.TabIndex = 21;
btnCopy.TabIndex = 5;
btnCopy.Text = " Copy";
btnCopy.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
toolTip1.SetToolTip(btnCopy, "Copy BitPixels you see to Clipboard");
@@ -162,7 +162,7 @@
chkBaseline.Location = new System.Drawing.Point(203, 36);
chkBaseline.Name = "chkBaseline";
chkBaseline.Size = new System.Drawing.Size(69, 19);
chkBaseline.TabIndex = 20;
chkBaseline.TabIndex = 4;
chkBaseline.Text = "Baseline";
chkBaseline.UseVisualStyleBackColor = true;
chkBaseline.CheckedChanged += Scrolling;

View File

@@ -87,9 +87,10 @@
removeAfterToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
CodeShiftToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
testFontToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
previousSymbolToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
nextSymbolToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
testFontToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
canvasToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
ClearToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
FillToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@@ -102,6 +103,7 @@
mirrorYToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
applyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
toggleBarToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
dlgSave = new System.Windows.Forms.SaveFileDialog();
dlgOpen = new System.Windows.Forms.OpenFileDialog();
btnBaseline = new System.Windows.Forms.Button();
@@ -117,7 +119,6 @@
dlgSavePNG = new System.Windows.Forms.SaveFileDialog();
pnlRightButtons = new System.Windows.Forms.Panel();
pnlInfo = new System.Windows.Forms.Panel();
toggleBarToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
((System.ComponentModel.ISupportInitialize)nudX).BeginInit();
((System.ComponentModel.ISupportInitialize)nudY).BeginInit();
panel1.SuspendLayout();
@@ -719,10 +720,11 @@
//
// fontToolStripMenuItem
//
fontToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { makeVarWidthToolStripMenuItem, prependSymbolToolStripMenuItem, appendSymbolToolStripMenuItem, removeSymbolToolStripMenuItem, removeBeforeToolStripMenuItem, removeAfterToolStripMenuItem, CodeShiftToolStripMenuItem, toolStripSeparator3, testFontToolStripMenuItem, previousSymbolToolStripMenuItem, nextSymbolToolStripMenuItem });
fontToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { makeVarWidthToolStripMenuItem, prependSymbolToolStripMenuItem, appendSymbolToolStripMenuItem, removeSymbolToolStripMenuItem, removeBeforeToolStripMenuItem, removeAfterToolStripMenuItem, CodeShiftToolStripMenuItem, toolStripSeparator3, previousSymbolToolStripMenuItem, nextSymbolToolStripMenuItem, toolStripSeparator4, testFontToolStripMenuItem });
fontToolStripMenuItem.Name = "fontToolStripMenuItem";
fontToolStripMenuItem.Size = new System.Drawing.Size(43, 20);
fontToolStripMenuItem.Text = "Font";
fontToolStripMenuItem.DropDownOpening += fontToolStripMenuItem_DropDownOpening;
//
// makeVarWidthToolStripMenuItem
//
@@ -804,6 +806,27 @@
toolStripSeparator3.Name = "toolStripSeparator3";
toolStripSeparator3.Size = new System.Drawing.Size(212, 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.Text = "Previous Symbol";
previousSymbolToolStripMenuItem.Click += previousSymbolToolStripMenuItem_Click;
//
// nextSymbolToolStripMenuItem
//
nextSymbolToolStripMenuItem.Name = "nextSymbolToolStripMenuItem";
nextSymbolToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.Right;
nextSymbolToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
nextSymbolToolStripMenuItem.Text = "Next symbol";
nextSymbolToolStripMenuItem.Click += nextSymbolToolStripMenuItem_Click;
//
// toolStripSeparator4
//
toolStripSeparator4.Name = "toolStripSeparator4";
toolStripSeparator4.Size = new System.Drawing.Size(212, 6);
//
// testFontToolStripMenuItem
//
testFontToolStripMenuItem.Image = Properties.Resources.font;
@@ -813,20 +836,6 @@
testFontToolStripMenuItem.ToolTipText = "Open dialog where you can test the font with any text you type";
testFontToolStripMenuItem.Click += TestFont_Click;
//
// 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.Text = "Previous Symbol";
//
// nextSymbolToolStripMenuItem
//
nextSymbolToolStripMenuItem.Name = "nextSymbolToolStripMenuItem";
nextSymbolToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.Right;
nextSymbolToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
nextSymbolToolStripMenuItem.Text = "Next symbol";
//
// canvasToolStripMenuItem
//
canvasToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { ClearToolStripMenuItem, FillToolStripMenuItem, shiftUpToolStripMenuItem, shiftDownToolStripMenuItem, shiftLeftToolStripMenuItem, shiftRightToolStripMenuItem, invertToolStripMenuItem, mirrorXToolStripMenuItem, mirrorYToolStripMenuItem, applyToolStripMenuItem });
@@ -948,6 +957,16 @@
aboutToolStripMenuItem.Text = "About";
aboutToolStripMenuItem.Click += aboutToolStripMenuItem_Click;
//
// toggleBarToolStripMenuItem
//
toggleBarToolStripMenuItem.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
toggleBarToolStripMenuItem.CheckOnClick = true;
toggleBarToolStripMenuItem.Name = "toggleBarToolStripMenuItem";
toggleBarToolStripMenuItem.Size = new System.Drawing.Size(35, 20);
toggleBarToolStripMenuItem.Text = ">>";
toggleBarToolStripMenuItem.ToolTipText = "Toggle side bar state";
toggleBarToolStripMenuItem.Click += toggleBarToolStripMenuItem_Click;
//
// dlgSave
//
dlgSave.DefaultExt = "mbf";
@@ -1121,13 +1140,6 @@
pnlInfo.Size = new System.Drawing.Size(103, 154);
pnlInfo.TabIndex = 28;
//
// toggleBarToolStripMenuItem
//
toggleBarToolStripMenuItem.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
toggleBarToolStripMenuItem.Name = "toggleBarToolStripMenuItem";
toggleBarToolStripMenuItem.Size = new System.Drawing.Size(35, 20);
toggleBarToolStripMenuItem.Text = ">>";
//
// MainForm
//
AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
@@ -1260,6 +1272,7 @@
private System.Windows.Forms.Panel pnlRightButtons;
private System.Windows.Forms.Panel pnlInfo;
private System.Windows.Forms.ToolStripMenuItem toggleBarToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator4;
}
}

View File

@@ -68,6 +68,7 @@ namespace McBitFont {
private int baseline = 0;
private bool set_base = false;
private Point selection1, selection2;
private Point[,] sidebarLocs = new Point[2, 3];
public MainForm() {
@@ -97,6 +98,17 @@ namespace McBitFont {
}
}
// Remember sidebar panels locations
private void SideBarRecalc() {
sidebarLocs[0, 0] = new Point(this.Width - 459, 31);
sidebarLocs[0, 1] = new Point(this.Width - 316, 24);
sidebarLocs[0, 2] = new Point(this.Width - 487, 31);
sidebarLocs[1, 0] = new Point(this.Width - panel1.Width - 70, 180);
sidebarLocs[1, 1] = new Point(this.Width - pnlInfo.Width - 110, 320);
sidebarLocs[1, 2] = new Point(dotPanel.Width + 17, 31);
}
private void Form1_Load(object sender, EventArgs e) {
lblType.Text = monospaced ? "Monospaced" : "Variable width / Single";
tsmiMakeVarWidth.Visible = monospaced;
@@ -141,7 +153,8 @@ namespace McBitFont {
CodeShiftToolStripMenuItem.Visible = frames.Count > 1;
CheckForAdd();
SideBarRecalc();
}
[DllImport("user32.dll")]
@@ -219,7 +232,7 @@ namespace McBitFont {
DotResize((int)nudX.Value, dotHeight);
if (monospaced) history.Add(frames);
else history.Add(f);
Cursor.Current = Cursors.Default;
}
@@ -456,7 +469,7 @@ namespace McBitFont {
mouseDownMiddle = false;
}
}
// Moving baseline
Rectangle rect1, rect2;
@@ -513,7 +526,7 @@ namespace McBitFont {
NormPoints(ref selection1, ref selection2);
dotPanel.Invalidate();
} else {
if (fChanged) {
if (fChanged) {
fChanged = false;
history.Add(f);
}
@@ -890,7 +903,7 @@ namespace McBitFont {
nudX.Value = ff.width;
nudY.Value = ff.height;
f = ff;
history.Add(code);
@@ -1573,5 +1586,52 @@ namespace McBitFont {
}
}
private void toggleBarToolStripMenuItem_Click(object sender, EventArgs e) {
int state;
dotPanel.Width = this.Width - (toggleBarToolStripMenuItem.Checked ? 260 : 504);
SideBarRecalc();
if (toggleBarToolStripMenuItem.Checked) {
toggleBarToolStripMenuItem.Text = "<<";
state = 1;
} else {
toggleBarToolStripMenuItem.Text = ">>";
state = 0;
}
panel1.Location = sidebarLocs[state, 0];
pnlInfo.Location = sidebarLocs[state, 1];
miniList.Visible = !toggleBarToolStripMenuItem.Checked;
vScroll.Location = sidebarLocs[state, 2];
hScroll.Width = dotPanel.Width;
cbZoom.Focus();
}
private void PrevNextMenuCheck() {
if (frames.Count < 2) {
nextSymbolToolStripMenuItem.Enabled = false;
previousSymbolToolStripMenuItem.Enabled = false;
return;
}
previousSymbolToolStripMenuItem.Enabled = f.code != frames.First().code;
nextSymbolToolStripMenuItem.Enabled = f.code != frames.Last().code;
}
private void fontToolStripMenuItem_DropDownOpening(object sender, EventArgs e) {
PrevNextMenuCheck();
}
private void previousSymbolToolStripMenuItem_Click(object sender, EventArgs e) {
if (f.code != frames.First().code && miniList.SelectedItems.Count > 0) {
miniList.Items[miniList.SelectedIndices[0] - 1].Selected = true;
}
PrevNextMenuCheck();
}
private void nextSymbolToolStripMenuItem_Click(object sender, EventArgs e) {
if (f.code != frames.Last().code && miniList.SelectedItems.Count > 0) {
miniList.Items[miniList.SelectedIndices[0] + 1].Selected = true;
}
PrevNextMenuCheck();
}
}
}

View File

@@ -1,7 +1,7 @@
Application:
- Consider migrating to WPF in order to make DPI aware UI
- Option to hide symbols list to narrow the side bar
- Buttons to select previous/next symbol with shortcuts
V Option to hide symbols list to narrow the side bar
V Buttons to select previous/next symbol with shortcuts
Functionality: