From 6cbc20626049de3a8b40fc786ff88b69999b8b95 Mon Sep 17 00:00:00 2001 From: Anton Mukhin Date: Tue, 8 Jul 2025 10:10:35 +0300 Subject: [PATCH 1/8] TODO feature: Show note field in Export comments --- McBitFont/Export.cs | 5 ++++- TODO.txt | 4 +--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/McBitFont/Export.cs b/McBitFont/Export.cs index 9bd7b4c..338ad2c 100644 --- a/McBitFont/Export.cs +++ b/McBitFont/Export.cs @@ -233,7 +233,9 @@ namespace McBitFont { if (com && lines != 1 && fcount > 1) { // Comments enabled and other than "1 symbol per line" selected // Print a symbol comment before its data - output += " // " + f.code.ToString() + " --> " + mainForm.DecodeSymbol(f.code) + "\n"; + output += " // " + f.code.ToString() + " --> " + mainForm.DecodeSymbol(f.code); + if (f.note != "" && f.note != null) output += " (" + f.note.ToString() + ")"; + output += "\n"; } if (lines == 1) { // "1 symbol per line" - new line offset @@ -370,6 +372,7 @@ namespace McBitFont { if (com && fcount > 1) { //...with a comment output += " // " + f.code.ToString() + " --> " + mainForm.DecodeSymbol(f.code); + if (f.note != "" && f.note != null) output += " (" + f.note.ToString() + ")"; } output += "\n"; } diff --git a/TODO.txt b/TODO.txt index 71ea186..d4ed246 100644 --- a/TODO.txt +++ b/TODO.txt @@ -2,9 +2,7 @@ Application: - Consider migrating to WPF in order to make DPI aware UI Functionality: -V Screensot a frame function -V Frame note field to store a frame description -- Show note field in Export comments +V Show note field in Export comments Bugs: From 30729aca2f6c2cc73b62fb4861cfb43753b40c92 Mon Sep 17 00:00:00 2001 From: Anton Mukhin Date: Tue, 8 Jul 2025 10:49:26 +0300 Subject: [PATCH 2/8] TODO feature: When Rectangle selection tool is active hold Ctrl+Alt to temporary disable it to be able to draw --- McBitFont/Form1.Designer.cs | 3 +++ McBitFont/Form1.cs | 21 ++++++++++++++++++++- README.md | 1 + TODO.txt | 1 + 4 files changed, 25 insertions(+), 1 deletion(-) diff --git a/McBitFont/Form1.Designer.cs b/McBitFont/Form1.Designer.cs index 5ae003f..bf26ce2 100644 --- a/McBitFont/Form1.Designer.cs +++ b/McBitFont/Form1.Designer.cs @@ -1221,6 +1221,7 @@ Controls.Add(dotPanel); Controls.Add(menuStrip1); Icon = (System.Drawing.Icon)resources.GetObject("$this.Icon"); + KeyPreview = true; MainMenuStrip = menuStrip1; Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); MinimumSize = new System.Drawing.Size(931, 686); @@ -1229,6 +1230,8 @@ Text = "McBitFont"; FormClosing += MainForm_FormClosing; Load += Form1_Load; + KeyDown += MainForm_KeyDown; + KeyUp += MainForm_KeyUp; ((System.ComponentModel.ISupportInitialize)nudX).EndInit(); ((System.ComponentModel.ISupportInitialize)nudY).EndInit(); panel1.ResumeLayout(false); diff --git a/McBitFont/Form1.cs b/McBitFont/Form1.cs index 4446c51..00d01b2 100644 --- a/McBitFont/Form1.cs +++ b/McBitFont/Form1.cs @@ -594,7 +594,7 @@ namespace McBitFont { // Check for Shift / Ctrl keys for straight lines if (ModifierKeys.HasFlag(Keys.Shift) && mouseDown) { j = lastY; - } else if (ModifierKeys.HasFlag(Keys.Control) && mouseDown) { + } else if (ModifierKeys.HasFlag(Keys.Control) && mouseDown && !CAKeyDown) { i = lastX; } lastX = i; @@ -1715,5 +1715,24 @@ namespace McBitFont { SetModified(); } } + + static bool CAKeyDown = false; + private void MainForm_KeyDown(object sender, KeyEventArgs e) { + if (CAKeyDown) return; + if (chkRectSelect.Checked && e.Control && e.Alt) { + //MessageBox.Show("Down: Alt!"); + chkRectSelect.Checked = false; + CAKeyDown = true; + e.Handled = true; + } + } + + private void MainForm_KeyUp(object sender, KeyEventArgs e) { + if (CAKeyDown && !e.Control && !e.Alt) { + chkRectSelect.Checked = true; + CAKeyDown = false; + e.Handled = true; + } + } } } diff --git a/README.md b/README.md index 4e7626c..25c5704 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ Some basic hints on the interface: - Shift + scroll to scroll left and right - Crtl + scroll to zoom - Alt + Scroll to change painting brush size +- When Rectangle selection tool is active hold Ctrl+Alt to temporary disable it to be able to draw Download in the [Releases](https://gitea.mcflyer.ru/McFLY/McBitFont/releases) section! diff --git a/TODO.txt b/TODO.txt index d4ed246..814c125 100644 --- a/TODO.txt +++ b/TODO.txt @@ -3,6 +3,7 @@ Application: Functionality: V Show note field in Export comments +V When Rectangle selection tool is active hold Ctrl+Alt to temporary disable it to be able to draw Bugs: From 686ff7b7805ae2112b9d5da7637e387ab7994c41 Mon Sep 17 00:00:00 2001 From: Anton Mukhin Date: Tue, 8 Jul 2025 10:56:17 +0300 Subject: [PATCH 3/8] Bug fixed: Fixed "Frame modified" check. It leaves modified flag if user refused to save changes. --- McBitFont/Form1.cs | 2 +- TODO.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/McBitFont/Form1.cs b/McBitFont/Form1.cs index 00d01b2..44fb827 100644 --- a/McBitFont/Form1.cs +++ b/McBitFont/Form1.cs @@ -1195,8 +1195,8 @@ namespace McBitFont { if (modified) { if (MessageBox.Show("Current symbol is modified.\nDo you want to save the changes?", "Symbol was modified!", MessageBoxButtons.YesNo) == DialogResult.Yes) { SaveFrame(); + SetModified(false); } - SetModified(false); } } diff --git a/TODO.txt b/TODO.txt index 814c125..0869a62 100644 --- a/TODO.txt +++ b/TODO.txt @@ -6,4 +6,4 @@ V Show note field in Export comments V When Rectangle selection tool is active hold Ctrl+Alt to temporary disable it to be able to draw Bugs: - +V Fixed "Frame modified" check. It leaves modified flag if user refused to save changes. From 4dd4743b21c33d24ea663cf0b620a868dbee1796 Mon Sep 17 00:00:00 2001 From: Anton Mukhin Date: Tue, 8 Jul 2025 12:11:46 +0300 Subject: [PATCH 4/8] TODO feature: Frame screenshot can be copied to clipboard with some limitations (no transparency) --- McBitFont/Form1.Designer.cs | 16 +++--- McBitFont/FrameScreenshot.Designer.cs | 60 ++++++++++++++------- McBitFont/FrameScreenshot.cs | 52 ++++++++++++------ McBitFont/Properties/Resources.Designer.cs | 10 ++++ McBitFont/Properties/Resources.resx | 17 +++--- McBitFont/Resources/picture_save.png | Bin 0 -> 755 bytes TODO.txt | 1 + icons/famfamfam/picture_save.png | Bin 0 -> 755 bytes 8 files changed, 105 insertions(+), 51 deletions(-) create mode 100644 McBitFont/Resources/picture_save.png create mode 100644 icons/famfamfam/picture_save.png diff --git a/McBitFont/Form1.Designer.cs b/McBitFont/Form1.Designer.cs index bf26ce2..c99abea 100644 --- a/McBitFont/Form1.Designer.cs +++ b/McBitFont/Form1.Designer.cs @@ -642,7 +642,7 @@ // // exportFontLayoutPNGToolStripMenuItem // - exportFontLayoutPNGToolStripMenuItem.Image = Properties.Resources.picture_go; + exportFontLayoutPNGToolStripMenuItem.Image = Properties.Resources.picture_save; exportFontLayoutPNGToolStripMenuItem.Name = "exportFontLayoutPNGToolStripMenuItem"; exportFontLayoutPNGToolStripMenuItem.Size = new System.Drawing.Size(224, 22); exportFontLayoutPNGToolStripMenuItem.Text = "Export font layout PNG"; @@ -656,7 +656,7 @@ frameScreenshotToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.P; frameScreenshotToolStripMenuItem.Size = new System.Drawing.Size(224, 22); frameScreenshotToolStripMenuItem.Text = "Frame Screenshot"; - frameScreenshotToolStripMenuItem.ToolTipText = "Make a screenshot of the current frame"; + frameScreenshotToolStripMenuItem.ToolTipText = "Make a screenshot of the current frame and save it to a file or copy to clipboard"; frameScreenshotToolStripMenuItem.Click += frameScreenshotToolStripMenuItem_Click; // // toolStripSeparator2 @@ -688,7 +688,7 @@ undoToolStripMenuItem.Image = Properties.Resources.arrow_undo; undoToolStripMenuItem.Name = "undoToolStripMenuItem"; undoToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Z; - undoToolStripMenuItem.Size = new System.Drawing.Size(164, 22); + undoToolStripMenuItem.Size = new System.Drawing.Size(180, 22); undoToolStripMenuItem.Text = "Undo"; undoToolStripMenuItem.ToolTipText = "Undo last canvas change"; undoToolStripMenuItem.Click += undoToolStripMenuItem_Click; @@ -698,7 +698,7 @@ redoToolStripMenuItem.Image = Properties.Resources.arrow_redo; redoToolStripMenuItem.Name = "redoToolStripMenuItem"; redoToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Y; - redoToolStripMenuItem.Size = new System.Drawing.Size(164, 22); + redoToolStripMenuItem.Size = new System.Drawing.Size(180, 22); redoToolStripMenuItem.Text = "Redo"; redoToolStripMenuItem.ToolTipText = "Redo canvas change"; redoToolStripMenuItem.Click += redoToolStripMenuItem_Click; @@ -709,7 +709,7 @@ copyToolStripMenuItem.Name = "copyToolStripMenuItem"; copyToolStripMenuItem.ShortcutKeyDisplayString = ""; copyToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.C; - copyToolStripMenuItem.Size = new System.Drawing.Size(164, 22); + copyToolStripMenuItem.Size = new System.Drawing.Size(180, 22); copyToolStripMenuItem.Text = "Copy"; copyToolStripMenuItem.ToolTipText = "Copy current symbol to clipboard"; copyToolStripMenuItem.Click += copyToolStripMenuItem_Click; @@ -720,7 +720,7 @@ pasteToolStripMenuItem.Name = "pasteToolStripMenuItem"; pasteToolStripMenuItem.ShortcutKeyDisplayString = ""; pasteToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.V; - pasteToolStripMenuItem.Size = new System.Drawing.Size(164, 22); + pasteToolStripMenuItem.Size = new System.Drawing.Size(180, 22); pasteToolStripMenuItem.Text = "Paste"; pasteToolStripMenuItem.ToolTipText = "Paste from clipboard to current symbol"; pasteToolStripMenuItem.Click += pasteToolStripMenuItem_Click; @@ -730,7 +730,7 @@ selectToolStripMenuItem.Image = Properties.Resources.fam_rectt; selectToolStripMenuItem.Name = "selectToolStripMenuItem"; selectToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.R; - selectToolStripMenuItem.Size = new System.Drawing.Size(164, 22); + selectToolStripMenuItem.Size = new System.Drawing.Size(180, 22); selectToolStripMenuItem.Text = "Select"; selectToolStripMenuItem.ToolTipText = "Toggle Rectangle selection tool"; selectToolStripMenuItem.Click += selectToolStripMenuItem_Click; @@ -741,7 +741,7 @@ selectAllToolStripMenuItem.Image = Properties.Resources.arrow_out; selectAllToolStripMenuItem.Name = "selectAllToolStripMenuItem"; selectAllToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.A; - selectAllToolStripMenuItem.Size = new System.Drawing.Size(164, 22); + selectAllToolStripMenuItem.Size = new System.Drawing.Size(180, 22); selectAllToolStripMenuItem.Text = "Select All"; selectAllToolStripMenuItem.ToolTipText = "Select entire canvas"; selectAllToolStripMenuItem.Click += selectAllToolStripMenuItem_Click; diff --git a/McBitFont/FrameScreenshot.Designer.cs b/McBitFont/FrameScreenshot.Designer.cs index d465e2b..1bfd8bd 100644 --- a/McBitFont/FrameScreenshot.Designer.cs +++ b/McBitFont/FrameScreenshot.Designer.cs @@ -29,29 +29,35 @@ toolTip1 = new System.Windows.Forms.ToolTip(components); nudUpscale = new System.Windows.Forms.NumericUpDown(); chkTransparent = new System.Windows.Forms.CheckBox(); + chkBlackBG = new System.Windows.Forms.CheckBox(); + btnCopy = new System.Windows.Forms.Button(); dlgSaveImage = new System.Windows.Forms.SaveFileDialog(); lblUpscale = new System.Windows.Forms.Label(); - chkBlackBG = new System.Windows.Forms.CheckBox(); ((System.ComponentModel.ISupportInitialize)nudUpscale).BeginInit(); SuspendLayout(); // // btnClose // - btnClose.Location = new System.Drawing.Point(144, 67); + btnClose.Location = new System.Drawing.Point(234, 67); btnClose.Name = "btnClose"; btnClose.Size = new System.Drawing.Size(88, 27); btnClose.TabIndex = 3; btnClose.Text = "Close"; + toolTip1.SetToolTip(btnClose, "Close the dialog"); btnClose.UseVisualStyleBackColor = true; btnClose.Click += btnClose_Click; // // btnOK // + btnOK.Image = Properties.Resources.Famfamfam_Silk_Disk_16; + btnOK.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; btnOK.Location = new System.Drawing.Point(12, 67); btnOK.Name = "btnOK"; btnOK.Size = new System.Drawing.Size(88, 27); btnOK.TabIndex = 1; btnOK.Text = "Save"; + btnOK.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + toolTip1.SetToolTip(btnOK, "Save to file"); btnOK.UseVisualStyleBackColor = true; btnOK.Click += btnOK_Click; // @@ -63,7 +69,7 @@ // // nudUpscale // - nudUpscale.Location = new System.Drawing.Point(12, 27); + nudUpscale.Location = new System.Drawing.Point(71, 27); nudUpscale.Maximum = new decimal(new int[] { 255, 0, 0, 0 }); nudUpscale.Minimum = new decimal(new int[] { 1, 0, 0, 0 }); nudUpscale.Name = "nudUpscale"; @@ -75,15 +81,41 @@ // chkTransparent // chkTransparent.AutoSize = true; - chkTransparent.Location = new System.Drawing.Point(85, 18); + chkTransparent.Location = new System.Drawing.Point(144, 18); chkTransparent.Name = "chkTransparent"; chkTransparent.Size = new System.Drawing.Size(155, 19); chkTransparent.TabIndex = 5; chkTransparent.Text = "Transparent background"; - toolTip1.SetToolTip(chkTransparent, "Make background transparent"); + toolTip1.SetToolTip(chkTransparent, "Make background transparent (Doesn't work with clipboard - background will be gray)"); chkTransparent.UseVisualStyleBackColor = true; chkTransparent.CheckedChanged += chkTransparent_CheckedChanged; // + // chkBlackBG + // + chkBlackBG.AutoSize = true; + chkBlackBG.Enabled = false; + chkBlackBG.Location = new System.Drawing.Point(144, 35); + chkBlackBG.Name = "chkBlackBG"; + chkBlackBG.Size = new System.Drawing.Size(132, 19); + chkBlackBG.TabIndex = 6; + chkBlackBG.Text = "Background is black"; + toolTip1.SetToolTip(chkBlackBG, "White color is considered as background by default. Check this to invert that"); + chkBlackBG.UseVisualStyleBackColor = true; + // + // btnCopy + // + btnCopy.Image = Properties.Resources.Famfamfam_Silk_Page_copy_16; + btnCopy.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; + btnCopy.Location = new System.Drawing.Point(122, 67); + btnCopy.Name = "btnCopy"; + btnCopy.Size = new System.Drawing.Size(88, 27); + btnCopy.TabIndex = 7; + btnCopy.Text = "Copy"; + btnCopy.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + toolTip1.SetToolTip(btnCopy, "Copy to clipboard"); + btnCopy.UseVisualStyleBackColor = true; + btnCopy.Click += btnCopy_Click; + // // dlgSaveImage // dlgSaveImage.DefaultExt = "png"; @@ -92,31 +124,20 @@ // lblUpscale // lblUpscale.AutoSize = true; - lblUpscale.Location = new System.Drawing.Point(12, 9); + lblUpscale.Location = new System.Drawing.Point(71, 9); lblUpscale.Name = "lblUpscale"; lblUpscale.Size = new System.Drawing.Size(51, 15); lblUpscale.TabIndex = 4; lblUpscale.Text = "Upscale:"; // - // chkBlackBG - // - chkBlackBG.AutoSize = true; - chkBlackBG.Enabled = false; - chkBlackBG.Location = new System.Drawing.Point(85, 35); - chkBlackBG.Name = "chkBlackBG"; - chkBlackBG.Size = new System.Drawing.Size(132, 19); - chkBlackBG.TabIndex = 6; - chkBlackBG.Text = "Background is black"; - toolTip1.SetToolTip(chkBlackBG, "White color is considered as background by default. Check this to invert that"); - chkBlackBG.UseVisualStyleBackColor = true; - // // FrameScreenshot // AcceptButton = btnClose; AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; CancelButton = btnClose; - ClientSize = new System.Drawing.Size(244, 111); + ClientSize = new System.Drawing.Size(334, 111); + Controls.Add(btnCopy); Controls.Add(chkBlackBG); Controls.Add(chkTransparent); Controls.Add(nudUpscale); @@ -143,5 +164,6 @@ private System.Windows.Forms.NumericUpDown nudUpscale; private System.Windows.Forms.CheckBox chkTransparent; private System.Windows.Forms.CheckBox chkBlackBG; + private System.Windows.Forms.Button btnCopy; } } \ No newline at end of file diff --git a/McBitFont/FrameScreenshot.cs b/McBitFont/FrameScreenshot.cs index 4abcf54..469fe9f 100644 --- a/McBitFont/FrameScreenshot.cs +++ b/McBitFont/FrameScreenshot.cs @@ -4,6 +4,7 @@ using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Imaging; +using System.IO; using System.Linq; using System.Security.Policy; using System.Text; @@ -21,26 +22,34 @@ namespace McBitFont { f = frame; } - private void btnOK_Click(object sender, EventArgs e) { - if (dlgSaveImage.ShowDialog() == DialogResult.OK) { - int upscale = (int)nudUpscale.Value; - int x, y; - bool transp = chkTransparent.Checked; - bool blackBG = chkBlackBG.Checked; + private Bitmap GenerateScreenshot() { + int upscale = (int)nudUpscale.Value; + int x, y; + bool transp = chkTransparent.Checked; + bool blackBG = chkBlackBG.Checked; - Bitmap bmp = new(f.width * upscale, f.height * upscale); - SolidBrush bb = new(Color.Black); - SolidBrush bw = new(Color.White); - using (Graphics g = Graphics.FromImage(bmp)) { - for (x = 0; x < f.width; x++) { - for (y = 0; y < f.height; y++) { - if (f.data[x, y]) { - if (!transp || (transp && !blackBG)) g.FillRectangle(bb, x * upscale, y * upscale, upscale, upscale); - } else - if (!transp || (transp && blackBG)) g.FillRectangle(bw, x * upscale, y * upscale, upscale, upscale); - } + Bitmap bmp = new(f.width * upscale, f.height * upscale); + SolidBrush bb = new(Color.Black); + SolidBrush bw = new(Color.White); + using (Graphics g = Graphics.FromImage(bmp)) { + for (x = 0; x < f.width; x++) { + for (y = 0; y < f.height; y++) { + if (f.data[x, y]) { + if (!transp || (transp && !blackBG)) g.FillRectangle(bb, x * upscale, y * upscale, upscale, upscale); + } else + if (!transp || (transp && blackBG)) g.FillRectangle(bw, x * upscale, y * upscale, upscale, upscale); } } + } + + return bmp; + } + + private void btnOK_Click(object sender, EventArgs e) { + if (dlgSaveImage.ShowDialog() == DialogResult.OK) { + + Bitmap bmp = GenerateScreenshot(); + bool err = false; try { bmp.Save(dlgSaveImage.FileName, ImageFormat.Png); @@ -65,5 +74,14 @@ namespace McBitFont { private void chkTransparent_CheckedChanged(object sender, EventArgs e) { chkBlackBG.Enabled = chkTransparent.Checked; } + + private void btnCopy_Click(object sender, EventArgs e) { + Bitmap bmp = GenerateScreenshot(); + using MemoryStream stream = new(); + bmp.Save(stream, ImageFormat.Png); + DataObject data = new("PNG", stream); + data.SetImage(bmp); + Clipboard.SetDataObject(data, true); + } } } diff --git a/McBitFont/Properties/Resources.Designer.cs b/McBitFont/Properties/Resources.Designer.cs index ee6c114..80aefdd 100644 --- a/McBitFont/Properties/Resources.Designer.cs +++ b/McBitFont/Properties/Resources.Designer.cs @@ -340,6 +340,16 @@ namespace McBitFont.Properties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap picture_save { + get { + object obj = ResourceManager.GetObject("picture_save", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// diff --git a/McBitFont/Properties/Resources.resx b/McBitFont/Properties/Resources.resx index b2051b4..b1cad7e 100644 --- a/McBitFont/Properties/Resources.resx +++ b/McBitFont/Properties/Resources.resx @@ -148,6 +148,9 @@ ..\Resources\redo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Famfamfam-Silk-Disk.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -166,6 +169,9 @@ ..\Resources\Canvas_Clear.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\text_letterspacing2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\arrow_up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -205,17 +211,14 @@ ..\Resources\fam_rectt.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\Famfamfam-Silk-Page-white.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\delete.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\arrow_turn_right.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\Famfamfam-Silk-Disk.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Famfamfam-Silk-Page-white.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\folder_table.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -241,7 +244,7 @@ ..\Resources\icon_64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\text_letterspacing2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\picture_save.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a \ No newline at end of file diff --git a/McBitFont/Resources/picture_save.png b/McBitFont/Resources/picture_save.png new file mode 100644 index 0000000000000000000000000000000000000000..777fb5d2e6a8418c573972246582c21d2c4984e4 GIT binary patch literal 755 zcmVe)^Pp+~01yB`w`9=u(Ho~0 z&q0|Zy>{}2gZl=9K}x9u0000cnYNkw{OYaOaSqCHmHYkvAYHn)ZsML%y6Mn?Rm1M4 zCbIimL%-gdGZROY_IT&jL)x4YKv_2wMMsgSixr3VuIl&xwpoodZKLe>9X|MwKbLly z@9mW{08m0kQ6yEY>2=p_>};yqiMnYtv8~_l+pdQ83=1I;07}RxQW8y8wNsO(vNNsJ zxzT2%smQIeNFo9Nln_CYl7W3j+smTUwfx(8yZemmMmgIvlXtBAH}d|cf5_39J9FWB zT>bgZGbKb&6v=F7!JU=6<_61l#uG1|c+xA2v%dWPU+)_++yuBPsf8gS*uy8tE)TNP^?wUn|FBDi_)Ep5))oIO#kS?(pBVA^IE&o0V2 z1UkY@NmW(0wrgcXNO*bi9DvTz4L^KUm{e2mUH(gvXxc2dSs)?^X1ZCKKmdStIIqc} zY8#!Ri;%QZN+O4dtZAm|x={|gX;Yrg9Xs$WDG3lp>Fmkfnp~qGh?EV=o(rGc zc5iE2*(=lK&%R!Iu5ROK1ORQ0xsI-E$A>rGws+=HNnvgLk2jzGKw)59)ygxcj-Lkr zfNySo7mq#2f!UFlj-4>yTcBWLvS9zN#!QbgB`G2R0KijcuYCLXBg5zC`|}3n1DZUQ la+ac%)7bB~m#l70{SP&gLHlD?H{SpN002ovPDHLkV1hOfWCQ>J literal 0 HcmV?d00001 diff --git a/TODO.txt b/TODO.txt index 0869a62..99b7edd 100644 --- a/TODO.txt +++ b/TODO.txt @@ -4,6 +4,7 @@ Application: Functionality: V Show note field in Export comments V When Rectangle selection tool is active hold Ctrl+Alt to temporary disable it to be able to draw +V Frame screenshot can be copied to clipboard with some limitations (no transparency) Bugs: V Fixed "Frame modified" check. It leaves modified flag if user refused to save changes. diff --git a/icons/famfamfam/picture_save.png b/icons/famfamfam/picture_save.png new file mode 100644 index 0000000000000000000000000000000000000000..777fb5d2e6a8418c573972246582c21d2c4984e4 GIT binary patch literal 755 zcmVe)^Pp+~01yB`w`9=u(Ho~0 z&q0|Zy>{}2gZl=9K}x9u0000cnYNkw{OYaOaSqCHmHYkvAYHn)ZsML%y6Mn?Rm1M4 zCbIimL%-gdGZROY_IT&jL)x4YKv_2wMMsgSixr3VuIl&xwpoodZKLe>9X|MwKbLly z@9mW{08m0kQ6yEY>2=p_>};yqiMnYtv8~_l+pdQ83=1I;07}RxQW8y8wNsO(vNNsJ zxzT2%smQIeNFo9Nln_CYl7W3j+smTUwfx(8yZemmMmgIvlXtBAH}d|cf5_39J9FWB zT>bgZGbKb&6v=F7!JU=6<_61l#uG1|c+xA2v%dWPU+)_++yuBPsf8gS*uy8tE)TNP^?wUn|FBDi_)Ep5))oIO#kS?(pBVA^IE&o0V2 z1UkY@NmW(0wrgcXNO*bi9DvTz4L^KUm{e2mUH(gvXxc2dSs)?^X1ZCKKmdStIIqc} zY8#!Ri;%QZN+O4dtZAm|x={|gX;Yrg9Xs$WDG3lp>Fmkfnp~qGh?EV=o(rGc zc5iE2*(=lK&%R!Iu5ROK1ORQ0xsI-E$A>rGws+=HNnvgLk2jzGKw)59)ygxcj-Lkr zfNySo7mq#2f!UFlj-4>yTcBWLvS9zN#!QbgB`G2R0KijcuYCLXBg5zC`|}3n1DZUQ la+ac%)7bB~m#l70{SP&gLHlD?H{SpN002ovPDHLkV1hOfWCQ>J literal 0 HcmV?d00001 From 64531aecf0b5a2cabf445b6371a4ef6876b1bf52 Mon Sep 17 00:00:00 2001 From: Anton Mukhin Date: Tue, 8 Jul 2025 12:18:29 +0300 Subject: [PATCH 5/8] TODO update --- TODO.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/TODO.txt b/TODO.txt index 99b7edd..e4ec459 100644 --- a/TODO.txt +++ b/TODO.txt @@ -5,6 +5,7 @@ Functionality: V Show note field in Export comments V When Rectangle selection tool is active hold Ctrl+Alt to temporary disable it to be able to draw V Frame screenshot can be copied to clipboard with some limitations (no transparency) +- Beside Baseline, also make top and mid lines Bugs: V Fixed "Frame modified" check. It leaves modified flag if user refused to save changes. From ad15f08233a056960cb80a7573c6f7c4f463b539 Mon Sep 17 00:00:00 2001 From: Anton Mukhin Date: Tue, 8 Jul 2025 17:00:55 +0300 Subject: [PATCH 6/8] TODO features: Application: - Special cursor to indicate baseline set - Special cursor when dragging canvas with middle mouse button Functionality: - Beside Baseline, also make top and mid lines Bugs: - Middle mouse button tries to change selection while dragging canvas with rectSelection tool active --- McBitFont/Form1.Designer.cs | 58 +++++++-- McBitFont/Form1.cs | 134 +++++++++++++++++---- McBitFont/Form1.resx | 3 + McBitFont/McBitFont.csproj | 6 +- McBitFont/McCursor.cs | 41 +++++++ McBitFont/Properties/Resources.Designer.cs | 30 +++++ McBitFont/Properties/Resources.resx | 33 +++-- McBitFont/Resources/fam_lines.png | Bin 0 -> 174 bytes McBitFont/Resources/fam_mid.png | Bin 0 -> 137 bytes McBitFont/Resources/fam_top.png | Bin 0 -> 136 bytes TODO.txt | 5 +- examples/Cursors.mbfont | Bin 0 -> 1658 bytes examples/Font_9x17_Alagard_cyr_vw.mbfont | Bin 36211 -> 37249 bytes examples/SelectionCursor.mbfont | Bin 1045 -> 0 bytes icons/famfamfam/fam_lines.png | Bin 0 -> 174 bytes icons/famfamfam/fam_mid.png | Bin 0 -> 137 bytes icons/famfamfam/fam_top.png | Bin 0 -> 136 bytes 17 files changed, 259 insertions(+), 51 deletions(-) create mode 100644 McBitFont/Resources/fam_lines.png create mode 100644 McBitFont/Resources/fam_mid.png create mode 100644 McBitFont/Resources/fam_top.png create mode 100644 examples/Cursors.mbfont delete mode 100644 examples/SelectionCursor.mbfont create mode 100644 icons/famfamfam/fam_lines.png create mode 100644 icons/famfamfam/fam_mid.png create mode 100644 icons/famfamfam/fam_top.png diff --git a/McBitFont/Form1.Designer.cs b/McBitFont/Form1.Designer.cs index c99abea..d858208 100644 --- a/McBitFont/Form1.Designer.cs +++ b/McBitFont/Form1.Designer.cs @@ -124,6 +124,10 @@ pnlRightButtons = new System.Windows.Forms.Panel(); lblBrush = new System.Windows.Forms.Label(); pnlInfo = new System.Windows.Forms.Panel(); + cmBaseline = new System.Windows.Forms.ContextMenuStrip(components); + tsmiBaseline = new System.Windows.Forms.ToolStripMenuItem(); + tsmiMidline = new System.Windows.Forms.ToolStripMenuItem(); + tsmiTopline = new System.Windows.Forms.ToolStripMenuItem(); ((System.ComponentModel.ISupportInitialize)nudX).BeginInit(); ((System.ComponentModel.ISupportInitialize)nudY).BeginInit(); panel1.SuspendLayout(); @@ -132,6 +136,7 @@ ((System.ComponentModel.ISupportInitialize)nudBrush).BeginInit(); pnlRightButtons.SuspendLayout(); pnlInfo.SuspendLayout(); + cmBaseline.SuspendLayout(); SuspendLayout(); // // dotPanel @@ -688,7 +693,7 @@ undoToolStripMenuItem.Image = Properties.Resources.arrow_undo; undoToolStripMenuItem.Name = "undoToolStripMenuItem"; undoToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Z; - undoToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + undoToolStripMenuItem.Size = new System.Drawing.Size(164, 22); undoToolStripMenuItem.Text = "Undo"; undoToolStripMenuItem.ToolTipText = "Undo last canvas change"; undoToolStripMenuItem.Click += undoToolStripMenuItem_Click; @@ -698,7 +703,7 @@ redoToolStripMenuItem.Image = Properties.Resources.arrow_redo; redoToolStripMenuItem.Name = "redoToolStripMenuItem"; redoToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Y; - redoToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + redoToolStripMenuItem.Size = new System.Drawing.Size(164, 22); redoToolStripMenuItem.Text = "Redo"; redoToolStripMenuItem.ToolTipText = "Redo canvas change"; redoToolStripMenuItem.Click += redoToolStripMenuItem_Click; @@ -709,7 +714,7 @@ copyToolStripMenuItem.Name = "copyToolStripMenuItem"; copyToolStripMenuItem.ShortcutKeyDisplayString = ""; copyToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.C; - copyToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + copyToolStripMenuItem.Size = new System.Drawing.Size(164, 22); copyToolStripMenuItem.Text = "Copy"; copyToolStripMenuItem.ToolTipText = "Copy current symbol to clipboard"; copyToolStripMenuItem.Click += copyToolStripMenuItem_Click; @@ -720,7 +725,7 @@ pasteToolStripMenuItem.Name = "pasteToolStripMenuItem"; pasteToolStripMenuItem.ShortcutKeyDisplayString = ""; pasteToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.V; - pasteToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + pasteToolStripMenuItem.Size = new System.Drawing.Size(164, 22); pasteToolStripMenuItem.Text = "Paste"; pasteToolStripMenuItem.ToolTipText = "Paste from clipboard to current symbol"; pasteToolStripMenuItem.Click += pasteToolStripMenuItem_Click; @@ -730,7 +735,7 @@ selectToolStripMenuItem.Image = Properties.Resources.fam_rectt; selectToolStripMenuItem.Name = "selectToolStripMenuItem"; selectToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.R; - selectToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + selectToolStripMenuItem.Size = new System.Drawing.Size(164, 22); selectToolStripMenuItem.Text = "Select"; selectToolStripMenuItem.ToolTipText = "Toggle Rectangle selection tool"; selectToolStripMenuItem.Click += selectToolStripMenuItem_Click; @@ -741,7 +746,7 @@ selectAllToolStripMenuItem.Image = Properties.Resources.arrow_out; selectAllToolStripMenuItem.Name = "selectAllToolStripMenuItem"; selectAllToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.A; - selectAllToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + selectAllToolStripMenuItem.Size = new System.Drawing.Size(164, 22); selectAllToolStripMenuItem.Text = "Select All"; selectAllToolStripMenuItem.ToolTipText = "Select entire canvas"; selectAllToolStripMenuItem.Click += selectAllToolStripMenuItem_Click; @@ -1021,18 +1026,18 @@ // // btnBaseline // - btnBaseline.Image = Properties.Resources.fam_base; - btnBaseline.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; + btnBaseline.Image = Properties.Resources.fam_lines; btnBaseline.Location = new System.Drawing.Point(94, 81); btnBaseline.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); btnBaseline.Name = "btnBaseline"; btnBaseline.Size = new System.Drawing.Size(88, 27); btnBaseline.TabIndex = 18; - btnBaseline.Text = " Baseline"; + btnBaseline.Text = " Lines"; btnBaseline.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; toolTip1.SetToolTip(btnBaseline, "Set irtual base line for the font"); btnBaseline.UseVisualStyleBackColor = true; btnBaseline.Click += btnBaseline_Click; + btnBaseline.Paint += btnBaseline_Paint; // // toolTip1 // @@ -1207,6 +1212,36 @@ pnlInfo.Size = new System.Drawing.Size(103, 154); pnlInfo.TabIndex = 28; // + // cmBaseline + // + cmBaseline.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { tsmiTopline, tsmiMidline, tsmiBaseline }); + cmBaseline.Name = "cmBaseline"; + cmBaseline.Size = new System.Drawing.Size(181, 92); + // + // tsmiBaseline + // + tsmiBaseline.Image = Properties.Resources.fam_base; + tsmiBaseline.Name = "tsmiBaseline"; + tsmiBaseline.Size = new System.Drawing.Size(180, 22); + tsmiBaseline.Text = "Base line"; + tsmiBaseline.Click += tsmiBaseline_Click; + // + // tsmiMidline + // + tsmiMidline.Image = Properties.Resources.fam_mid; + tsmiMidline.Name = "tsmiMidline"; + tsmiMidline.Size = new System.Drawing.Size(180, 22); + tsmiMidline.Text = "Mid line"; + tsmiMidline.Click += tsmiMidline_Click; + // + // tsmiTopline + // + tsmiTopline.Image = Properties.Resources.fam_top; + tsmiTopline.Name = "tsmiTopline"; + tsmiTopline.Size = new System.Drawing.Size(180, 22); + tsmiTopline.Text = "Top line"; + tsmiTopline.Click += tsmiTopline_Click; + // // MainForm // AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); @@ -1244,6 +1279,7 @@ pnlRightButtons.PerformLayout(); pnlInfo.ResumeLayout(false); pnlInfo.PerformLayout(); + cmBaseline.ResumeLayout(false); ResumeLayout(false); PerformLayout(); @@ -1350,6 +1386,10 @@ private System.Windows.Forms.Label lblBrush; private System.Windows.Forms.ToolStripMenuItem frameScreenshotToolStripMenuItem; private System.Windows.Forms.TextBox tbFrameNote; + private System.Windows.Forms.ContextMenuStrip cmBaseline; + private System.Windows.Forms.ToolStripMenuItem tsmiBaseline; + private System.Windows.Forms.ToolStripMenuItem tsmiMidline; + private System.Windows.Forms.ToolStripMenuItem tsmiTopline; } } diff --git a/McBitFont/Form1.cs b/McBitFont/Form1.cs index 44fb827..01d977b 100644 --- a/McBitFont/Form1.cs +++ b/McBitFont/Form1.cs @@ -45,11 +45,22 @@ namespace McBitFont { [Key(5)] public int codepage; [Key(6)] - public int baseline; + public int baseline1; + [Key(9)] + public int baseline2; + [Key(10)] + public int baseline3; [Key(7)] public List frames; } + public enum SetLines { + SL_None = 0, + SL_Base, + SL_Mid, + SL_Top + } + public FrameMiniature f; public List frames = new List(); //private CanvasHistory history = new(); @@ -62,14 +73,14 @@ namespace McBitFont { public bool monospaced = false; private bool modified = false; private bool prjModified = false; - public const string version = "2.8"; + public const string version = "2.9"; public string prjName = "Untitled"; public string prjFileName = ""; public int codepage = 1251; private FrameMiniature fbuf; private readonly DataFormats.Format clpbFormat = DataFormats.GetFormat("McBitFontFrame"); - private int baseline = 0; - private bool set_base = false; + private int baseline1 = 0, baseline2 = 0, baseline3 = 0; + private SetLines set_lines = SetLines.SL_None; private Point selection1, selection2; private Point[,] sidebarLocs = new Point[2, 3]; @@ -173,7 +184,7 @@ namespace McBitFont { SideBarRecalc(); // Create default cursor - dotPanel.Cursor = McCursor.GetCursor((int)nudBrush.Value, cellSize, gap); + SetPanelCursor(); } @@ -351,7 +362,7 @@ namespace McBitFont { vScroll.Enabled = true; } - if (!chkRectSelect.Checked) dotPanel.Cursor = McCursor.GetCursor((int)nudBrush.Value, cellSize, gap); + SetPanelCursor(); dotPanel.Refresh(); } @@ -490,16 +501,22 @@ namespace McBitFont { mouseDownMiddle = true; mouseX = e.X; mouseY = e.Y; + SetPanelCursor(); } if (mouseDownMiddle && e.Button == MouseButtons.None) { mouseDownMiddle = false; + SetPanelCursor(); } } // Moving baseline Rectangle rect1, rect2; - if (set_base) { + if (set_lines > SetLines.SL_None) { + int baseline = 0; + if (set_lines == SetLines.SL_Base) baseline = baseline1; + if (set_lines == SetLines.SL_Mid) baseline = baseline2; + if (set_lines == SetLines.SL_Top) baseline = baseline3; int yy = pixelOffset + baseline * (cellSize + gap) - vScroll.Value - 1; rect1 = new Rectangle(pixelOffset, yy, w, 2); @@ -511,11 +528,17 @@ namespace McBitFont { yy = pixelOffset + baseline * (cellSize + gap) - vScroll.Value - 1; rect2 = new Rectangle(pixelOffset, yy, w, 2); + if (set_lines == SetLines.SL_Base) baseline1 = baseline; + if (set_lines == SetLines.SL_Mid) baseline2 = baseline; + if (set_lines == SetLines.SL_Top) baseline3 = baseline; + dotPanel.Invalidate(rect1); dotPanel.Invalidate(rect2); if (e.Button == MouseButtons.Left) { - set_base = false; + set_lines = SetLines.SL_None; + SetPanelCursor(); + SetModified(true, true); return; } } @@ -534,7 +557,7 @@ namespace McBitFont { selection2.Y = j; } } - if (e.Button != MouseButtons.None && !mouseDown) { + if ((e.Button == MouseButtons.Left || e.Button == MouseButtons.Right) && !mouseDown) { // Started to move a mouse with button held mouseDown = true; if (rectSel) { @@ -774,21 +797,36 @@ namespace McBitFont { // Fill the cell with color if (f.data[i, j]) sb = sbb; else sb = sbw; - g.FillRectangle(sb, x, (baseline == j ? y + 1 : y), cellSize, (baseline == j ? cellSize - 1 : cellSize)); + g.FillRectangle(sb, x, ((baseline1 == j || baseline2 == j || baseline3 == j) ? y + 1 : y), cellSize, ((baseline1 == j || baseline2 == j || baseline3 == j) ? cellSize - 1 : cellSize)); } } - // Draw the baseline - if (baseline > 0 && gap > 0) { + // Draw the base lines + if (baseline1 > 0 || baseline2 > 0 || baseline3 > 0) { x = pixelOffset - hScroll.Value; - y = pixelOffset + baseline * (cellSize + gap) - vScroll.Value; - - Pen sbBase = new(Color.Blue, 2); - g.DrawLine(sbBase, x, y, w, y); + // Base line + if (baseline1 > 0) { + Pen sbBase = new(Color.Blue, gap > 0 ? 2 : 1); + y = pixelOffset + baseline1 * (cellSize + gap) - vScroll.Value; + g.DrawLine(sbBase, x, y, w, y); + } + // Mid line + if (baseline2 > 0) { + Pen sbBase = new(Color.MediumPurple, gap > 0 ? 2 : 1); + y = pixelOffset + baseline2 * (cellSize + gap) - vScroll.Value; + g.DrawLine(sbBase, x, y, w, y); + } + // Top line + if (baseline3 > 0) { + Pen sbBase = new(Color.FromArgb(0x16, 0x8b, 0x76), gap > 0 ? 2 : 1); + y = pixelOffset + baseline3 * (cellSize + gap) - vScroll.Value; + g.DrawLine(sbBase, x, y, w, y); + } } + // Draw the Rect selection - if (chkRectSelect.Checked) { + if (chkRectSelect.Checked || CAKeyDown) { Point p1 = new(selection1.X, selection1.Y); Point p2 = new(selection2.X, selection2.Y); NormPoints(ref p1, ref p2); @@ -903,7 +941,9 @@ namespace McBitFont { f = CopyFrame(frames.First()); form.Dispose(); - baseline = 0; + baseline1 = 0; + baseline2 = 0; + baseline3 = 0; prjName = "Untitled"; prjFileName = ""; @@ -1004,7 +1044,9 @@ namespace McBitFont { } monospaced = sav.monospaced; codepage = sav.codepage; - baseline = sav.baseline; + baseline1 = sav.baseline1; + baseline2 = sav.baseline2; + baseline3 = sav.baseline3; lblType.Text = monospaced ? "Monospaced" : "Variable width / Single"; frames = sav.frames; makeVarWidthToolStripMenuItem.Visible = monospaced; @@ -1053,7 +1095,9 @@ namespace McBitFont { sav.monospaced = monospaced; sav.frames = frames; sav.codepage = codepage; - sav.baseline = baseline; + sav.baseline1 = baseline1; + sav.baseline2 = baseline2; + sav.baseline3 = baseline3; using (Stream ms = File.OpenWrite(filename)) { MessagePackSerializer.Serialize(ms, sav); @@ -1187,7 +1231,7 @@ namespace McBitFont { } private void btnBaseline_Click(object sender, EventArgs e) { - set_base = !set_base; + cmBaseline.Show(btnBaseline, new Point(0, btnBaseline.Height)); } // Check modified / Save frame @@ -1403,8 +1447,7 @@ namespace McBitFont { lblSelection.Visible = lblSelectionLabel.Visible = chkRectSelect.Checked; selectAllToolStripMenuItem.Enabled = chkRectSelect.Checked; - if (chkRectSelect.Checked) dotPanel.Cursor = McCursor.GetCursorSelect(); - else dotPanel.Cursor = McCursor.GetCursor((int)nudBrush.Value, cellSize, gap); + SetPanelCursor(); dotPanel.Refresh(); } @@ -1534,7 +1577,7 @@ namespace McBitFont { } private void TestFont_Click(object sender, EventArgs e) { - var tester = new FontTester(codepage, dotHeight, baseline, frames); + var tester = new FontTester(codepage, dotHeight, baseline1, frames); tester.ShowDialog(); } @@ -1700,7 +1743,7 @@ namespace McBitFont { } private void nudBrush_ValueChanged(object sender, EventArgs e) { - if (!chkRectSelect.Checked) dotPanel.Cursor = McCursor.GetCursor((int)nudBrush.Value, cellSize, gap); + SetPanelCursor(); } private void frameScreenshotToolStripMenuItem_Click(object sender, EventArgs e) { @@ -1720,9 +1763,9 @@ namespace McBitFont { private void MainForm_KeyDown(object sender, KeyEventArgs e) { if (CAKeyDown) return; if (chkRectSelect.Checked && e.Control && e.Alt) { - //MessageBox.Show("Down: Alt!"); chkRectSelect.Checked = false; CAKeyDown = true; + dotPanel.Invalidate(); e.Handled = true; } } @@ -1734,5 +1777,44 @@ namespace McBitFont { e.Handled = true; } } + + private void btnBaseline_Paint(object sender, PaintEventArgs e) { + Button btn = (sender as Button); + int arrowX = btn.ClientRectangle.Width - btn.Padding.Right - 14; + int arrowY = btn.ClientRectangle.Height / 2 - 1; + + Color color = btn.Enabled ? ForeColor : SystemColors.ControlDark; + using Brush brush = new SolidBrush(color); + using Pen pen = new Pen(color); + Point[] arrow = [new Point(arrowX, arrowY), new Point(arrowX + 7, arrowY), new Point(arrowX + 3, arrowY + 4)]; + + e.Graphics.FillPolygon(brush, arrow); + e.Graphics.DrawLine(pen, arrowX - 5, btn.ClientRectangle.Top + 4, arrowX - 5, btn.ClientRectangle.Bottom - 4); + } + + private void tsmiBaseline_Click(object sender, EventArgs e) { + if (set_lines == SetLines.SL_Base) set_lines = SetLines.SL_None; + else set_lines = SetLines.SL_Base; + SetPanelCursor(); + } + + private void tsmiMidline_Click(object sender, EventArgs e) { + if (set_lines == SetLines.SL_Mid) set_lines = SetLines.SL_None; + else set_lines = SetLines.SL_Mid; + SetPanelCursor(); + } + + private void tsmiTopline_Click(object sender, EventArgs e) { + if (set_lines == SetLines.SL_Top) set_lines = SetLines.SL_None; + else set_lines = SetLines.SL_Top; + SetPanelCursor(); + } + + private void SetPanelCursor() { + if (mouseDownMiddle) dotPanel.Cursor = McCursor.GetCursorDrag(); + else if (set_lines > SetLines.SL_None) dotPanel.Cursor = McCursor.GetCursorLines(); + else if (chkRectSelect.Checked) dotPanel.Cursor = McCursor.GetCursorSelect(); + else dotPanel.Cursor = McCursor.GetCursor((int)nudBrush.Value, cellSize, gap); + } } } diff --git a/McBitFont/Form1.resx b/McBitFont/Form1.resx index 5800d67..293aef1 100644 --- a/McBitFont/Form1.resx +++ b/McBitFont/Form1.resx @@ -138,6 +138,9 @@ 644, 17 + + 763, 17 + diff --git a/McBitFont/McBitFont.csproj b/McBitFont/McBitFont.csproj index 945ed93..094edfd 100644 --- a/McBitFont/McBitFont.csproj +++ b/McBitFont/McBitFont.csproj @@ -20,9 +20,9 @@ true true icon_64.ico - 2.8.0.0 - 2.8.0.0 - $(VersionPrefix)2.8.0 + 2.9.0.0 + 2.9.0.0 + $(VersionPrefix)2.9.0 Anton Mukhin diff --git a/McBitFont/McCursor.cs b/McBitFont/McCursor.cs index a2cb6e4..d93d40f 100644 --- a/McBitFont/McCursor.cs +++ b/McBitFont/McCursor.cs @@ -127,5 +127,46 @@ namespace McBitFont { return CreateCursorNoResize(bmp, 1, 1); } + public static Cursor GetCursorLines() { + Point[] arrow = { new(1, 1), new(12, 12), new(11, 13), new(6, 13), new(2, 17), new(1, 16) }; + Rectangle line = new(0, 18, 20, 5); + + Bitmap bmp = new(21, 24); + Pen pb = new(Color.Black, 1); + Pen pw = new(Color.White, 1); + SolidBrush bw = new(Color.White); + SolidBrush bb = new(Color.Black); + using (Graphics g = Graphics.FromImage(bmp)) { + g.FillPolygon(bw, arrow); + g.DrawPolygon(pb, arrow); + g.FillRectangle(bb, line); + g.DrawRectangle(pw, line); + } + + return CreateCursorNoResize(bmp, 1, 1); + } + + public static Cursor GetCursorDrag() { + Point[] arrow1 = { new(11, 0), new(15, 4), new(13, 4), new(13, 7), new(9, 7), new(9, 4), new(7, 4) }; + Point[] arrow2 = { new(22, 11), new(18, 15), new(18, 13), new(15, 13), new(15, 9), new(18, 9), new(18, 7) }; + Point[] arrow3 = { new(11, 22), new(7, 18), new(9, 18), new(9, 15), new(13, 15), new(13, 18), new(15, 18) }; + Point[] arrow4 = { new(0, 11), new(4, 7), new(4, 9), new(7, 9), new(7, 13), new(4, 13), new(4, 15) }; + + Bitmap bmp = new(23, 23); + Pen pb = new(Color.Black, 1); + SolidBrush bw = new(Color.White); + using (Graphics g = Graphics.FromImage(bmp)) { + g.FillPolygon(bw, arrow1); + g.DrawPolygon(pb, arrow1); + g.FillPolygon(bw, arrow2); + g.DrawPolygon(pb, arrow2); + g.FillPolygon(bw, arrow3); + g.DrawPolygon(pb, arrow3); + g.FillPolygon(bw, arrow4); + g.DrawPolygon(pb, arrow4); + } + return CreateCursorNoResize(bmp, 11, 11); + } + } } diff --git a/McBitFont/Properties/Resources.Designer.cs b/McBitFont/Properties/Resources.Designer.cs index 80aefdd..17896b4 100644 --- a/McBitFont/Properties/Resources.Designer.cs +++ b/McBitFont/Properties/Resources.Designer.cs @@ -180,6 +180,26 @@ namespace McBitFont.Properties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap fam_lines { + get { + object obj = ResourceManager.GetObject("fam_lines", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap fam_mid { + get { + object obj = ResourceManager.GetObject("fam_mid", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// @@ -190,6 +210,16 @@ namespace McBitFont.Properties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap fam_top { + get { + object obj = ResourceManager.GetObject("fam_top", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// diff --git a/McBitFont/Properties/Resources.resx b/McBitFont/Properties/Resources.resx index b1cad7e..060b557 100644 --- a/McBitFont/Properties/Resources.resx +++ b/McBitFont/Properties/Resources.resx @@ -118,6 +118,9 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\fam_mid.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\arrow_left.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -130,6 +133,9 @@ ..\Resources\Famfamfam-Silk-Page-paste.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\folder_table.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\folder_open.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -145,12 +151,12 @@ ..\Resources\font.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\picture_save.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\redo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\Famfamfam-Silk-Disk.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -169,9 +175,6 @@ ..\Resources\Canvas_Clear.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\text_letterspacing2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\arrow_up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -196,6 +199,9 @@ ..\Resources\icon_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\fam_lines.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\tick.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -211,17 +217,20 @@ ..\Resources\fam_rectt.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Famfamfam-Silk-Page-white.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\delete.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\arrow_turn_right.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\Famfamfam-Silk-Page-white.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Famfamfam-Silk-Disk.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\folder_table.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\text_letterspacing2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Canvas_Fill.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -244,7 +253,7 @@ ..\Resources\icon_64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\picture_save.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\fam_top.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a \ No newline at end of file diff --git a/McBitFont/Resources/fam_lines.png b/McBitFont/Resources/fam_lines.png new file mode 100644 index 0000000000000000000000000000000000000000..437bfc018762b5aaebbaa85165873fffe6920c38 GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP%y#M z#WBR9H(BJh-tY4cj0uSe2?-w4t}1zdzH|J##0-s%vhSL9_OG9q%kcRBe-Tzj(LEOy zR!sU7@!(s%$FyhbrJt@8;f^;yH97adf#XbzyDmDPN>)7cn=x`$cy6c!OB@4(y}gXV Uz0Y$*fOau>y85}Sb4q9e0IIw^)c^nh literal 0 HcmV?d00001 diff --git a/McBitFont/Resources/fam_mid.png b/McBitFont/Resources/fam_mid.png new file mode 100644 index 0000000000000000000000000000000000000000..3b82f680e70c64cf83336b011fe599d7b8b205c0 GIT binary patch literal 137 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP|(`b z#WBR9H~G*1|MtwP4V_AN7qc0Fz=jfyc}p~;A|!xd$6xtLOMkw0tJJDsOcUDKP-vpc b$HdIA|!S3j3^P6E%)P;R=F#tQcE#7LQ#3FTpo~*F z8Aya(_Asg|>UutJu vVkrf~{#gyul)<2k^9*DXL7lZ5n6eK&T6&g

%ii+-z3M_1n`+hJV}uZjR6P literal 0 HcmV?d00001 diff --git a/examples/Font_9x17_Alagard_cyr_vw.mbfont b/examples/Font_9x17_Alagard_cyr_vw.mbfont index 4720ecd3063d2a42dd11d1fce4df195582cac4c5..8e4603e93c90ee2d90c3c13ba4088a60642e90fd 100644 GIT binary patch delta 4014 zcma)9dr*|u6%WdO`(*d~*yW9|C|HpIyD(##$jew0V#2W2I1OrHA@M=M08unXkVPU< z&#HH?RBTJm>Lo`k8n)_D{}BcT61{bk>@qhVf%r7_lVac7kg#yhNKb z4ZaZ)5=vsuus9QQ!Zr6jC(b~eap{gfz`xal$h-^e^3?p_u^5OgVexQm6^kEyA?BJ| z*m}(LCX2P23_Gq3vNhkF$6}3H`es;UnZp*D;+jR`e$y%)E?ea~!nTlD`ZAO^`teAE zj&=5+u-%0j_X33S3`}Ys+_Kln#EuifHkU&ZNG;wIxIMs;}UVJC~h$_@(uV> z?bz#X<@DFxoc?}FUyYK(HcZBw3D$(0o)QsWN#SMCGh)L#H24f1dW=1s?ZnI>D=qJ< z!s`J++q*<7R?jyupW0ZAU&ec|E=kAGR~)v9iHSMNKFFX5b!H;s)ezbIAlJ1dN%G{y zqz~CTko=~|RZZ1CFXRC6<6bOJmAp8fDw$QCc1BdQ)@r~?)f_`$Z6X$?_lW3+G1c^{ zkk?@_d9F=Cs&+;*!r7@P+_Z-CXJ#Rd<2B)kx0_LoEXjt^tSV9NM!Nw!C3pj;7kI+i@!@PYrZjz4ipO&B)>{i1pjNJTdMOdnoR2_)2^C%O;x~Gl(nMu-SZ~e=XLp2~9pUUm#_G(L2mfp~ zAJ7JBwxEKJ)?y8(>TMXxDHlkO;&e?uM(*^$ySR*j>K4muA9jCeg5U*)1jxafPT zXjm8g%bvH)T?Frhq6$}6xa=g`_o+@js`9j|>{pduRe2_=F!0OwjItP9E_3v${{5Z@eL4^^ihsmcp<68Wl)MPKzUU6A2Ln*kf$ z3ol{NMaNEy#l} zTLSwq8-D#iUe@kS=h^i)${j7|0{-|mEoMRZup0$i+PLPCEg$jccRBXU2NjMeZ9K{1 zbfY{%lVXl24`bO%_)?E>mBm z_EccX;-D88ftDst`+HhX7Q96cv@E45z{e98L$tMCWU;dCBNly6$T~idbBfWD8{T1> zonYT1=KHqybCOHM77wbn(5Tu-&uC$K_)ZPw+Z{9r#^Z%2z|Yu zpFb(nUX|0u)!k*>>JME8Ty$aF#yS5+eBbP*_t1n$p}`XYO{->lJ9S)ss+#c&_DIk_ z|3B|77y1{)*@^OI10&mPI1;eXX_))H)p0L7|CQMooi;f0jZV2aAIr^YOHHQN+Dui` zRNv*I`NlOj<7HSdm6C+k6q>uc9%A5YvsFaLl0c?|b}k-Mi!w0WsiCeQEjk{st=qT#qxLZ9p8T+4j-Ty1L|7`zx7Wekb72lNq z9ZfIIK(He#oK1sVCjEhw34bUDtZ9gyh%rphy;?vZ_qQ1+;XmV-5%;le?A w3`Y9GY%T8ZW{!L=r)hsrCh;PL&YB5hW+yexG<&}0hBY~|?l~mdF>adoAGa>B4gdfE delta 2934 zcmZ`*dvKIj6)zwA{JzcZej$&|J4;9i9L9VY$ieG70sIko$6u4+uS>add2 zf~5r>WEPpx*QjB@>+CMl4;94U#nC1hSTy03Vobr7m=erX8pt@ITq8X)@h#PuI#I_& zS}Gl9N$8z1Ehe>@1^ud7D2|$cPI}ZboAj!sTQv$59SYSaqqi<2W@u>0DAIIjvVjY$`%6sTkX@QedH7 zoP5qsu`*SMO4~1^F_413j##v+Te=C? zEPUINfhV1*sxjNF!%R~v;oXshe^t70yVZ2G=ADZmqLW_oh>LQ0J;7 zz3ieN{umuGRQ?nCixV)Ap(5x$uNd<%FF6i%?nxNXEf{Dw;iKw+V$7#Yy^8T5`s)b` zu(ZjG%;~A9R4j0(n=rOH7XBI=4z6(FfpitVNoKr0sZ=q(6cG(c7!O9`rzyrm^1NbHBvh%!!_i1zPcDbA zz{xw=6K5;NA}Kc+p}cf7l(VEdG@MVIry7q$tL-x#J56Pvr->=l&5E%Y=UV5&nWV#) zR7zZ{7>{CfV-9ne3`e64V>!Yn8%DD-;I?W=neIg>A(JQjlbN!LarfE6jZg|pcA0c3 zEfUN9sR7kkZr5RFy4jKzVHUmt-W%yL%D-InFnjU7C@x)?lB(eUjRz^vMf0`Q=(;cWP zv7jQemM#uv(#6#@pUK8^pvPoFIN*RU*@89Y@#xt~UZ)9FJDdo6A5e|Qqpn|edaz=0 zCvE(3vgobCEYVdrv&8>JQ;w;|nrII#&8~qzdnGr{XN#u0ogGw+wc`SoNDoc$Cs;6& zvzkH$Q(2?yZ8~hc&K~r76A+-=ff^0LP$nkk&QpvHD4eM^+UN7VYXfVKl@-_^@S zUJ)<%WVD*9^XH=Q>&y&0Zh&QsTj>Pl!IW0j?rR0GCM|f4Zh$U z3jD2@_FAHOtIkhD)n-**)&*aQ7bmC~Xjc)=Q;}iKV&!W1XqOu=Xjb^^%rsJ8Dx&{| zGBH9flreJc(MvU25-?|v6~PHkw9ZJPz~LErq;Jj;0ZA!m@os~DfA2(NI4H4G;&zEU z1X9>_|8Yv~lB?=jV)e9Kotk}`t8Yn-y%P6H+%KhcztA}-xm^-N61ycHk_dr3w{L;a zdPZ`em3Ua<5h?ZQLgB$txvF|t=zK@Yd{^T05?_$mBe7TFF^R_o^5msUgq80}?)N3W zDDel8LJDk1M#-`kN}pUNJa}2`YR2#@(c`T>08E>ikslUK2=5!OBDAo|CJ= zHNx%%Df5QJfzNvjc(cLi6wqtp(YMLV+2+QXwaaPOx$ZdW*>$H$8`oc<)r&Gp?7~yl zn#B{y`URUm9hpfsTxhdk&lAn$y?JNeQE_DBMRI<1SD)T9&AIpMh-+ze9BRQ>7LqHY)jV=PM=9jpM2vzN?($eBJT&+Bh(f_c%)7wY;@cxdK}@F6!dsSW1XxQ zf%z@ zD{R;96X|(uzp(OedXvF2&@r|%3mIK&xZ^%}h4jONhe&sJb&_hKi#+LeG)tYknT5u9 UXx;U29Ppr_Tg4)W*6qvvFI@#~Pyhe` diff --git a/examples/SelectionCursor.mbfont b/examples/SelectionCursor.mbfont deleted file mode 100644 index dcd90e2e7587e933464f6a014cb9a1947e22e6c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1045 zcmdTkChJMm!fz~ z3fXH+QtJ_uf|#=16BGJgk5qrPZKw;V!h0R-2p~eje?0hle=22yc7`&+@A`J4R~#64 JKi+=3VNd6969@nR diff --git a/icons/famfamfam/fam_lines.png b/icons/famfamfam/fam_lines.png new file mode 100644 index 0000000000000000000000000000000000000000..437bfc018762b5aaebbaa85165873fffe6920c38 GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP%y#M z#WBR9H(BJh-tY4cj0uSe2?-w4t}1zdzH|J##0-s%vhSL9_OG9q%kcRBe-Tzj(LEOy zR!sU7@!(s%$FyhbrJt@8;f^;yH97adf#XbzyDmDPN>)7cn=x`$cy6c!OB@4(y}gXV Uz0Y$*fOau>y85}Sb4q9e0IIw^)c^nh literal 0 HcmV?d00001 diff --git a/icons/famfamfam/fam_mid.png b/icons/famfamfam/fam_mid.png new file mode 100644 index 0000000000000000000000000000000000000000..3b82f680e70c64cf83336b011fe599d7b8b205c0 GIT binary patch literal 137 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP|(`b z#WBR9H~G*1|MtwP4V_AN7qc0Fz=jfyc}p~;A|!xd$6xtLOMkw0tJJDsOcUDKP-vpc b$HdIA|!S3j3^P6 Date: Tue, 8 Jul 2025 17:09:03 +0300 Subject: [PATCH 7/8] Tooltip text for new buttons --- McBitFont/Form1.Designer.cs | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/McBitFont/Form1.Designer.cs b/McBitFont/Form1.Designer.cs index d858208..d8829d9 100644 --- a/McBitFont/Form1.Designer.cs +++ b/McBitFont/Form1.Designer.cs @@ -125,9 +125,9 @@ lblBrush = new System.Windows.Forms.Label(); pnlInfo = new System.Windows.Forms.Panel(); cmBaseline = new System.Windows.Forms.ContextMenuStrip(components); - tsmiBaseline = new System.Windows.Forms.ToolStripMenuItem(); - tsmiMidline = new System.Windows.Forms.ToolStripMenuItem(); tsmiTopline = new System.Windows.Forms.ToolStripMenuItem(); + tsmiMidline = new System.Windows.Forms.ToolStripMenuItem(); + tsmiBaseline = new System.Windows.Forms.ToolStripMenuItem(); ((System.ComponentModel.ISupportInitialize)nudX).BeginInit(); ((System.ComponentModel.ISupportInitialize)nudY).BeginInit(); panel1.SuspendLayout(); @@ -1034,7 +1034,7 @@ btnBaseline.TabIndex = 18; btnBaseline.Text = " Lines"; btnBaseline.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; - toolTip1.SetToolTip(btnBaseline, "Set irtual base line for the font"); + toolTip1.SetToolTip(btnBaseline, "Set irtual base lines for the font"); btnBaseline.UseVisualStyleBackColor = true; btnBaseline.Click += btnBaseline_Click; btnBaseline.Paint += btnBaseline_Paint; @@ -1218,13 +1218,14 @@ cmBaseline.Name = "cmBaseline"; cmBaseline.Size = new System.Drawing.Size(181, 92); // - // tsmiBaseline + // tsmiTopline // - tsmiBaseline.Image = Properties.Resources.fam_base; - tsmiBaseline.Name = "tsmiBaseline"; - tsmiBaseline.Size = new System.Drawing.Size(180, 22); - tsmiBaseline.Text = "Base line"; - tsmiBaseline.Click += tsmiBaseline_Click; + tsmiTopline.Image = Properties.Resources.fam_top; + tsmiTopline.Name = "tsmiTopline"; + tsmiTopline.Size = new System.Drawing.Size(180, 22); + tsmiTopline.Text = "Top line"; + tsmiTopline.ToolTipText = "Set top base line"; + tsmiTopline.Click += tsmiTopline_Click; // // tsmiMidline // @@ -1232,15 +1233,17 @@ tsmiMidline.Name = "tsmiMidline"; tsmiMidline.Size = new System.Drawing.Size(180, 22); tsmiMidline.Text = "Mid line"; + tsmiMidline.ToolTipText = "Set middle base line"; tsmiMidline.Click += tsmiMidline_Click; // - // tsmiTopline + // tsmiBaseline // - tsmiTopline.Image = Properties.Resources.fam_top; - tsmiTopline.Name = "tsmiTopline"; - tsmiTopline.Size = new System.Drawing.Size(180, 22); - tsmiTopline.Text = "Top line"; - tsmiTopline.Click += tsmiTopline_Click; + tsmiBaseline.Image = Properties.Resources.fam_base; + tsmiBaseline.Name = "tsmiBaseline"; + tsmiBaseline.Size = new System.Drawing.Size(180, 22); + tsmiBaseline.Text = "Base line"; + tsmiBaseline.ToolTipText = "Set bottom (base) line"; + tsmiBaseline.Click += tsmiBaseline_Click; // // MainForm // From 2930c422600f81a8f600abe0c134fb0ee53216ca Mon Sep 17 00:00:00 2001 From: Anton Mukhin Date: Tue, 8 Jul 2025 17:12:10 +0300 Subject: [PATCH 8/8] Screenshots updated --- images/Screenshot_Frame-screenshot.png | Bin 7454 -> 8949 bytes images/Screenshot_Main.png | Bin 55041 -> 53185 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/images/Screenshot_Frame-screenshot.png b/images/Screenshot_Frame-screenshot.png index c456ef0147b82f3ef9526d693af82e9473264b6e..ebb5eacf7587540c5cd094e9fabf5824eabce4f7 100644 GIT binary patch literal 8949 zcmZXa1yCG8x9^u_fyG@CTml4l2=4AAxNFeGo#5_);7+jMA-H>RcXxO9xB2d?y6@dv zH9b2$)7{f``ke0H{I|oE6{S#--Xj4308|-iaa8~SMj3h?3x>4>z}Onc;kF& zqB%GCLUTZsR*2oLLjgvN>sXJ7634LT1aG3UW1E`xr4ow-VJ@?RT8dML&Z#NcyIl|+ z+yF2L*ZP^r_(pDFusuCL@H;^l(TL=6LHO9>3FB1K`#+lxUsae(1WUe^I@7EST)lY9 z4t%UnVS9dlzQfThWAd{h z9Rov8nO4ob>D~L7&DOX1*h#sxKb`DV$Bi-#-3qVkQAHOu{Zre|HST9ZuU*??9b+WP z$>>-yTk}+nWxm}s_?(t*FJR`T<4EgQy}Plgx5p`G zY7OnVBj5Y>hOmniA=3G}6VM|33y4qS70k-Y8WtNXB`=S{6JwpN|Lwty(+>z3yGl7< zCqR*w?eY65uE|i}Xw%)Wipc_u6|fV`a;J0kXwV8>_10cAYZ;M?nkdB=Sll{0Vp}Qk z8rpwaSgg)i<6IV}@=NDFZqQx|`spvTzf=$L0{9#hB#ZxL%rmkKy!dN^9cM2^>M8)U z{$v*??C7@qf*STZsuXqLj(LZ&(r(a}UHfQOTmNU{C`}SC7SBl405Rb#zr^nU(S0YV4Nb?Y~Mb_Z>EYaM#xh zBT(I#UCGR=D8k+q0TF3FC;M+NO-!RFc^X4vyYAL}nODS-mh)wM+}ggBxcO@MQjX8gQp1f`Z0T%xqWi{%*8MnutfSoaz8iK)$m-0# zs^xq5#&p%X6P+@?<@F&L!55ZyV(z8?ymy&XI!q>ThF{lBHcX~FveA0J*Bhth%5?az zl>PQOjm>Y*0^(24hgWHEHgL@C}aU~}1@b+6N*^M~S)rtg~Z)<9tOR)PDn?73= zFWfJx+j!g3r!V&w>ktSA;A=kD+77jEZ7JPtZO$mU6eSd)8!aXITHs%)t>4|^-;dkJ^K$)Xq?}Wa zW)|3^^rq6k8H=wUaK%E(gm%P=TYG6Hn{&(3WfgkIc&ws*z@ytCcbCn4Bn6?=gXfg^lSGYr@qzl4 z{fgcBefXWxQ<9tW)w;RI&e~ud^R%w(J79ydla}7=YP{OCbAeguAC%f7^$ecdk7c`< zRcTV|tMReL2jgXtD^e$1{~Gzvy!M#fhYHAc3hq@*nffjT-6YEi)XLaK42wGRovep545d*Q6*hQ#L9 zN%Q3}k{}@~+{|OF(_APtak_b0_(pV8_Ib0Uf9CXI13k7G#2x&7j^ryekZUZB6+OM~MP)>%*)g!`_?Gdk*zDWxfn<#(Vfph(cGcYrG4ZX#Y?Ma|-`n0HSIAG4?*UiG@8(}`;rXwQnGI_+ zjGuc*e=Xf+V{sga9w`nYl-_nPx_rOX3pSqC6Lagly_HOCcODRUbGzgFh>-t*jHmmm93qt==!QBUyS+GwOxV_p22ux(?iZ@ybb} zhHRxH$gcMCL0bE%y*SJcO_OcsxA8cf6+J(EZMxF#q?Qr=;#YtFj5>`UyV-QG5&;inl zB!0*Uz9vmFHCJA3O4l4roU`cp+qfxVv3<8Q@C!BrD>4Ba& z(1_1n1*ASGIic1H8_;V;Lx+KBOB}jtS{OoIW%{|Bl%(GpZt}b%>jh%mU)TQ2gE%mE zTX>+ENzY|xA{RPBJ%ei%ZeD8AW37~=Dtp;{Zx&Ydt(n%5nT(Vi-N;)suNcsAGUSZy z2sg=YDhtMNOKzgy$-DEuXl8#~FxYIHn9{8fIk^s;Mqq{Je@D8|tKh`f*n5PomnaA9 zUyZ#Yrx&ncNjKu_yNf)plt#`wqrSj-)m6+}*nWApK%z4PjXP1oBDG4J)|&Z;4fA(q zf~_s5la0T_^7fw~j1R(R(y~8oGiXb$XMry55m}|Bw^|RMk$Y}|)o56r*N0!2%Zv7x z+u+#TyG(c>%teX-)a_tmrY?u!peG%YFqLlg z9>Y^T7LgdM@MFMA_Ba(dU=oNL3v?raQ<$8(_hg##AVuNTyU$|K6^chB&y_~Y*;w7a z3w1T{>VEy6HJ}%%dX_Pp&O99~mFl9M)5_SOEc{_(bn0OUp5pdQ8Sl|-1~Eswm9^oz z?&ZTq=bF=`9`X#a@9qaAW|%+qS9?Jpf%6fxEZg=V=r9#MR!>fH$xOH!WtyFZ*rMQz_5F$bY2b$-jC@)@EYUC#9AQNA9x|kyAPi#+ zIAu{V>)+5daf%>}E~G&S1*WJpL z>@Ku|SaweSSfU7W7yEz8ssK=F8zc4pAWoI3YnH3at355v%yTHn)@YaiWmHX?P+}gm zRjR2QJO0(=!>4Y|6amPg#hUO47=NwHQdXv`* z65}G|G9jM|o>OT>oXP^YF4jwrE6nJ6ka(!3RYI%hBOJUW1sLVa#@AQ*L{%4) zp%*ySjFU9UR^R1h(ATrna5ylUO^|13C;MMs%?JrrBmU5*N*wL@QhbSn%ho#nOyU?L2gA zpw^{H9KF{)uG<+BsRuWv*)?&rn-jisV#VK)Uh)Pq05pzr|SHZ`9N~9eBUQmO+@!4wY zS6kcO;Z$}^Z0v6H()Waf7kBM%#1|JA?$;Ai3pS!%gHohE;(G3r9yCf>J=X_Q0`N)z zX=&+>tyrO$?ojj^ExP3XdX9vlk$Mv5I7kMZqh2Qt(~h$QOro-n{=B{9sd1MXw;BbcMZ{K(WaM^Bdz}68x}@zm zWS4MBR9;`-$=@ol>p{5qd%q2Lw~k>jTI}JIzT4QJFAr+e4GTi$6x&wG6Nw&+g$ikS z)%7n^73sDz)^D!$Z*0jY*$^dk%4;H8M9KnMr6rW~XHei%eXVS~8<*TSF>5B-E2Ql? z-J4bTguOX0ui+uC#i7lEa+cQL@)B*XVWM{rdcH&3ujO1aoLn;K_(MzdqNnrxQHzWt z&F{QY@ww(-th47_t%wJ+&t2|CAa5Jpw_>C&8$QaPy?^%0Z!p8Mlg>oNHu&h!!yY*% zx*6B7;P3Dlob1}Nn0;%l?_c*Iw9;B`#ibrA(!r~IW=JTiUj!WM(ZXqP7OQ7VdGztp zO2}#bL2;@@cAgg+xf-_d;CHNf)2}Bbq4j%QFNz)8zqLF}9LP-bB+6c!ojgCVWf@sA z`DRO*0ttS{n2?7f970{3Ae;+$FKM^j;6Ieiyfs-MC#X5zi}5(5b?5H8|xU z7n$+Ippn1QDD>v*L(R*0FQa~orf#bzXS$-PM6cBORKG>l zfZplj%~6B%0T#6P3k*cO&fuv+1(O6A04^>r0lzy-L_{p8oZk0*T|~Fp6*X4iHl=@0 zL`PfueAVl$(}v4rcR1C?mHQwQ66>N2omTp?df9GpO*ThDNxw-mDpQU^GQf75l0jX8 z_zw>c_cxWk(a+D`T%|+&kNf#yF)@9lZ}(CR`YrP(f2?NcG|Oi(kg~*8KF7@oatM1% zGAc9k)(OAGSTy=}5u$HzEm!vv6b>L#x8m)mL)yYQt!ImUD>bWuSGyx>Z<6@6!reL$ zTYol#h^d)&r~4~{ki#_Ua5y~drv$oRbSc#*-GKQORB*JP~*qb6G!dMT~PtXzQ@ zlX4RT#rT5+`w!9BtO$G#HWw`G&yw;Pu*b)ntm6qZO1}pL8_(LF0tDe7p&ylbZEYlq zMF}ISsq)l4{rx8E9sV|Waw!3#mHx+jCo*{)X|+Ses;PI5anaeSM+b^+&HmnR=^C_|DbVsgiiE#ZU zChj9Z%eKcWnv86Ab3Bz zIT@Fl8UBZdD=-KNDMu1TC(2}H{BhdK%Bm}lT#Q#<;FPtnfu|?;-N-bMf;lu8>;ap*KODLMDy86NF})wUwekSD)2erQL2%SXUH8pIk?t zbZ!WVqmvU1ps}%$cvTe1K!Hb%!QgL!a9;xzCyiysa_!itu%m4-bpuX5mq$cKGU^D0 z>f`JVv9{SUH>U?}@<2LU?kB=Rsjdy>9;CK^b+jONCnp!qSnQ~;7 z#D!9{*cwRb!HxEqK__Pk?9tDFt!>9m`Bb}4uudq50tkz++q=7)(cG)bu$E&v#IUtF zqDzCNYTC{PCn80SXtfFh(r)aUnmW{Q@Hb5mJINX|s>z-9t;xywGCcqu70tkrm7OH} z_xLgf!sL+aZEB7KP+<%ML5U63$9DsR%0Y7{M`1M`syc^tUp`hFZZ~lBbjp2#bwEKB z*1JFNav)kLtf*lni zrGw?);n6-G>CQ1P=Eac)2Z&&Zh%gLCR8LRO`gDmJkN16*lA4y*yS%)-`I(^PUEXOf zEyHlw@#P@uNC_(=&beImMgzR$AX7O;I%gdVJgV3sad?jMdZ-_8W{L#!5@~O=Ars?= z@<2_Cs5xSxqEh-tddpBHfN%R^@%F>YmBmw3!ykG1ca|bGcFs1UwwW1B^|UidH5AJI zaR7ikR1*iGbG{sfk36acjK zr8zYi;!!=U0S13KbQWE^Pr-p4q3L&a4~yQUgXD8W7{EQ3A$eoL>J5f$a+#9#AmV}@*xcT z&6%aS!2S=b@Be$&d=6!Iod4v*{x6yTH?gY#pr{}Czfs?ZQUJ>E!fVn>VDe1i{}0>$ zXNA*;y=;5~j~!gD6`JGWtommlU>Qai_LX7Q z=>T1`ejD8&tZn>lc@;s=LkopgNdY}UT^G@-BA1m^} z!Q_FZ-(ckV(X;l*B7k=6Qil5-n#13|Vz8Z|mS_JxL78gL@ITq%TiEt%vflunwmsQ# zEihNMd66j8XMDAE3fK|{5b>yh`ma)+1Kmwm=FnB*Lxj@1M>Pz5g2}}~ss=`h;QM2^;tn0fn;oaR8xzOxeW&d1QGrieEmYwfjoc!+O7>8BQ_W>K}dl83H+`g8^(l6 zC-E36t|YTCB~Zn;=f}h&Jslm}YB2gw=3kYt6z8in3K-%CA71v52g$$`9S&hp>m64_ z+Qbyviy$6Q2l?gwfp0r<8jH=S!4&#bEf2ifij zKUARqaK0CO;2=uj$Hh@A3W7GcNCaFYQmt=Qz`!&DQc&`M1HzKjKPll{Y$T6_MR4Rk z6kc2)8%L2vus8^R24PqNDLl}2rAclS>fN8)EGm`_@hN{wA*Mo1nr04z#4uo_ zMSd520gO5LfyE`y*E>2_sq=c7L@^}5dCr(~T+0E)cSOtn!7Qormwzx2=DjB^i4epu zg+YE`Y=oL{sfkoV_xfu-8@^{$c$BKm?6r^mLhUc;EzfqJR+%2&-*VA3zmKNFkykw& z22K40ey*;Gv)iuthGv*+iG}28X%;LFa6tlQK+ytpjE3nN8iuPBD`EDACYODc{iX(8BwroL=Mb{H7?-T6-%nS_&E`U0@1Op zt>*Q(@U!=`F#o4-WcrT-(hM&$yh*P-s2Ui7&pyfH#%@)m35UZRz@4ETUMJp-Wkej+ z)?oNwr1el+M^KRQ6!?}s3|Y9F_3!;l_baz!RW?%}8J3soj}w@S`JUb^se6a;aWPlNV^Q3`=T^l)<@xojN-~K?pRnbIC)?Z z95S%t^-*?I+e<>+JcR7A=PvX^8)+HhOMKisDWcnTAZIQ!!z>>lMoK4L%x74JQ-BaT zhPjg{Q?S=RIF0FV7pzsiY3^;pbw}6jsmvD`>Ir2(G)y8tFi9B4MHtIP7+WeC5b89} zAPlq3e+O~zmW~ecOHLw28NhL{1X_ml#0Rn(MieHM6GCizg$1zlmBj zh)6~PGmkdfEduJ8b_GZQfTH!F*4lCtd=fxhL`J?WoK--vr_)DdogZ377ABpuK9@9W zFvonYFhhl~#lLziiTb}|UKW|msuM8_6*0_|A}W%UkDe`ld+e_Cd7aGU6?SP^x(`dUZOk9^K9Y^Pq!vu#1V97x&eF_pGF+ zw{&gGdBlaoXAMcX=?G0F&JHU);JV>EZL!<#Cq;1^XHW=wME`9v`@)xy0(*!*)5_-< z`e;{OYgaPfh~z%=X&O3!6OLgF$3}T_e^uoB?Fu;U-~buQs_lD_&3+udyQB__B&g=q zlRp2(ZGSv>9GoMLbqbZ9**sz1i`+n;A62U9-3w0e+gyt|!k9GAaO&w~?QJ-_j?{Su zRtP42_Vu4xFtOzETU}wsB8-K5RwS0#)T|;O}6?`=kFaTYsL9GUFA9sH_xh?w)x7usP5ZY3!cN&eSCb1gnYc% zi>AU$H7Yj`XG)|yCQTrS**2bQex6`Bda{O#z`_bx)Y=abeYN#%WAQpncdY#aaDRMLC;a}Vy zh=A_O1QpGtAudp{W=qdq6nt>v9y8@p8-pPlCPmb*f(!-ksQ;46FP!mXp_yE~|I*6; zL*)M!-(1E$}#bD-dBBS;>E!JU?thCxh>s*eHs zr_gVP?(UkWjF^`o``(`$ad2={U15lVjh0(Hu<@C6JD?H>6CCs}YW0@4*QaCeAPi9g zsKf-_OOULcL)71S;0(1m5Yqm_RV$82F5W+q&h2nG{n7jFf4r-4=;kM1-GPEe@Z3ms;D7B{E{feSV=QJ>gZ^DR?(hhVwHS*h;nG)WpB3gEGDUG3QuHP|!#SXM&( zE=j=kH|uHN`P^9&riJW1k690@=)-Am3=9_0Z7PY-XvU5Y@mvCa=T!$1uzsnA#YT^| zC^1FC{2+Cx35{X~*(ca>fKPV=XG2o5=}MYu`azufto#f?YWI1Sb8j#IatjYk#5-zg z$sagft~S{4e!58WGihk&)87Lxcu4`@NX+sw&3cM_$&g!sljPpnjH+9M=r%54qTdiP zYLe+SdzMui#sU3_34C#**r<*yXrq_|SFh^E_3DqKs1FxXY-}v-8y)0oBB*I7vZDL? zWzlyK{_!Gn1|usG(;5e zMLORJ88*PY-0B&RcWqHSrAlT*pr8>gt?&fN@$#*kGjdvhX;jP8WW*6<@+@3fqzAnlx>nc;0Q0c6l%kxtp zbiM#I3qWlscY=^4+P4oMU>k`H(PnVy4m~Bu^xt9nN}y-}^$RN38Kkn#AF99c4&mIA z3)-^~_mEXTS}2>Iq*gwCi@PCGyBRmm2~VK#Hv8G@4*9H%hn+@U@Nb-wS(|*JZjf(M z+_NXF?e*~!NB^+an59!eS|P8+__7iABG1PFRPI#U+R&L9tI7SHv*PON&{2F@C~jXi z&ogHJF^hNv&U*s$i30Chn~63{4@ug=sm?)qp@o(w#RHr5Q=@ldOTm)LBW3}Q!G*C= z7lpwQInB?KCOha8o_+~KMeU8wK=7{z1MOudHNH~Qv6{0&=Ofy*fB~mwWfFcsL*s0( zofvNAm8eeD`37iL;G{a!2n>q1DICVw z1Nbo7 zNiA?7u9Xt;xMSOJZCC%H-As5}n=>t+CmBK&sq$PPgya5vTP|P~VZMq=d(-IxY400P zws$5N2-AK1v?KJ!fWxHRAMAfUljz3J!_%3RlM_B)zv~^42iZNy7F}LbSrM3A3G5wC zKRNE`epi^2GdSp8AZcujf|vmOqhJJgAe*NO;Th@j-1wOpl3TZ|IujR)n(49r^X*80 zebu|5yFzuX3vrLu7D4wBC^gmi_HN=ik#lP+Nx~hUDjMM?@uyp!JrA{7WK*Xf2(|PY_M+Q!J6yLo zp~fUM&w`qoCN6HL#ez%#wXZP*Y*BTvz4xE5;p6Hq;r7QHz<*qnwqcI_{aC* z>E=1=>L3^yA<4}%eOuQanulWUPNyj#uZhtgK{9w&YiUCQ$3+)W`NUJ&H`?9rj!QAlTK=)Ut9jN^IQ;OCFTg-| z&QtvP?^Wd;zm1hxLZz-h01!`NL(j17+e8d(^Kx82NrNXbPM6Prb7e2AX=p&qB(nBu zA~|jKA_5Y3Uwu{baXsYghw=r(Cr$@A0L~CYztOb#Vck*bAEobg(j71 zD`>d;5H~jqE|OHV0RVc9tR#GVz~bq#-a4yDas9&|KiCC>9==YCxTn6YbgOk*k+`66 zr3ro@V|~?(3`nG0i1uE+BPiTa`u*k&Fwe-zDIxH;0$-EE!pI;Gh5s?0Q`7hJAIcBC zV?^?a+FSYFPeaZHNbANIqocf8DusXBeRnYNu@Wf)3Qt$-o@NWpSG9a&X3D@}TOmKb zW-sVH|5=NVd7XT8QLWOpk{IlB^bQ)E6HahrFSj)GlE!SY?C)$%kkwktg%$T(XtI{u zCHAhlcIi1fW_7`oqZx*rNQCG7-GpWQP)728XyjLRNV1jRAEayv$T!Yur{?%4Cw;i! z-I;D^8Kl(=hr_~kOYuaWEh22{3e8(vWnZbTJpGWxnpw|SOfGOw`=p@>DbK5OqPX~a(kai1)CBnah z3-i|kqO>QWdM?mL*DdIMlVhlGxl*zEKn{Y5?#*ji2$jCcM7}9zhOjz-ZbNB-IVI!Hk5(Qw~r*Fi6)ZqB>Bo z4qU;LYsTMfE}+k(hLjtPo!3&XK7fY=@j@<8c@Nbuw!pUk!Ybn~MNOG%H&AThz-pgz zf$FEsY$tngjMZSgkBpyTE(blbC26fk86#6vK-G zwA7q-X43ODenha=>Ja+s+k8}TmscutkN`ub$0le(U z*jbbaLnbW3R-8>>RxOEdSx^~x|Vwq?zQBfGtD;>%5>6Bqn6ciLezf0y% zD%oLW%9*LdgmH8K#39v!axnMZaXJBkxvB~zT47=GSGv`GhzW*XQkTyKgsnI1SNI_N z_HZRzp%JVtDMnJg{HpV+q_lL{R>MO$-_UzypO1zco*S4yS0P9;bQ7!M3Msjn7pmY& z;uOe}CbO5Obx=ArWixuekN@-`|8`&W7yj|qIFgU>We^ygD@soc!NC8kqa(JM7Q{(WBziMBry@mi0%lxHT=k?j6CQyJRW zJonJoA&cfcR9Ck5RSn0^>2EMX67BGN5?BUziqSdc37 zVnkS-TQ`yAGZ-G*mf?_OXmm+a@Fz2Ig805HePlrNwz#ujHvKFkj4{mMCjju+pYYO}!UPm&%?A|5Z zc#33)H*|n5?UPnYy49JJD9BM9Ff%k1=_LaLosf{eW|ojUBRV?zkU4TKRiE_87q#DpznbjVt7mB=lh@AD* zSnG@ZUyKnE$_^=cljw$Z<)W1casK0-^yTBnzNY~S=j1b|*L;CtnK~RVN@d0o>(upV zk?$oFQ<|c!gF{~`gYu9qK+@k|WOH-V)b8&~TaLS0i$RxzU+kjK4;M~rHilI?0jJ%- zNxMe9T645)Q7CL;I;?bWF`D5$)qEd~X9h6%ZsZ-ZO>K=fM~IyiL%>=QE+r8WkzQwz z7%MC5(8uIjk9|#9S=se5fi+o0#n=&e;Jp_qRumULUu3WL+Z~rPD`*JYwMP3FKP0|v zqTBOnd{Gt!5TiNq{fhTmearv_kT^>=8t z5L8r1GG;@}(Sg8xS!{ra7ox0KFVdpyC)m1bFhy7rt?ibZkT3eVr$aNA&(ZLV|0d22 zYwFJ!U_MK841vjSV?6ILu6OjEojDO51%%B{CuOSDj&ZQDi_6P_2t;l7_3e_E$f40~9db4uVI$-m5?2lZk6QDOh>{Nnu#GG;Q+yLD71*f}rql7!kgAttY8gz7ybZoICm4O>bzNqNzGuB<5J!xV)vnFQL#UGGDSRn z)q1QhFz7iKy-JdkZb52`HVZrKT#>8uIx_f>k%0_QQdXAF7f$00|2EU73b&?xA(o*Q z`^Luj@&Sv~e-SOM10*)!z|T$-raXU%_?6~vzjhSWu{ELsi=WeP^2KPPl-}k3(1e;i zTS}%rxq`7f&gRdelopQOm~Q2x!_*$FNBYaAElusH_$ODaO-+&H@g{;y1KB0AEPqmJ z)O9g0A58;;xSSkvll32x-v)k_8ru^23t`S5Lc+^P#KNI3+w@@94O|2ng-OJiY=0LN ztR>_b7SQ6jv#%Hv7VU+;Ngah(N7AHJ*7JCOGi;l=cGw#H+%cH{2hPMw3>6cRVy7~NLB-E6 z>R%iF{9*wKp$;$MF@nl6Y_vQCd<@4cvvHp9?}$J?DL#y>n%0AaF$>%ODngxZtNJ`&J~Tz=Xe` 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

jVRC<}BX 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

?$cLbKlR3-|0mW=zE>ucSSj+b+&k8vMJn< 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 z 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 literal 55041 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