From fc3ef33f3ee53f3c3cf74b008ebd384927511c6e Mon Sep 17 00:00:00 2001 From: Anton Mukhin Date: Tue, 3 Jun 2025 22:20:47 +0300 Subject: [PATCH] WIP: foldable side bar --- McBitFont/Form1.Designer.cs | 137 +++++++++++++++++++++++------------- TODO.txt | 7 +- temp.txt | 3 + 3 files changed, 92 insertions(+), 55 deletions(-) create mode 100644 temp.txt diff --git a/McBitFont/Form1.Designer.cs b/McBitFont/Form1.Designer.cs index 0427c47..a8e778a 100644 --- a/McBitFont/Form1.Designer.cs +++ b/McBitFont/Form1.Designer.cs @@ -88,6 +88,8 @@ 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(); canvasToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); ClearToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); FillToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); @@ -113,11 +115,15 @@ lblSelection = new System.Windows.Forms.Label(); lblModified = new System.Windows.Forms.Label(); dlgSavePNG = new System.Windows.Forms.SaveFileDialog(); + pnlRightButtons = new System.Windows.Forms.Panel(); + pnlInfo = new System.Windows.Forms.Panel(); ((System.ComponentModel.ISupportInitialize)nudX).BeginInit(); ((System.ComponentModel.ISupportInitialize)nudY).BeginInit(); panel1.SuspendLayout(); cmMinilist.SuspendLayout(); menuStrip1.SuspendLayout(); + pnlRightButtons.SuspendLayout(); + pnlInfo.SuspendLayout(); SuspendLayout(); // // dotPanel @@ -137,8 +143,7 @@ // // nudX // - nudX.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; - nudX.Location = new System.Drawing.Point(777, 31); + nudX.Location = new System.Drawing.Point(59, 8); nudX.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); nudX.Maximum = new decimal(new int[] { 255, 0, 0, 0 }); nudX.Name = "nudX"; @@ -150,8 +155,7 @@ // // nudY // - nudY.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; - nudY.Location = new System.Drawing.Point(777, 57); + nudY.Location = new System.Drawing.Point(59, 34); nudY.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); nudY.Maximum = new decimal(new int[] { 255, 0, 0, 0 }); nudY.Minimum = new decimal(new int[] { 1, 0, 0, 0 }); @@ -164,9 +168,8 @@ // // label1 // - label1.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; label1.AutoSize = true; - label1.Location = new System.Drawing.Point(726, 33); + label1.Location = new System.Drawing.Point(8, 10); label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); label1.Name = "label1"; label1.Size = new System.Drawing.Size(42, 15); @@ -175,9 +178,8 @@ // // label2 // - label2.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; label2.AutoSize = true; - label2.Location = new System.Drawing.Point(722, 59); + label2.Location = new System.Drawing.Point(4, 36); label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); label2.Name = "label2"; label2.Size = new System.Drawing.Size(46, 15); @@ -186,8 +188,7 @@ // // lblType // - lblType.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; - lblType.Location = new System.Drawing.Point(718, 159); + lblType.Location = new System.Drawing.Point(2, 136); lblType.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); lblType.Name = "lblType"; lblType.Size = new System.Drawing.Size(181, 15); @@ -201,7 +202,7 @@ 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.Location = new System.Drawing.Point(619, 52); + cbZoom.Location = new System.Drawing.Point(7, 28); cbZoom.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); cbZoom.Name = "cbZoom"; cbZoom.Size = new System.Drawing.Size(75, 23); @@ -213,7 +214,7 @@ // label4.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; label4.AutoSize = true; - label4.Location = new System.Drawing.Point(618, 33); + label4.Location = new System.Drawing.Point(6, 9); label4.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); label4.Name = "label4"; label4.Size = new System.Drawing.Size(69, 15); @@ -358,9 +359,8 @@ // // btnExport // - btnExport.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; btnExport.Image = Properties.Resources.z_export; - btnExport.Location = new System.Drawing.Point(812, 126); + btnExport.Location = new System.Drawing.Point(96, 103); btnExport.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); btnExport.Name = "btnExport"; btnExport.Size = new System.Drawing.Size(88, 27); @@ -476,9 +476,8 @@ // // btnApply // - btnApply.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; btnApply.Image = Properties.Resources.z_tick; - btnApply.Location = new System.Drawing.Point(718, 126); + btnApply.Location = new System.Drawing.Point(2, 103); btnApply.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); btnApply.Name = "btnApply"; btnApply.Size = new System.Drawing.Size(88, 27); @@ -518,7 +517,7 @@ // lblCoords.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; lblCoords.AutoSize = true; - lblCoords.Location = new System.Drawing.Point(616, 138); + lblCoords.Location = new System.Drawing.Point(4, 114); lblCoords.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); lblCoords.Name = "lblCoords"; lblCoords.Size = new System.Drawing.Size(24, 15); @@ -719,7 +718,7 @@ // // fontToolStripMenuItem // - fontToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { makeVarWidthToolStripMenuItem, prependSymbolToolStripMenuItem, appendSymbolToolStripMenuItem, removeSymbolToolStripMenuItem, removeBeforeToolStripMenuItem, removeAfterToolStripMenuItem, CodeShiftToolStripMenuItem, toolStripSeparator3, testFontToolStripMenuItem }); + fontToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { makeVarWidthToolStripMenuItem, prependSymbolToolStripMenuItem, appendSymbolToolStripMenuItem, removeSymbolToolStripMenuItem, removeBeforeToolStripMenuItem, removeAfterToolStripMenuItem, CodeShiftToolStripMenuItem, toolStripSeparator3, testFontToolStripMenuItem, previousSymbolToolStripMenuItem, nextSymbolToolStripMenuItem }); fontToolStripMenuItem.Name = "fontToolStripMenuItem"; fontToolStripMenuItem.Size = new System.Drawing.Size(43, 20); fontToolStripMenuItem.Text = "Font"; @@ -813,6 +812,20 @@ 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 }); @@ -946,10 +959,9 @@ // // btnBaseline // - btnBaseline.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; btnBaseline.Image = Properties.Resources.fam_base; btnBaseline.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; - btnBaseline.Location = new System.Drawing.Point(812, 93); + btnBaseline.Location = new System.Drawing.Point(96, 70); btnBaseline.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); btnBaseline.Name = "btnBaseline"; btnBaseline.Size = new System.Drawing.Size(88, 27); @@ -968,9 +980,8 @@ // // chkLeftSide // - chkLeftSide.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; chkLeftSide.AutoSize = true; - chkLeftSide.Location = new System.Drawing.Point(831, 33); + chkLeftSide.Location = new System.Drawing.Point(113, 10); chkLeftSide.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); chkLeftSide.Name = "chkLeftSide"; chkLeftSide.Size = new System.Drawing.Size(70, 19); @@ -981,9 +992,8 @@ // // chkTopSide // - chkTopSide.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; chkTopSide.AutoSize = true; - chkTopSide.Location = new System.Drawing.Point(831, 58); + chkTopSide.Location = new System.Drawing.Point(113, 35); chkTopSide.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); chkTopSide.Name = "chkTopSide"; chkTopSide.Size = new System.Drawing.Size(70, 19); @@ -996,7 +1006,7 @@ // chkHexCodes.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; chkHexCodes.AutoSize = true; - chkHexCodes.Location = new System.Drawing.Point(618, 155); + chkHexCodes.Location = new System.Drawing.Point(6, 131); chkHexCodes.Name = "chkHexCodes"; chkHexCodes.Size = new System.Drawing.Size(95, 19); chkHexCodes.TabIndex = 22; @@ -1007,11 +1017,10 @@ // // chkRectSelect // - chkRectSelect.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; chkRectSelect.Appearance = System.Windows.Forms.Appearance.Button; chkRectSelect.Image = Properties.Resources.fam_rectt; chkRectSelect.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; - chkRectSelect.Location = new System.Drawing.Point(718, 93); + chkRectSelect.Location = new System.Drawing.Point(2, 70); chkRectSelect.Name = "chkRectSelect"; chkRectSelect.Size = new System.Drawing.Size(87, 27); chkRectSelect.TabIndex = 23; @@ -1026,7 +1035,7 @@ // label3.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; label3.AutoSize = true; - label3.Location = new System.Drawing.Point(615, 123); + label3.Location = new System.Drawing.Point(3, 99); label3.Name = "label3"; label3.Size = new System.Drawing.Size(45, 15); label3.TabIndex = 21; @@ -1036,7 +1045,7 @@ // lblSelectionLabel.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; lblSelectionLabel.AutoSize = true; - lblSelectionLabel.Location = new System.Drawing.Point(616, 93); + lblSelectionLabel.Location = new System.Drawing.Point(4, 69); lblSelectionLabel.Name = "lblSelectionLabel"; lblSelectionLabel.Size = new System.Drawing.Size(58, 15); lblSelectionLabel.TabIndex = 25; @@ -1047,7 +1056,7 @@ // lblSelection.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; lblSelection.AutoSize = true; - lblSelection.Location = new System.Drawing.Point(617, 108); + lblSelection.Location = new System.Drawing.Point(5, 84); lblSelection.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); lblSelection.Name = "lblSelection"; lblSelection.Size = new System.Drawing.Size(30, 15); @@ -1062,7 +1071,7 @@ lblModified.AutoSize = true; lblModified.Font = new System.Drawing.Font("Segoe UI Semibold", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, 204); lblModified.ForeColor = System.Drawing.SystemColors.Highlight; - lblModified.Location = new System.Drawing.Point(616, 78); + lblModified.Location = new System.Drawing.Point(4, 54); lblModified.Name = "lblModified"; lblModified.Size = new System.Drawing.Size(91, 15); lblModified.TabIndex = 26; @@ -1074,34 +1083,54 @@ dlgSavePNG.DefaultExt = "png"; dlgSavePNG.Filter = "PNG Image|*.png;*.PNG"; // + // pnlRightButtons + // + pnlRightButtons.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; + pnlRightButtons.Controls.Add(chkLeftSide); + pnlRightButtons.Controls.Add(nudX); + pnlRightButtons.Controls.Add(nudY); + pnlRightButtons.Controls.Add(label1); + pnlRightButtons.Controls.Add(label2); + pnlRightButtons.Controls.Add(chkRectSelect); + pnlRightButtons.Controls.Add(lblType); + pnlRightButtons.Controls.Add(btnExport); + pnlRightButtons.Controls.Add(btnApply); + pnlRightButtons.Controls.Add(chkTopSide); + pnlRightButtons.Controls.Add(btnBaseline); + pnlRightButtons.Location = new System.Drawing.Point(715, 24); + pnlRightButtons.Margin = new System.Windows.Forms.Padding(0); + pnlRightButtons.Name = "pnlRightButtons"; + pnlRightButtons.Size = new System.Drawing.Size(184, 154); + pnlRightButtons.TabIndex = 27; + // + // pnlInfo + // + pnlInfo.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; + pnlInfo.Controls.Add(label4); + pnlInfo.Controls.Add(cbZoom); + pnlInfo.Controls.Add(lblCoords); + pnlInfo.Controls.Add(lblModified); + pnlInfo.Controls.Add(label3); + pnlInfo.Controls.Add(lblSelectionLabel); + pnlInfo.Controls.Add(chkHexCodes); + pnlInfo.Controls.Add(lblSelection); + pnlInfo.Location = new System.Drawing.Point(615, 24); + pnlInfo.Margin = new System.Windows.Forms.Padding(0); + pnlInfo.Name = "pnlInfo"; + pnlInfo.Size = new System.Drawing.Size(103, 154); + pnlInfo.TabIndex = 28; + // // MainForm // AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; ClientSize = new System.Drawing.Size(915, 647); - Controls.Add(lblModified); - Controls.Add(lblSelectionLabel); - Controls.Add(lblSelection); - Controls.Add(chkRectSelect); - Controls.Add(chkHexCodes); - Controls.Add(label3); - Controls.Add(chkTopSide); - Controls.Add(chkLeftSide); - Controls.Add(btnBaseline); - Controls.Add(btnApply); - Controls.Add(btnExport); - Controls.Add(lblCoords); + Controls.Add(pnlInfo); + Controls.Add(pnlRightButtons); Controls.Add(vScroll); Controls.Add(hScroll); Controls.Add(miniList); Controls.Add(panel1); - Controls.Add(label4); - Controls.Add(cbZoom); - Controls.Add(lblType); - Controls.Add(label2); - Controls.Add(label1); - Controls.Add(nudY); - Controls.Add(nudX); Controls.Add(dotPanel); Controls.Add(menuStrip1); Icon = (System.Drawing.Icon)resources.GetObject("$this.Icon"); @@ -1119,6 +1148,10 @@ cmMinilist.ResumeLayout(false); menuStrip1.ResumeLayout(false); menuStrip1.PerformLayout(); + pnlRightButtons.ResumeLayout(false); + pnlRightButtons.PerformLayout(); + pnlInfo.ResumeLayout(false); + pnlInfo.PerformLayout(); ResumeLayout(false); PerformLayout(); @@ -1214,6 +1247,10 @@ public System.Windows.Forms.ImageList ilMiniatures; public System.Windows.Forms.NumericUpDown nudX; public System.Windows.Forms.NumericUpDown nudY; + private System.Windows.Forms.ToolStripMenuItem previousSymbolToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem nextSymbolToolStripMenuItem; + private System.Windows.Forms.Panel pnlRightButtons; + private System.Windows.Forms.Panel pnlInfo; } } diff --git a/TODO.txt b/TODO.txt index 1d91468..8070b26 100644 --- a/TODO.txt +++ b/TODO.txt @@ -1,11 +1,8 @@ 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 Functionality: -V Middle mouse - drag the canvas -V Straight line painting (hold Shift / Ctrl) -V A button to Copy from Test font dialog to then paste into another frame Bugs: -V Nothing selected after removing a symbol. Potential error throw on "Apply" \ No newline at end of file diff --git a/temp.txt b/temp.txt new file mode 100644 index 0000000..fb14d70 --- /dev/null +++ b/temp.txt @@ -0,0 +1,3 @@ +MainForm.Size: 931; 686 +panel1: 472; 31 +pnlRightButtons: