diff --git a/McBitFont/FontTester.Designer.cs b/McBitFont/FontTester.Designer.cs index 355ee76..20ba591 100644 --- a/McBitFont/FontTester.Designer.cs +++ b/McBitFont/FontTester.Designer.cs @@ -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; diff --git a/McBitFont/Form1.Designer.cs b/McBitFont/Form1.Designer.cs index 2f0bd35..6ccd571 100644 --- a/McBitFont/Form1.Designer.cs +++ b/McBitFont/Form1.Designer.cs @@ -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; } } diff --git a/McBitFont/Form1.cs b/McBitFont/Form1.cs index 39cda8a..5952bc3 100644 --- a/McBitFont/Form1.cs +++ b/McBitFont/Form1.cs @@ -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(); + } } } diff --git a/TODO.txt b/TODO.txt index 8070b26..60c9ebb 100644 --- a/TODO.txt +++ b/TODO.txt @@ -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: