diff --git a/.gitignore b/.gitignore
index f635fe4..75316d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,6 +5,7 @@
## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore
examples/tests/32x32/
+examples/tests/PNGout/
# User-specific files
*.rsuser
diff --git a/McBitFont/About.Designer.cs b/McBitFont/About.Designer.cs
index e7fe392..7279f6b 100644
--- a/McBitFont/About.Designer.cs
+++ b/McBitFont/About.Designer.cs
@@ -124,7 +124,7 @@
MinimizeBox = false;
Name = "About";
ShowInTaskbar = false;
- StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
Text = "About McBitFont";
Load += About_Load;
((System.ComponentModel.ISupportInitialize)pictureBox1).EndInit();
diff --git a/McBitFont/CodeShift.Designer.cs b/McBitFont/CodeShift.Designer.cs
index 1ded990..6f1493e 100644
--- a/McBitFont/CodeShift.Designer.cs
+++ b/McBitFont/CodeShift.Designer.cs
@@ -164,7 +164,7 @@
Name = "CodeShift";
ShowIcon = false;
ShowInTaskbar = false;
- StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
Text = "Code Shift";
Load += CodeShift_Load;
((System.ComponentModel.ISupportInitialize)nudValue).EndInit();
diff --git a/McBitFont/Export.Designer.cs b/McBitFont/Export.Designer.cs
index d258383..410b405 100644
--- a/McBitFont/Export.Designer.cs
+++ b/McBitFont/Export.Designer.cs
@@ -343,7 +343,7 @@
Name = "Export";
ShowIcon = false;
ShowInTaskbar = false;
- StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
Text = "Export";
Load += Export_Load;
gbScan.ResumeLayout(false);
diff --git a/McBitFont/FontTester.Designer.cs b/McBitFont/FontTester.Designer.cs
new file mode 100644
index 0000000..4fc6680
--- /dev/null
+++ b/McBitFont/FontTester.Designer.cs
@@ -0,0 +1,197 @@
+namespace McBitFont {
+ partial class FontTester {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing) {
+ if (disposing && (components != null)) {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent() {
+ components = new System.ComponentModel.Container();
+ lblSpace = new System.Windows.Forms.Label();
+ nudSpace = new System.Windows.Forms.NumericUpDown();
+ lblText = new System.Windows.Forms.Label();
+ tbText = new System.Windows.Forms.TextBox();
+ dotPanel = new System.Windows.Forms.Panel();
+ vScroll = new System.Windows.Forms.VScrollBar();
+ hScroll = new System.Windows.Forms.HScrollBar();
+ lblZoom = new System.Windows.Forms.Label();
+ cbZoom = new System.Windows.Forms.ComboBox();
+ toolTip1 = new System.Windows.Forms.ToolTip(components);
+ chkBaseline = new System.Windows.Forms.CheckBox();
+ ((System.ComponentModel.ISupportInitialize)nudSpace).BeginInit();
+ SuspendLayout();
+ //
+ // lblSpace
+ //
+ lblSpace.AutoSize = true;
+ lblSpace.Location = new System.Drawing.Point(12, 9);
+ lblSpace.Name = "lblSpace";
+ lblSpace.Size = new System.Drawing.Size(41, 15);
+ lblSpace.TabIndex = 0;
+ lblSpace.Text = "Space:";
+ //
+ // nudSpace
+ //
+ nudSpace.Location = new System.Drawing.Point(59, 6);
+ nudSpace.Maximum = new decimal(new int[] { 255, 0, 0, 0 });
+ nudSpace.Name = "nudSpace";
+ nudSpace.Size = new System.Drawing.Size(40, 23);
+ nudSpace.TabIndex = 1;
+ toolTip1.SetToolTip(nudSpace, "Space between symbols in pixels");
+ nudSpace.Value = new decimal(new int[] { 1, 0, 0, 0 });
+ nudSpace.ValueChanged += Scrolling;
+ //
+ // lblText
+ //
+ lblText.AutoSize = true;
+ lblText.Location = new System.Drawing.Point(12, 37);
+ lblText.Name = "lblText";
+ lblText.Size = new System.Drawing.Size(138, 15);
+ lblText.TabIndex = 2;
+ lblText.Text = "Text to test the font with:";
+ //
+ // tbText
+ //
+ tbText.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
+ tbText.Font = new System.Drawing.Font("Segoe UI Semibold", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, 204);
+ tbText.Location = new System.Drawing.Point(12, 55);
+ tbText.Name = "tbText";
+ tbText.Size = new System.Drawing.Size(260, 29);
+ tbText.TabIndex = 3;
+ toolTip1.SetToolTip(tbText, "Text to test the font with");
+ tbText.TextChanged += Text_Changed;
+ //
+ // dotPanel
+ //
+ dotPanel.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
+ dotPanel.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
+ dotPanel.BackColor = System.Drawing.Color.White;
+ dotPanel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ dotPanel.Location = new System.Drawing.Point(12, 90);
+ dotPanel.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
+ dotPanel.Name = "dotPanel";
+ dotPanel.Size = new System.Drawing.Size(238, 98);
+ dotPanel.TabIndex = 4;
+ dotPanel.Paint += PaintPixels;
+ dotPanel.Resize += ZoomChanged;
+ //
+ // vScroll
+ //
+ vScroll.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right;
+ vScroll.LargeChange = 25;
+ vScroll.Location = new System.Drawing.Point(251, 84);
+ vScroll.Name = "vScroll";
+ vScroll.Size = new System.Drawing.Size(21, 125);
+ vScroll.TabIndex = 17;
+ vScroll.ValueChanged += Scrolling;
+ //
+ // hScroll
+ //
+ hScroll.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
+ hScroll.Location = new System.Drawing.Point(12, 188);
+ hScroll.Name = "hScroll";
+ hScroll.Size = new System.Drawing.Size(238, 21);
+ hScroll.TabIndex = 16;
+ hScroll.ValueChanged += Scrolling;
+ //
+ // lblZoom
+ //
+ lblZoom.AutoSize = true;
+ lblZoom.Location = new System.Drawing.Point(173, 9);
+ lblZoom.Name = "lblZoom";
+ lblZoom.Size = new System.Drawing.Size(42, 15);
+ lblZoom.TabIndex = 18;
+ lblZoom.Text = "Zoom:";
+ //
+ // cbZoom
+ //
+ 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(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.TabStop = false;
+ toolTip1.SetToolTip(cbZoom, "Zoom level");
+ cbZoom.SelectedIndexChanged += ZoomChanged;
+ //
+ // toolTip1
+ //
+ toolTip1.AutoPopDelay = 10000;
+ toolTip1.InitialDelay = 500;
+ toolTip1.ReshowDelay = 100;
+ //
+ // chkBaseline
+ //
+ chkBaseline.AutoSize = true;
+ chkBaseline.Location = new System.Drawing.Point(203, 36);
+ chkBaseline.Name = "chkBaseline";
+ chkBaseline.Size = new System.Drawing.Size(69, 19);
+ chkBaseline.TabIndex = 20;
+ chkBaseline.Text = "Baseline";
+ chkBaseline.UseVisualStyleBackColor = true;
+ chkBaseline.CheckedChanged += Scrolling;
+ //
+ // FontTester
+ //
+ AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
+ AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ ClientSize = new System.Drawing.Size(284, 221);
+ Controls.Add(chkBaseline);
+ Controls.Add(cbZoom);
+ Controls.Add(lblZoom);
+ Controls.Add(vScroll);
+ Controls.Add(hScroll);
+ Controls.Add(dotPanel);
+ Controls.Add(tbText);
+ Controls.Add(lblText);
+ Controls.Add(nudSpace);
+ Controls.Add(lblSpace);
+ MaximizeBox = false;
+ MinimizeBox = false;
+ MinimumSize = new System.Drawing.Size(260, 260);
+ Name = "FontTester";
+ ShowIcon = false;
+ ShowInTaskbar = false;
+ StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+ Text = "Font Tester";
+ Load += FontTester_Load;
+ ((System.ComponentModel.ISupportInitialize)nudSpace).EndInit();
+ ResumeLayout(false);
+ PerformLayout();
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Label lblSpace;
+ private System.Windows.Forms.NumericUpDown nudSpace;
+ private System.Windows.Forms.Label lblText;
+ private System.Windows.Forms.TextBox tbText;
+ private System.Windows.Forms.Panel dotPanel;
+ private System.Windows.Forms.VScrollBar vScroll;
+ private System.Windows.Forms.HScrollBar hScroll;
+ private System.Windows.Forms.Label lblZoom;
+ private System.Windows.Forms.ToolTip toolTip1;
+ private System.Windows.Forms.ComboBox cbZoom;
+ private System.Windows.Forms.CheckBox chkBaseline;
+ }
+}
\ No newline at end of file
diff --git a/McBitFont/FontTester.cs b/McBitFont/FontTester.cs
new file mode 100644
index 0000000..e30cf02
--- /dev/null
+++ b/McBitFont/FontTester.cs
@@ -0,0 +1,166 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Runtime.CompilerServices;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace McBitFont {
+ public partial class FontTester : Form {
+
+ private int codepage = 1251;
+ private int height;
+ private List frames;
+ private int baseline;
+ private readonly int absentWidth = 5;
+ private readonly int pixelOffset = 5;
+
+ private int baselineThickness = 1;
+ private byte[] encoded = [];
+ private int cellSize;
+ private int width;
+
+ public FontTester(int codepage, int height, int baseline, List frames) {
+ InitializeComponent();
+ Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
+ this.codepage = codepage;
+ this.height = height;
+ this.baseline = baseline;
+ this.frames = frames;
+ }
+
+ private void FontTester_Load(object sender, EventArgs e) {
+ cbZoom.SelectedIndex = 2;
+ //cbZoom.SelectedIndexChanged += ZoomChanged;
+ dotPanel.MouseWheel += new MouseEventHandler(DotPanel_MouseWheel);
+ }
+
+ private void PaintPixels(object sender, PaintEventArgs e) {
+ Graphics g = dotPanel.CreateGraphics();
+ SolidBrush sbb = new SolidBrush(Color.Black);
+ SolidBrush sbw = new SolidBrush(Color.White);
+ SolidBrush sbp = new SolidBrush(Color.LightPink);
+ SolidBrush sb;
+ Pen blackPen = new(Color.Black);
+ Pen bluePen = new(Color.FromArgb(100, 20, 20, 200), baselineThickness);
+ int x, y, i, j;
+
+ // Sycle through ecoded bytes of test text
+ int space = (int)nudSpace.Value;
+ int index = 0;
+ for (int c = 0; c < encoded.Length; c++) {
+ // Check if we have suck symbol
+ var f = frames.FindAll(x => x.code == encoded[c]);
+ if (f.Count == 1) {
+ // Draw the symbol
+ for (i = 0; i < f[0].width; i++) {
+ x = pixelOffset + (index + i) * cellSize - hScroll.Value;
+ for (j = 0; j < f[0].height; j++) {
+ y = pixelOffset + j * cellSize - vScroll.Value;
+ // Fill the cell with color
+ if (f[0].data[i, j]) sb = sbb;
+ else sb = sbw;
+ g.FillRectangle(sb, x, y, cellSize, cellSize);
+ }
+ }
+ index += (f[0].width > 0 ? f[0].width + space : 0);
+ } else {
+ blackPen.Width = cellSize;
+ blackPen.Alignment = System.Drawing.Drawing2D.PenAlignment.Inset;
+ x = pixelOffset + index * cellSize - hScroll.Value;
+ y = pixelOffset - vScroll.Value;
+ g.DrawRectangle(blackPen, x, y + cellSize, absentWidth * cellSize, (height - 2) * cellSize);
+ g.FillRectangle(sbp, x + cellSize, y + 2 * cellSize, (absentWidth - 2) * cellSize, (height - 4) * cellSize);
+ index += 5 + space;
+ }
+ }
+
+ // Draw baseline
+ if (chkBaseline.Checked && baseline > 0) {
+ x = pixelOffset - hScroll.Value;
+ y = pixelOffset + baseline * cellSize - vScroll.Value;
+ g.DrawLine(bluePen, x, y, dotPanel.Width - 2 * pixelOffset, y);
+ }
+ }
+
+ private void Text_Changed(object sender, EventArgs e) {
+ int space = (int)nudSpace.Value;
+
+ encoded = Encoding.GetEncoding(codepage).GetBytes(tbText.Text);
+
+ width = space > 0 ? space : 1;
+ for (int c = 0; c < encoded.Length; c++) {
+ var f = frames.FindAll(x => x.code == encoded[c]);
+ width += (f.Count == 1 ? f[0].width : absentWidth) + space;
+ }
+ dotPanel.Invalidate();
+ }
+
+ private void ZoomChanged(object sender, EventArgs e) {
+ cellSize = Convert.ToInt32(cbZoom.Text);
+
+ int w = pixelOffset + width * cellSize;
+ int h = pixelOffset + height * cellSize;
+
+ if (w <= dotPanel.Width) {
+ hScroll.Enabled = false;
+ hScroll.Value = 0;
+ } else {
+ hScroll.Maximum = w - dotPanel.Width + 12;
+ hScroll.Minimum = 0;
+ hScroll.Enabled = true;
+ }
+
+ if (h <= dotPanel.Height) {
+ vScroll.Enabled = false;
+ vScroll.Value = 0;
+ } else {
+ vScroll.Maximum = h - dotPanel.Height + 12;
+ vScroll.Minimum = 0;
+ vScroll.Enabled = true;
+ }
+
+ // Baseline thickness calc
+ baselineThickness = cellSize / 5;
+ if (baselineThickness > 5) baselineThickness = 5;
+ if (baselineThickness < 1) baselineThickness = 1;
+
+ dotPanel.Refresh();
+ }
+
+ private void DotPanel_MouseWheel(object sender, MouseEventArgs e) {
+ int t = e.Delta / 120;
+ if (e.Delta == 0) return;
+ if (ModifierKeys.HasFlag(Keys.Control)) {
+ t += cbZoom.SelectedIndex;
+ if (t > cbZoom.Items.Count - 1) return;
+ if (t < 0) return;
+ cbZoom.SelectedIndex = t;
+ } else if (ModifierKeys.HasFlag(Keys.Shift)) {
+ if (hScroll.Enabled) {
+ t = t * -1 * cellSize + hScroll.Value;
+ if (t < hScroll.Minimum) t = hScroll.Minimum;
+ if (t > hScroll.Maximum) t = hScroll.Maximum;
+ hScroll.Value = t;
+ }
+ } else {
+ if (vScroll.Enabled) {
+ t = t * -1 * cellSize + vScroll.Value;
+ if (t < vScroll.Minimum) t = vScroll.Minimum;
+ if (t > vScroll.Maximum) t = vScroll.Maximum;
+ vScroll.Value = t;
+ }
+ }
+ }
+
+ private void Scrolling(object sender, EventArgs e) {
+ dotPanel.Invalidate();
+ }
+ }
+
+
+}
diff --git a/McBitFont/FontTester.resx b/McBitFont/FontTester.resx
new file mode 100644
index 0000000..dcfd08d
--- /dev/null
+++ b/McBitFont/FontTester.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/McBitFont/Form1.Designer.cs b/McBitFont/Form1.Designer.cs
index d8815be..cec5515 100644
--- a/McBitFont/Form1.Designer.cs
+++ b/McBitFont/Form1.Designer.cs
@@ -67,6 +67,7 @@
importTextToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
importImageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
exportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ exportFontLayoutPNGToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
undoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@@ -83,6 +84,7 @@
removeBeforeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
removeAfterToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
CodeShiftToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ testFontToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
canvasToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
ClearToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
FillToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@@ -107,6 +109,10 @@
lblSelectionLabel = new System.Windows.Forms.Label();
lblSelection = new System.Windows.Forms.Label();
lblModified = new System.Windows.Forms.Label();
+ dlgSavePNG = new System.Windows.Forms.SaveFileDialog();
+ toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
+ toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
+ toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
((System.ComponentModel.ISupportInitialize)nudX).BeginInit();
((System.ComponentModel.ISupportInitialize)nudY).BeginInit();
panel1.SuspendLayout();
@@ -527,9 +533,9 @@
//
// fileToolStripMenuItem
//
- fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { newToolStripMenuItem, openToolStripMenuItem, saveToolStripMenuItem, saveAsToolStripMenuItem, importTextToolStripMenuItem1, importImageToolStripMenuItem, exportToolStripMenuItem, exitToolStripMenuItem });
+ fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { newToolStripMenuItem, openToolStripMenuItem, saveToolStripMenuItem, saveAsToolStripMenuItem, toolStripSeparator1, importTextToolStripMenuItem1, importImageToolStripMenuItem, exportToolStripMenuItem, exportFontLayoutPNGToolStripMenuItem, toolStripSeparator2, exitToolStripMenuItem });
fileToolStripMenuItem.Name = "fileToolStripMenuItem";
- fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
+ fileToolStripMenuItem.Size = new System.Drawing.Size(122, 20);
fileToolStripMenuItem.Text = "File";
//
// newToolStripMenuItem
@@ -582,6 +588,7 @@
importTextToolStripMenuItem1.Name = "importTextToolStripMenuItem1";
importTextToolStripMenuItem1.Size = new System.Drawing.Size(224, 22);
importTextToolStripMenuItem1.Text = "Import text file (very limited)";
+ importTextToolStripMenuItem1.ToolTipText = "Import a font from a C array in a file";
importTextToolStripMenuItem1.Click += importTextToolStripMenuItem1_Click;
//
// importImageToolStripMenuItem
@@ -604,6 +611,15 @@
exportToolStripMenuItem.ToolTipText = "Configure and export data";
exportToolStripMenuItem.Click += button1_Click;
//
+ // exportFontLayoutPNGToolStripMenuItem
+ //
+ exportFontLayoutPNGToolStripMenuItem.Image = Properties.Resources.picture_go;
+ exportFontLayoutPNGToolStripMenuItem.Name = "exportFontLayoutPNGToolStripMenuItem";
+ exportFontLayoutPNGToolStripMenuItem.Size = new System.Drawing.Size(224, 22);
+ exportFontLayoutPNGToolStripMenuItem.Text = "Export font layout PNG";
+ exportFontLayoutPNGToolStripMenuItem.ToolTipText = "Create an image with all a table showing all 256 symbols";
+ exportFontLayoutPNGToolStripMenuItem.Click += ExportPNG;
+ //
// exitToolStripMenuItem
//
exitToolStripMenuItem.Image = Properties.Resources.Famfamfam_Silk_Door_out_16;
@@ -628,7 +644,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;
@@ -638,7 +654,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;
@@ -649,7 +665,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;
@@ -661,7 +677,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;
@@ -671,8 +687,9 @@
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;
//
// selectAllToolStripMenuItem
@@ -681,13 +698,14 @@
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;
//
// fontToolStripMenuItem
//
- fontToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { makeVarWidthToolStripMenuItem, prependSymbolToolStripMenuItem, appendSymbolToolStripMenuItem, removeSymbolToolStripMenuItem, removeBeforeToolStripMenuItem, removeAfterToolStripMenuItem, CodeShiftToolStripMenuItem });
+ fontToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { makeVarWidthToolStripMenuItem, prependSymbolToolStripMenuItem, appendSymbolToolStripMenuItem, removeSymbolToolStripMenuItem, removeBeforeToolStripMenuItem, removeAfterToolStripMenuItem, CodeShiftToolStripMenuItem, toolStripSeparator3, testFontToolStripMenuItem });
fontToolStripMenuItem.Name = "fontToolStripMenuItem";
fontToolStripMenuItem.Size = new System.Drawing.Size(43, 20);
fontToolStripMenuItem.Text = "Font";
@@ -767,6 +785,15 @@
CodeShiftToolStripMenuItem.ToolTipText = "Shift the font on the code line";
CodeShiftToolStripMenuItem.Click += CodeShiftToolStripMenuItem_Click;
//
+ // testFontToolStripMenuItem
+ //
+ testFontToolStripMenuItem.Image = Properties.Resources.font;
+ testFontToolStripMenuItem.Name = "testFontToolStripMenuItem";
+ testFontToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
+ testFontToolStripMenuItem.Text = "Test font";
+ testFontToolStripMenuItem.ToolTipText = "Open dialog where you can test the font with any text you type";
+ testFontToolStripMenuItem.Click += TestFont_Click;
+ //
// canvasToolStripMenuItem
//
canvasToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { ClearToolStripMenuItem, FillToolStripMenuItem, shiftUpToolStripMenuItem, shiftDownToolStripMenuItem, shiftLeftToolStripMenuItem, shiftRightToolStripMenuItem, invertToolStripMenuItem, mirrorXToolStripMenuItem, mirrorYToolStripMenuItem, applyToolStripMenuItem });
@@ -1023,6 +1050,26 @@
lblModified.Text = "Frame modified";
lblModified.Visible = false;
//
+ // dlgSavePNG
+ //
+ dlgSavePNG.DefaultExt = "png";
+ dlgSavePNG.Filter = "PNG Image|*.png;*.PNG";
+ //
+ // toolStripSeparator1
+ //
+ toolStripSeparator1.Name = "toolStripSeparator1";
+ toolStripSeparator1.Size = new System.Drawing.Size(221, 6);
+ //
+ // toolStripSeparator2
+ //
+ toolStripSeparator2.Name = "toolStripSeparator2";
+ toolStripSeparator2.Size = new System.Drawing.Size(221, 6);
+ //
+ // toolStripSeparator3
+ //
+ toolStripSeparator3.Name = "toolStripSeparator3";
+ toolStripSeparator3.Size = new System.Drawing.Size(212, 6);
+ //
// MainForm
//
AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
@@ -1157,6 +1204,12 @@
private System.Windows.Forms.Label lblSelection;
private System.Windows.Forms.ToolStripMenuItem selectAllToolStripMenuItem;
private System.Windows.Forms.Label lblModified;
+ private System.Windows.Forms.ToolStripMenuItem testFontToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem exportFontLayoutPNGToolStripMenuItem;
+ private System.Windows.Forms.SaveFileDialog dlgSavePNG;
+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
}
}
diff --git a/McBitFont/Form1.cs b/McBitFont/Form1.cs
index e3cb3ed..3977053 100644
--- a/McBitFont/Form1.cs
+++ b/McBitFont/Form1.cs
@@ -3,6 +3,7 @@ using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Drawing2D;
+using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
@@ -57,10 +58,10 @@ namespace McBitFont {
public bool monospaced = false;
private bool modified = false;
private bool prjModified = false;
- public const string version = "2.2";
+ public const string version = "2.3";
public string prjName = "Untitled";
public string prjFileName = "";
- private int codepage = 1251;
+ public int codepage = 1251;
private FrameMiniature fbuf;
private bool fbuffer = false;
private int baseline = 0;
@@ -136,7 +137,7 @@ namespace McBitFont {
tsmiCodeShift.Visible = frames.Count > 1;
CodeShiftToolStripMenuItem.Visible = frames.Count > 1;
-
+ CheckForAdd();
}
[DllImport("user32.dll")]
@@ -863,17 +864,17 @@ namespace McBitFont {
tsmiRemoveSymbol.Enabled = false;
}
//copyToolStripMenuItem.Enabled = true;
- if (ff.Equals(frames.First())) {
+ if (frames.Count > 1 && ff.Equals(frames.First())) {
removeBeforeToolStripMenuItem.Enabled = false;
removeAfterToolStripMenuItem.Enabled = true;
tsmiRemoveBefore.Enabled = false;
tsmiRemoveAfter.Enabled = true;
- } else if (ff.Equals(frames.Last())) {
+ } else if (frames.Count > 1 && ff.Equals(frames.Last())) {
removeBeforeToolStripMenuItem.Enabled = true;
removeAfterToolStripMenuItem.Enabled = false;
tsmiRemoveBefore.Enabled = true;
tsmiRemoveAfter.Enabled = false;
- } else {
+ } else if (frames.Count > 1) {
removeBeforeToolStripMenuItem.Enabled = true;
removeAfterToolStripMenuItem.Enabled = true;
tsmiRemoveBefore.Enabled = true;
@@ -932,6 +933,8 @@ namespace McBitFont {
prjFileName = filename;
prjName = Path.GetFileNameWithoutExtension(filename);
+ dlgSavePNG.FileName = prjName + ".png";
+ dlgSave.FileName = prjName + ".mbfont";
SetWindowCap();
miniList.Items[0].Selected = true;
@@ -961,7 +964,7 @@ namespace McBitFont {
MessagePackSerializer.Serialize(ms, sav);
ms.Close();
}
-
+
prjName = Path.GetFileNameWithoutExtension(filename);
prjFileName = filename;
SetModified(false, true);
@@ -1031,9 +1034,9 @@ namespace McBitFont {
}
} else {
prependSymbolToolStripMenuItem.Enabled = false;
- appendSymbolToolStripMenuItem.Enabled = false;
+ appendSymbolToolStripMenuItem.Enabled = true;
tsmiPrepensSymbol.Enabled = false;
- tsmiAppendSymbol.Enabled = false;
+ tsmiAppendSymbol.Enabled = true;
}
}
@@ -1424,5 +1427,105 @@ namespace McBitFont {
selection2.Y = dotHeight - 1;
dotPanel.Refresh();
}
+
+ private void TestFont_Click(object sender, EventArgs e) {
+ var tester = new FontTester(codepage, dotHeight, baseline, frames);
+ tester.ShowDialog();
+ }
+
+ private void ExportPNG(object sender, EventArgs e) {
+ CheckModifiedFrame();
+ CheckModifiedProject();
+
+ if (dlgSavePNG.ShowDialog() == DialogResult.OK) {
+ int pixelSize = 3;
+ int symbolMargin = 2 * pixelSize;
+ int headerHeight = 100;
+ int maxWidth = 0;
+ int i, j, v, h, x, y;
+ string s;
+
+ foreach (FrameMiniature f in frames) {
+ if (f.width > maxWidth) maxWidth = f.width;
+ }
+
+ int cellWidth = (pixelSize * maxWidth + 2 * symbolMargin);
+ int cellHeight = (pixelSize * dotHeight + 2 * symbolMargin);
+ if (cellWidth < 10) cellWidth = 10;
+ if (cellHeight < 10) cellHeight = 10;
+
+ int width = cellWidth * 16 + 17 + 50;
+ int height = cellHeight * 16 + 17 + 25 + headerHeight;
+
+ Bitmap bmp = new(width > 450 ? width : 450, height);
+ Graphics g = Graphics.FromImage(bmp);
+ g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
+ Font font = new("Consolas", 14, FontStyle.Bold);
+ Brush tb = Brushes.Black;
+
+
+ // Draw basic information
+ g.DrawString("Font project name: " + prjName, font, tb, 10, 10);
+
+ g.DrawString("Font height: " + dotHeight, font, tb, 10, 38);
+ g.DrawString("Font max width: " + maxWidth, font, tb, 10, 62);
+ g.DrawString("Symbols count: " + frames.Count, font, tb, 10, 86);
+
+ g.DrawString("First code: " + frames.First().code.ToString(), font, tb, 250, 38);
+ g.DrawString("Last code: " + frames.Last().code.ToString(), font, tb, 250, 62);
+ g.DrawString("Codepage: " + codepage.ToString(), font, tb, 250, 86);
+
+
+ // Draw grid
+ Pen p = new(Color.FromArgb(64, 0, 0, 0), 1);
+ SolidBrush b = new SolidBrush(Color.FromArgb(160, Color.Black));
+ //Brush b = Brushes.Black;
+
+ int xCapOffset = cellWidth / 2 - 8;
+ int yCapOffset = cellHeight / 2 - 10;
+ for (i = 0; i < 17; i++) {
+ x = 50 + 17 + i * cellWidth - 1;
+ y = headerHeight + 17 + 25 + i * cellHeight - 1;
+ g.DrawLine(p, 1, y, width - 1, y);
+ g.DrawLine(p, x, headerHeight + 20, x, headerHeight + height - 20);
+
+ if (i != 16) {
+ s = Convert.ToString(i, 16).ToUpper();
+ g.DrawString(s, font, b, x + xCapOffset, headerHeight + 20);
+ s = "0x" + Convert.ToString(i * 16, 16).PadLeft(2, '0').ToUpper();
+ g.DrawString(s, font, b, 10, y + yCapOffset);
+ }
+ }
+
+ // Draw symbols
+ int code;
+ List ff;
+ Rectangle rect;
+ // Cycle through grid cells
+ for (v = 0; v < 16; v++) {
+ for (h = 0; h < 16; h++) {
+ // Check if the font has a symbol with the code
+ code = 16 * v + h;
+ ff = frames.FindAll(x => x.code == code);
+ if (ff.Count == 1) {
+ x = 50 + 17 + h * cellWidth + symbolMargin;
+ y = headerHeight + 17 + 25 + v * cellHeight + symbolMargin;
+ // Cycly through symbol's pixels and draw the black ones
+ for (i = 0; i < ff[0].width; i++) {
+ for (j = 0; j < ff[0].height; j++) {
+ if (ff[0].data[i, j]) {
+ rect = new Rectangle(x + i * pixelSize, y + j * pixelSize, pixelSize, pixelSize);
+ g.FillRectangle(tb, rect);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ bmp.Save(dlgSavePNG.FileName, ImageFormat.Png);
+ }
+
+ }
}
}
diff --git a/McBitFont/Form1.resx b/McBitFont/Form1.resx
index fb11a13..5800d67 100644
--- a/McBitFont/Form1.resx
+++ b/McBitFont/Form1.resx
@@ -135,6 +135,9 @@
336, 17
+
+ 644, 17
+
diff --git a/McBitFont/ImageImporter.Designer.cs b/McBitFont/ImageImporter.Designer.cs
index ff4c113..a2d4948 100644
--- a/McBitFont/ImageImporter.Designer.cs
+++ b/McBitFont/ImageImporter.Designer.cs
@@ -377,7 +377,7 @@
Name = "ImageImporter";
ShowIcon = false;
ShowInTaskbar = false;
- StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
Text = "Import Image";
Paint += ImageImporter_Paint;
((System.ComponentModel.ISupportInitialize)pbOriginal).EndInit();
diff --git a/McBitFont/ImageImporter.resx b/McBitFont/ImageImporter.resx
index d3fcd46..75130fa 100644
--- a/McBitFont/ImageImporter.resx
+++ b/McBitFont/ImageImporter.resx
@@ -123,7 +123,4 @@
17, 17
-
- 147, 17
-
\ No newline at end of file
diff --git a/McBitFont/McBitFont.csproj b/McBitFont/McBitFont.csproj
index 591cff5..5f7f705 100644
--- a/McBitFont/McBitFont.csproj
+++ b/McBitFont/McBitFont.csproj
@@ -20,9 +20,9 @@
true
true
icon_64.ico
- 2.2.0.0
- 2.2.0.0
- $(VersionPrefix)2.2.0
+ 2.3.0.0
+ 2.3.0.0
+ $(VersionPrefix)2.3.0
Anton Mukhin
diff --git a/McBitFont/New.Designer.cs b/McBitFont/New.Designer.cs
index 9587429..f514a1d 100644
--- a/McBitFont/New.Designer.cs
+++ b/McBitFont/New.Designer.cs
@@ -23,469 +23,421 @@
/// the contents of this method with the code editor.
///
private void InitializeComponent() {
- this.components = new System.ComponentModel.Container();
- this.nudNewX = new System.Windows.Forms.NumericUpDown();
- this.nudNewY = new System.Windows.Forms.NumericUpDown();
- this.label1 = new System.Windows.Forms.Label();
- this.label2 = new System.Windows.Forms.Label();
- this.rbMono = new System.Windows.Forms.RadioButton();
- this.rbVar = new System.Windows.Forms.RadioButton();
- this.cbNotPrintable = new System.Windows.Forms.CheckBox();
- this.cbLatin = new System.Windows.Forms.CheckBox();
- this.cbExtended = new System.Windows.Forms.CheckBox();
- this.btnOK = new System.Windows.Forms.Button();
- this.btnCancel = new System.Windows.Forms.Button();
- this.cbSingle = new System.Windows.Forms.CheckBox();
- this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
- this.cbEncoding = new System.Windows.Forms.ComboBox();
- this.panel1 = new System.Windows.Forms.Panel();
- this.pbChar2 = new System.Windows.Forms.PictureBox();
- this.pbChar1 = new System.Windows.Forms.PictureBox();
- this.btnFont = new System.Windows.Forms.Button();
- this.dlgFont = new System.Windows.Forms.FontDialog();
- this.cbFontBased = new System.Windows.Forms.CheckBox();
- this.lblFont = new System.Windows.Forms.Label();
- this.nudShiftX = new System.Windows.Forms.NumericUpDown();
- this.nudShiftY = new System.Windows.Forms.NumericUpDown();
- this.lblShiftX = new System.Windows.Forms.Label();
- this.lblShiftY = new System.Windows.Forms.Label();
- this.pnlFont = new System.Windows.Forms.Panel();
- this.label4 = new System.Windows.Forms.Label();
- this.label3 = new System.Windows.Forms.Label();
- this.nudChar2 = new System.Windows.Forms.NumericUpDown();
- this.nudChar1 = new System.Windows.Forms.NumericUpDown();
- this.cbDigits = new System.Windows.Forms.CheckBox();
- ((System.ComponentModel.ISupportInitialize)(this.nudNewX)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.nudNewY)).BeginInit();
- this.panel1.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.pbChar2)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.pbChar1)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.nudShiftX)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.nudShiftY)).BeginInit();
- this.pnlFont.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.nudChar2)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.nudChar1)).BeginInit();
- this.SuspendLayout();
+ components = new System.ComponentModel.Container();
+ nudNewX = new System.Windows.Forms.NumericUpDown();
+ nudNewY = new System.Windows.Forms.NumericUpDown();
+ label1 = new System.Windows.Forms.Label();
+ label2 = new System.Windows.Forms.Label();
+ rbMono = new System.Windows.Forms.RadioButton();
+ rbVar = new System.Windows.Forms.RadioButton();
+ cbNotPrintable = new System.Windows.Forms.CheckBox();
+ cbLatin = new System.Windows.Forms.CheckBox();
+ cbExtended = new System.Windows.Forms.CheckBox();
+ btnOK = new System.Windows.Forms.Button();
+ btnCancel = new System.Windows.Forms.Button();
+ cbSingle = new System.Windows.Forms.CheckBox();
+ toolTip1 = new System.Windows.Forms.ToolTip(components);
+ cbEncoding = new System.Windows.Forms.ComboBox();
+ panel1 = new System.Windows.Forms.Panel();
+ pbChar2 = new System.Windows.Forms.PictureBox();
+ pbChar1 = new System.Windows.Forms.PictureBox();
+ btnFont = new System.Windows.Forms.Button();
+ dlgFont = new System.Windows.Forms.FontDialog();
+ cbFontBased = new System.Windows.Forms.CheckBox();
+ lblFont = new System.Windows.Forms.Label();
+ nudShiftX = new System.Windows.Forms.NumericUpDown();
+ nudShiftY = new System.Windows.Forms.NumericUpDown();
+ lblShiftX = new System.Windows.Forms.Label();
+ lblShiftY = new System.Windows.Forms.Label();
+ pnlFont = new System.Windows.Forms.Panel();
+ label4 = new System.Windows.Forms.Label();
+ label3 = new System.Windows.Forms.Label();
+ nudChar2 = new System.Windows.Forms.NumericUpDown();
+ nudChar1 = new System.Windows.Forms.NumericUpDown();
+ cbDigits = new System.Windows.Forms.CheckBox();
+ ((System.ComponentModel.ISupportInitialize)nudNewX).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)nudNewY).BeginInit();
+ panel1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)pbChar2).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)pbChar1).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)nudShiftX).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)nudShiftY).BeginInit();
+ pnlFont.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)nudChar2).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)nudChar1).BeginInit();
+ SuspendLayout();
//
// nudNewX
//
- this.nudNewX.Location = new System.Drawing.Point(68, 32);
- this.nudNewX.Maximum = new decimal(new int[] {
- 255,
- 0,
- 0,
- 0});
- this.nudNewX.Minimum = new decimal(new int[] {
- 1,
- 0,
- 0,
- 0});
- this.nudNewX.Name = "nudNewX";
- this.nudNewX.Size = new System.Drawing.Size(57, 20);
- this.nudNewX.TabIndex = 0;
- this.nudNewX.Value = new decimal(new int[] {
- 32,
- 0,
- 0,
- 0});
- this.nudNewX.ValueChanged += new System.EventHandler(this.nudNewX_ValueChanged);
- this.nudNewX.Enter += new System.EventHandler(this.nudFocus);
+ nudNewX.Location = new System.Drawing.Point(68, 32);
+ nudNewX.Maximum = new decimal(new int[] { 255, 0, 0, 0 });
+ nudNewX.Minimum = new decimal(new int[] { 1, 0, 0, 0 });
+ nudNewX.Name = "nudNewX";
+ nudNewX.Size = new System.Drawing.Size(57, 23);
+ nudNewX.TabIndex = 0;
+ nudNewX.Value = new decimal(new int[] { 32, 0, 0, 0 });
+ nudNewX.ValueChanged += nudNewX_ValueChanged;
+ nudNewX.Enter += nudFocus;
//
// nudNewY
//
- this.nudNewY.Location = new System.Drawing.Point(68, 58);
- this.nudNewY.Maximum = new decimal(new int[] {
- 255,
- 0,
- 0,
- 0});
- this.nudNewY.Minimum = new decimal(new int[] {
- 1,
- 0,
- 0,
- 0});
- this.nudNewY.Name = "nudNewY";
- this.nudNewY.Size = new System.Drawing.Size(57, 20);
- this.nudNewY.TabIndex = 1;
- this.nudNewY.Value = new decimal(new int[] {
- 32,
- 0,
- 0,
- 0});
- this.nudNewY.ValueChanged += new System.EventHandler(this.nudNewX_ValueChanged);
- this.nudNewY.Enter += new System.EventHandler(this.nudFocus);
+ nudNewY.Location = new System.Drawing.Point(68, 58);
+ nudNewY.Maximum = new decimal(new int[] { 255, 0, 0, 0 });
+ nudNewY.Minimum = new decimal(new int[] { 1, 0, 0, 0 });
+ nudNewY.Name = "nudNewY";
+ nudNewY.Size = new System.Drawing.Size(57, 23);
+ nudNewY.TabIndex = 1;
+ nudNewY.Value = new decimal(new int[] { 32, 0, 0, 0 });
+ nudNewY.ValueChanged += nudNewX_ValueChanged;
+ nudNewY.Enter += nudFocus;
//
// label1
//
- this.label1.AutoSize = true;
- this.label1.Location = new System.Drawing.Point(24, 34);
- this.label1.Name = "label1";
- this.label1.Size = new System.Drawing.Size(38, 13);
- this.label1.TabIndex = 2;
- this.label1.Text = "Width:";
- this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ label1.AutoSize = true;
+ label1.Location = new System.Drawing.Point(24, 34);
+ label1.Name = "label1";
+ label1.Size = new System.Drawing.Size(42, 15);
+ label1.TabIndex = 2;
+ label1.Text = "Width:";
+ label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// label2
//
- this.label2.AutoSize = true;
- this.label2.Location = new System.Drawing.Point(21, 60);
- this.label2.Name = "label2";
- this.label2.Size = new System.Drawing.Size(41, 13);
- this.label2.TabIndex = 3;
- this.label2.Text = "Height:";
- this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ label2.AutoSize = true;
+ label2.Location = new System.Drawing.Point(21, 60);
+ label2.Name = "label2";
+ label2.Size = new System.Drawing.Size(46, 15);
+ label2.TabIndex = 3;
+ label2.Text = "Height:";
+ label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// rbMono
//
- this.rbMono.AutoSize = true;
- this.rbMono.Checked = true;
- this.rbMono.Location = new System.Drawing.Point(24, 84);
- this.rbMono.Name = "rbMono";
- this.rbMono.Size = new System.Drawing.Size(87, 17);
- this.rbMono.TabIndex = 4;
- this.rbMono.TabStop = true;
- this.rbMono.Text = "Monospaced";
- this.rbMono.UseVisualStyleBackColor = true;
+ rbMono.AutoSize = true;
+ rbMono.Checked = true;
+ rbMono.Location = new System.Drawing.Point(24, 84);
+ rbMono.Name = "rbMono";
+ rbMono.Size = new System.Drawing.Size(94, 19);
+ rbMono.TabIndex = 4;
+ rbMono.TabStop = true;
+ rbMono.Text = "Monospaced";
+ rbMono.UseVisualStyleBackColor = true;
//
// rbVar
//
- this.rbVar.AutoSize = true;
- this.rbVar.Location = new System.Drawing.Point(24, 107);
- this.rbVar.Name = "rbVar";
- this.rbVar.Size = new System.Drawing.Size(91, 17);
- this.rbVar.TabIndex = 5;
- this.rbVar.Text = "Variable width";
- this.rbVar.UseVisualStyleBackColor = true;
+ rbVar.AutoSize = true;
+ rbVar.Location = new System.Drawing.Point(24, 107);
+ rbVar.Name = "rbVar";
+ rbVar.Size = new System.Drawing.Size(99, 19);
+ rbVar.TabIndex = 5;
+ rbVar.Text = "Variable width";
+ rbVar.UseVisualStyleBackColor = true;
//
// cbNotPrintable
//
- this.cbNotPrintable.AutoSize = true;
- this.cbNotPrintable.Location = new System.Drawing.Point(140, 77);
- this.cbNotPrintable.Name = "cbNotPrintable";
- this.cbNotPrintable.Size = new System.Drawing.Size(116, 17);
- this.cbNotPrintable.TabIndex = 7;
- this.cbNotPrintable.Text = "0-31 (Not printable)";
- this.cbNotPrintable.UseVisualStyleBackColor = true;
- this.cbNotPrintable.CheckedChanged += new System.EventHandler(this.checkboxChanged);
+ cbNotPrintable.AutoSize = true;
+ cbNotPrintable.Location = new System.Drawing.Point(140, 77);
+ cbNotPrintable.Name = "cbNotPrintable";
+ cbNotPrintable.Size = new System.Drawing.Size(130, 19);
+ cbNotPrintable.TabIndex = 7;
+ cbNotPrintable.Text = "0-31 (Not printable)";
+ cbNotPrintable.UseVisualStyleBackColor = true;
+ cbNotPrintable.CheckedChanged += checkboxChanged;
//
// cbLatin
//
- this.cbLatin.AutoSize = true;
- this.cbLatin.Checked = true;
- this.cbLatin.CheckState = System.Windows.Forms.CheckState.Checked;
- this.cbLatin.Location = new System.Drawing.Point(140, 100);
- this.cbLatin.Name = "cbLatin";
- this.cbLatin.Size = new System.Drawing.Size(91, 17);
- this.cbLatin.TabIndex = 8;
- this.cbLatin.Text = "32-127 (Latin)";
- this.cbLatin.UseVisualStyleBackColor = true;
- this.cbLatin.CheckedChanged += new System.EventHandler(this.checkboxChanged);
+ cbLatin.AutoSize = true;
+ cbLatin.Checked = true;
+ cbLatin.CheckState = System.Windows.Forms.CheckState.Checked;
+ cbLatin.Location = new System.Drawing.Point(140, 100);
+ cbLatin.Name = "cbLatin";
+ cbLatin.Size = new System.Drawing.Size(98, 19);
+ cbLatin.TabIndex = 8;
+ cbLatin.Text = "32-127 (Latin)";
+ cbLatin.UseVisualStyleBackColor = true;
+ cbLatin.CheckedChanged += checkboxChanged;
//
// cbExtended
//
- this.cbExtended.AutoSize = true;
- this.cbExtended.Location = new System.Drawing.Point(140, 123);
- this.cbExtended.Name = "cbExtended";
- this.cbExtended.Size = new System.Drawing.Size(119, 17);
- this.cbExtended.TabIndex = 9;
- this.cbExtended.Text = "128-255 (Extended)";
- this.cbExtended.UseVisualStyleBackColor = true;
- this.cbExtended.CheckedChanged += new System.EventHandler(this.checkboxChanged);
+ cbExtended.AutoSize = true;
+ cbExtended.Location = new System.Drawing.Point(140, 123);
+ cbExtended.Name = "cbExtended";
+ cbExtended.Size = new System.Drawing.Size(126, 19);
+ cbExtended.TabIndex = 9;
+ cbExtended.Text = "128-255 (Extended)";
+ cbExtended.UseVisualStyleBackColor = true;
+ cbExtended.CheckedChanged += checkboxChanged;
//
// btnOK
//
- this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
- this.btnOK.Location = new System.Drawing.Point(47, 178);
- this.btnOK.Name = "btnOK";
- this.btnOK.Size = new System.Drawing.Size(75, 23);
- this.btnOK.TabIndex = 10;
- this.btnOK.Text = "OK";
- this.btnOK.UseVisualStyleBackColor = true;
- this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
+ btnOK.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left;
+ btnOK.Location = new System.Drawing.Point(47, 178);
+ btnOK.Name = "btnOK";
+ btnOK.Size = new System.Drawing.Size(75, 23);
+ btnOK.TabIndex = 10;
+ btnOK.Text = "OK";
+ btnOK.UseVisualStyleBackColor = true;
+ btnOK.Click += btnOK_Click;
//
// btnCancel
//
- this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
- this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
- this.btnCancel.Location = new System.Drawing.Point(140, 178);
- this.btnCancel.Name = "btnCancel";
- this.btnCancel.Size = new System.Drawing.Size(75, 23);
- this.btnCancel.TabIndex = 11;
- this.btnCancel.Text = "Cancel";
- this.btnCancel.UseVisualStyleBackColor = true;
- this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
+ btnCancel.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left;
+ btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+ btnCancel.Location = new System.Drawing.Point(140, 178);
+ btnCancel.Name = "btnCancel";
+ btnCancel.Size = new System.Drawing.Size(75, 23);
+ btnCancel.TabIndex = 11;
+ btnCancel.Text = "Cancel";
+ btnCancel.UseVisualStyleBackColor = true;
+ btnCancel.Click += btnCancel_Click;
//
// cbSingle
//
- this.cbSingle.AutoSize = true;
- this.cbSingle.Location = new System.Drawing.Point(140, 31);
- this.cbSingle.Name = "cbSingle";
- this.cbSingle.Size = new System.Drawing.Size(84, 17);
- this.cbSingle.TabIndex = 12;
- this.cbSingle.Text = "Single frame";
- this.cbSingle.UseVisualStyleBackColor = true;
- this.cbSingle.CheckedChanged += new System.EventHandler(this.checkboxChanged);
+ cbSingle.AutoSize = true;
+ cbSingle.Location = new System.Drawing.Point(140, 31);
+ cbSingle.Name = "cbSingle";
+ cbSingle.Size = new System.Drawing.Size(92, 19);
+ cbSingle.TabIndex = 12;
+ cbSingle.Text = "Single frame";
+ cbSingle.UseVisualStyleBackColor = true;
+ cbSingle.CheckedChanged += checkboxChanged;
//
// toolTip1
//
- this.toolTip1.AutoPopDelay = 10000;
- this.toolTip1.InitialDelay = 500;
- this.toolTip1.ReshowDelay = 100;
- this.toolTip1.ToolTipTitle = "Info";
+ toolTip1.AutoPopDelay = 10000;
+ toolTip1.InitialDelay = 500;
+ toolTip1.ReshowDelay = 100;
+ toolTip1.ToolTipTitle = "Info";
//
// cbEncoding
//
- this.cbEncoding.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
- this.cbEncoding.Enabled = false;
- this.cbEncoding.FormattingEnabled = true;
- this.cbEncoding.Location = new System.Drawing.Point(140, 146);
- this.cbEncoding.Name = "cbEncoding";
- this.cbEncoding.Size = new System.Drawing.Size(121, 21);
- this.cbEncoding.TabIndex = 13;
+ cbEncoding.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ cbEncoding.Enabled = false;
+ cbEncoding.FormattingEnabled = true;
+ cbEncoding.Location = new System.Drawing.Point(140, 146);
+ cbEncoding.Name = "cbEncoding";
+ cbEncoding.Size = new System.Drawing.Size(121, 23);
+ cbEncoding.TabIndex = 13;
//
// panel1
//
- this.panel1.Controls.Add(this.pbChar2);
- this.panel1.Controls.Add(this.pbChar1);
- this.panel1.Location = new System.Drawing.Point(6, 24);
- this.panel1.Name = "panel1";
- this.panel1.Size = new System.Drawing.Size(200, 124);
- this.panel1.TabIndex = 14;
+ panel1.Controls.Add(pbChar2);
+ panel1.Controls.Add(pbChar1);
+ panel1.Location = new System.Drawing.Point(6, 24);
+ panel1.Name = "panel1";
+ panel1.Size = new System.Drawing.Size(200, 124);
+ panel1.TabIndex = 14;
//
// pbChar2
//
- this.pbChar2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.pbChar2.Location = new System.Drawing.Point(100, 0);
- this.pbChar2.Name = "pbChar2";
- this.pbChar2.Size = new System.Drawing.Size(100, 124);
- this.pbChar2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
- this.pbChar2.TabIndex = 1;
- this.pbChar2.TabStop = false;
+ pbChar2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ pbChar2.Location = new System.Drawing.Point(100, 0);
+ pbChar2.Name = "pbChar2";
+ pbChar2.Size = new System.Drawing.Size(100, 124);
+ pbChar2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
+ pbChar2.TabIndex = 1;
+ pbChar2.TabStop = false;
//
// pbChar1
//
- this.pbChar1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.pbChar1.Location = new System.Drawing.Point(0, 0);
- this.pbChar1.Name = "pbChar1";
- this.pbChar1.Size = new System.Drawing.Size(100, 124);
- this.pbChar1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
- this.pbChar1.TabIndex = 0;
- this.pbChar1.TabStop = false;
+ pbChar1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ pbChar1.Location = new System.Drawing.Point(0, 0);
+ pbChar1.Name = "pbChar1";
+ pbChar1.Size = new System.Drawing.Size(100, 124);
+ pbChar1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
+ pbChar1.TabIndex = 0;
+ pbChar1.TabStop = false;
//
// btnFont
//
- this.btnFont.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
- this.btnFont.Location = new System.Drawing.Point(6, 178);
- this.btnFont.Name = "btnFont";
- this.btnFont.Size = new System.Drawing.Size(71, 23);
- this.btnFont.TabIndex = 15;
- this.btnFont.Text = "Font ...";
- this.btnFont.UseVisualStyleBackColor = true;
- this.btnFont.Click += new System.EventHandler(this.btnFont_Click);
+ btnFont.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left;
+ btnFont.Location = new System.Drawing.Point(6, 178);
+ btnFont.Name = "btnFont";
+ btnFont.Size = new System.Drawing.Size(71, 23);
+ btnFont.TabIndex = 15;
+ btnFont.Text = "Font ...";
+ btnFont.UseVisualStyleBackColor = true;
+ btnFont.Click += btnFont_Click;
//
// dlgFont
//
- this.dlgFont.Font = new System.Drawing.Font("Courier New", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
- this.dlgFont.ShowEffects = false;
+ dlgFont.Font = new System.Drawing.Font("Courier New", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, 204);
+ dlgFont.ShowEffects = false;
//
// cbFontBased
//
- this.cbFontBased.AutoSize = true;
- this.cbFontBased.Location = new System.Drawing.Point(24, 130);
- this.cbFontBased.Name = "cbFontBased";
- this.cbFontBased.Size = new System.Drawing.Size(101, 17);
- this.cbFontBased.TabIndex = 16;
- this.cbFontBased.Text = "Based on a font";
- this.cbFontBased.UseVisualStyleBackColor = true;
- this.cbFontBased.CheckedChanged += new System.EventHandler(this.checkboxChanged);
+ cbFontBased.AutoSize = true;
+ cbFontBased.Location = new System.Drawing.Point(24, 130);
+ cbFontBased.Name = "cbFontBased";
+ cbFontBased.Size = new System.Drawing.Size(108, 19);
+ cbFontBased.TabIndex = 16;
+ cbFontBased.Text = "Based on a font";
+ cbFontBased.UseVisualStyleBackColor = true;
+ cbFontBased.CheckedChanged += checkboxChanged;
//
// lblFont
//
- this.lblFont.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
- this.lblFont.Location = new System.Drawing.Point(83, 183);
- this.lblFont.Name = "lblFont";
- this.lblFont.Size = new System.Drawing.Size(123, 18);
- this.lblFont.TabIndex = 17;
- this.lblFont.Text = "font";
+ lblFont.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left;
+ lblFont.Location = new System.Drawing.Point(83, 183);
+ lblFont.Name = "lblFont";
+ lblFont.Size = new System.Drawing.Size(123, 18);
+ lblFont.TabIndex = 17;
+ lblFont.Text = "font";
//
// nudShiftX
//
- this.nudShiftX.Location = new System.Drawing.Point(61, 2);
- this.nudShiftX.Minimum = new decimal(new int[] {
- 100,
- 0,
- 0,
- -2147483648});
- this.nudShiftX.Name = "nudShiftX";
- this.nudShiftX.Size = new System.Drawing.Size(45, 20);
- this.nudShiftX.TabIndex = 18;
- this.nudShiftX.ValueChanged += new System.EventHandler(this.nudNewX_ValueChanged);
+ nudShiftX.Location = new System.Drawing.Point(61, 2);
+ nudShiftX.Minimum = new decimal(new int[] { 100, 0, 0, int.MinValue });
+ nudShiftX.Name = "nudShiftX";
+ nudShiftX.Size = new System.Drawing.Size(45, 23);
+ nudShiftX.TabIndex = 18;
+ nudShiftX.ValueChanged += nudNewX_ValueChanged;
//
// nudShiftY
//
- this.nudShiftY.Location = new System.Drawing.Point(161, 2);
- this.nudShiftY.Minimum = new decimal(new int[] {
- 100,
- 0,
- 0,
- -2147483648});
- this.nudShiftY.Name = "nudShiftY";
- this.nudShiftY.Size = new System.Drawing.Size(45, 20);
- this.nudShiftY.TabIndex = 19;
- this.nudShiftY.ValueChanged += new System.EventHandler(this.nudNewX_ValueChanged);
+ nudShiftY.Location = new System.Drawing.Point(161, 2);
+ nudShiftY.Minimum = new decimal(new int[] { 100, 0, 0, int.MinValue });
+ nudShiftY.Name = "nudShiftY";
+ nudShiftY.Size = new System.Drawing.Size(45, 23);
+ nudShiftY.TabIndex = 19;
+ nudShiftY.ValueChanged += nudNewX_ValueChanged;
//
// lblShiftX
//
- this.lblShiftX.AutoSize = true;
- this.lblShiftX.Location = new System.Drawing.Point(14, 4);
- this.lblShiftX.Name = "lblShiftX";
- this.lblShiftX.Size = new System.Drawing.Size(41, 13);
- this.lblShiftX.TabIndex = 20;
- this.lblShiftX.Text = "Shift X:";
- this.lblShiftX.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ lblShiftX.AutoSize = true;
+ lblShiftX.Location = new System.Drawing.Point(14, 4);
+ lblShiftX.Name = "lblShiftX";
+ lblShiftX.Size = new System.Drawing.Size(44, 15);
+ lblShiftX.TabIndex = 20;
+ lblShiftX.Text = "Shift X:";
+ lblShiftX.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// lblShiftY
//
- this.lblShiftY.AutoSize = true;
- this.lblShiftY.Location = new System.Drawing.Point(114, 4);
- this.lblShiftY.Name = "lblShiftY";
- this.lblShiftY.Size = new System.Drawing.Size(41, 13);
- this.lblShiftY.TabIndex = 21;
- this.lblShiftY.Text = "Shift Y:";
- this.lblShiftY.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ lblShiftY.AutoSize = true;
+ lblShiftY.Location = new System.Drawing.Point(114, 4);
+ lblShiftY.Name = "lblShiftY";
+ lblShiftY.Size = new System.Drawing.Size(44, 15);
+ lblShiftY.TabIndex = 21;
+ lblShiftY.Text = "Shift Y:";
+ lblShiftY.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// pnlFont
//
- this.pnlFont.Controls.Add(this.label4);
- this.pnlFont.Controls.Add(this.label3);
- this.pnlFont.Controls.Add(this.nudChar2);
- this.pnlFont.Controls.Add(this.nudChar1);
- this.pnlFont.Controls.Add(this.lblShiftX);
- this.pnlFont.Controls.Add(this.lblShiftY);
- this.pnlFont.Controls.Add(this.panel1);
- this.pnlFont.Controls.Add(this.btnFont);
- this.pnlFont.Controls.Add(this.nudShiftY);
- this.pnlFont.Controls.Add(this.lblFont);
- this.pnlFont.Controls.Add(this.nudShiftX);
- this.pnlFont.Dock = System.Windows.Forms.DockStyle.Right;
- this.pnlFont.Location = new System.Drawing.Point(270, 0);
- this.pnlFont.Name = "pnlFont";
- this.pnlFont.Size = new System.Drawing.Size(214, 211);
- this.pnlFont.TabIndex = 22;
- this.pnlFont.Visible = false;
+ pnlFont.Controls.Add(label4);
+ pnlFont.Controls.Add(label3);
+ pnlFont.Controls.Add(nudChar2);
+ pnlFont.Controls.Add(nudChar1);
+ pnlFont.Controls.Add(lblShiftX);
+ pnlFont.Controls.Add(lblShiftY);
+ pnlFont.Controls.Add(panel1);
+ pnlFont.Controls.Add(btnFont);
+ pnlFont.Controls.Add(nudShiftY);
+ pnlFont.Controls.Add(lblFont);
+ pnlFont.Controls.Add(nudShiftX);
+ pnlFont.Dock = System.Windows.Forms.DockStyle.Right;
+ pnlFont.Location = new System.Drawing.Point(270, 0);
+ pnlFont.Name = "pnlFont";
+ pnlFont.Size = new System.Drawing.Size(214, 211);
+ pnlFont.TabIndex = 22;
+ pnlFont.Visible = false;
//
// label4
//
- this.label4.AutoSize = true;
- this.label4.Location = new System.Drawing.Point(112, 152);
- this.label4.Name = "label4";
- this.label4.Size = new System.Drawing.Size(45, 13);
- this.label4.TabIndex = 25;
- this.label4.Text = "Sample:";
- this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ label4.AutoSize = true;
+ label4.Location = new System.Drawing.Point(112, 152);
+ label4.Name = "label4";
+ label4.Size = new System.Drawing.Size(49, 15);
+ label4.TabIndex = 25;
+ label4.Text = "Sample:";
+ label4.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// label3
//
- this.label3.AutoSize = true;
- this.label3.Location = new System.Drawing.Point(14, 152);
- this.label3.Name = "label3";
- this.label3.Size = new System.Drawing.Size(45, 13);
- this.label3.TabIndex = 24;
- this.label3.Text = "Sample:";
- this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ label3.AutoSize = true;
+ label3.Location = new System.Drawing.Point(14, 152);
+ label3.Name = "label3";
+ label3.Size = new System.Drawing.Size(49, 15);
+ label3.TabIndex = 24;
+ label3.Text = "Sample:";
+ label3.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// nudChar2
//
- this.nudChar2.Location = new System.Drawing.Point(161, 149);
- this.nudChar2.Maximum = new decimal(new int[] {
- 255,
- 0,
- 0,
- 0});
- this.nudChar2.Name = "nudChar2";
- this.nudChar2.Size = new System.Drawing.Size(45, 20);
- this.nudChar2.TabIndex = 23;
- this.nudChar2.Value = new decimal(new int[] {
- 97,
- 0,
- 0,
- 0});
- this.nudChar2.ValueChanged += new System.EventHandler(this.nudNewX_ValueChanged);
+ nudChar2.Location = new System.Drawing.Point(161, 149);
+ nudChar2.Maximum = new decimal(new int[] { 255, 0, 0, 0 });
+ nudChar2.Name = "nudChar2";
+ nudChar2.Size = new System.Drawing.Size(45, 23);
+ nudChar2.TabIndex = 23;
+ nudChar2.Value = new decimal(new int[] { 97, 0, 0, 0 });
+ nudChar2.ValueChanged += nudNewX_ValueChanged;
//
// nudChar1
//
- this.nudChar1.Location = new System.Drawing.Point(61, 149);
- this.nudChar1.Maximum = new decimal(new int[] {
- 255,
- 0,
- 0,
- 0});
- this.nudChar1.Name = "nudChar1";
- this.nudChar1.Size = new System.Drawing.Size(45, 20);
- this.nudChar1.TabIndex = 22;
- this.nudChar1.Value = new decimal(new int[] {
- 65,
- 0,
- 0,
- 0});
- this.nudChar1.ValueChanged += new System.EventHandler(this.nudNewX_ValueChanged);
+ nudChar1.Location = new System.Drawing.Point(61, 149);
+ nudChar1.Maximum = new decimal(new int[] { 255, 0, 0, 0 });
+ nudChar1.Name = "nudChar1";
+ nudChar1.Size = new System.Drawing.Size(45, 23);
+ nudChar1.TabIndex = 22;
+ nudChar1.Value = new decimal(new int[] { 65, 0, 0, 0 });
+ nudChar1.ValueChanged += nudNewX_ValueChanged;
//
// cbDigits
//
- this.cbDigits.AutoSize = true;
- this.cbDigits.Location = new System.Drawing.Point(140, 54);
- this.cbDigits.Name = "cbDigits";
- this.cbDigits.Size = new System.Drawing.Size(74, 17);
- this.cbDigits.TabIndex = 23;
- this.cbDigits.Text = "Digits only";
- this.cbDigits.UseVisualStyleBackColor = true;
- this.cbDigits.CheckedChanged += new System.EventHandler(this.checkboxChanged);
+ cbDigits.AutoSize = true;
+ cbDigits.Location = new System.Drawing.Point(140, 54);
+ cbDigits.Name = "cbDigits";
+ cbDigits.Size = new System.Drawing.Size(82, 19);
+ cbDigits.TabIndex = 23;
+ cbDigits.Text = "Digits only";
+ cbDigits.UseVisualStyleBackColor = true;
+ cbDigits.CheckedChanged += checkboxChanged;
//
// New
//
- this.AcceptButton = this.btnOK;
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
- this.CancelButton = this.btnCancel;
- this.ClientSize = new System.Drawing.Size(484, 211);
- this.Controls.Add(this.cbDigits);
- this.Controls.Add(this.pnlFont);
- this.Controls.Add(this.cbFontBased);
- this.Controls.Add(this.cbEncoding);
- this.Controls.Add(this.cbSingle);
- this.Controls.Add(this.btnCancel);
- this.Controls.Add(this.btnOK);
- this.Controls.Add(this.cbExtended);
- this.Controls.Add(this.cbLatin);
- this.Controls.Add(this.cbNotPrintable);
- this.Controls.Add(this.rbVar);
- this.Controls.Add(this.rbMono);
- this.Controls.Add(this.label2);
- this.Controls.Add(this.label1);
- this.Controls.Add(this.nudNewY);
- this.Controls.Add(this.nudNewX);
- this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
- this.MaximizeBox = false;
- this.MinimizeBox = false;
- this.MinimumSize = new System.Drawing.Size(300, 220);
- this.Name = "New";
- this.ShowIcon = false;
- this.ShowInTaskbar = false;
- this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
- this.Text = "New";
- this.Load += new System.EventHandler(this.New_Load);
- ((System.ComponentModel.ISupportInitialize)(this.nudNewX)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.nudNewY)).EndInit();
- this.panel1.ResumeLayout(false);
- ((System.ComponentModel.ISupportInitialize)(this.pbChar2)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.pbChar1)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.nudShiftX)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.nudShiftY)).EndInit();
- this.pnlFont.ResumeLayout(false);
- this.pnlFont.PerformLayout();
- ((System.ComponentModel.ISupportInitialize)(this.nudChar2)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.nudChar1)).EndInit();
- this.ResumeLayout(false);
- this.PerformLayout();
+ AcceptButton = btnOK;
+ AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
+ CancelButton = btnCancel;
+ ClientSize = new System.Drawing.Size(484, 211);
+ Controls.Add(cbDigits);
+ Controls.Add(pnlFont);
+ Controls.Add(cbFontBased);
+ Controls.Add(cbEncoding);
+ Controls.Add(cbSingle);
+ Controls.Add(btnCancel);
+ Controls.Add(btnOK);
+ Controls.Add(cbExtended);
+ Controls.Add(cbLatin);
+ Controls.Add(cbNotPrintable);
+ Controls.Add(rbVar);
+ Controls.Add(rbMono);
+ Controls.Add(label2);
+ Controls.Add(label1);
+ Controls.Add(nudNewY);
+ Controls.Add(nudNewX);
+ FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
+ MaximizeBox = false;
+ MinimizeBox = false;
+ MinimumSize = new System.Drawing.Size(300, 220);
+ Name = "New";
+ ShowIcon = false;
+ ShowInTaskbar = false;
+ StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+ Text = "New";
+ Load += New_Load;
+ ((System.ComponentModel.ISupportInitialize)nudNewX).EndInit();
+ ((System.ComponentModel.ISupportInitialize)nudNewY).EndInit();
+ panel1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)pbChar2).EndInit();
+ ((System.ComponentModel.ISupportInitialize)pbChar1).EndInit();
+ ((System.ComponentModel.ISupportInitialize)nudShiftX).EndInit();
+ ((System.ComponentModel.ISupportInitialize)nudShiftY).EndInit();
+ pnlFont.ResumeLayout(false);
+ pnlFont.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)nudChar2).EndInit();
+ ((System.ComponentModel.ISupportInitialize)nudChar1).EndInit();
+ ResumeLayout(false);
+ PerformLayout();
}
diff --git a/McBitFont/New.resx b/McBitFont/New.resx
index 5f989c5..4baa590 100644
--- a/McBitFont/New.resx
+++ b/McBitFont/New.resx
@@ -1,17 +1,17 @@
-
diff --git a/McBitFont/Properties/Resources.Designer.cs b/McBitFont/Properties/Resources.Designer.cs
index 4f5dce3..99698dd 100644
--- a/McBitFont/Properties/Resources.Designer.cs
+++ b/McBitFont/Properties/Resources.Designer.cs
@@ -270,6 +270,16 @@ namespace McBitFont.Properties {
}
}
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap font {
+ get {
+ object obj = ResourceManager.GetObject("font", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
@@ -300,6 +310,16 @@ namespace McBitFont.Properties {
}
}
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap picture_go {
+ get {
+ object obj = ResourceManager.GetObject("picture_go", 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 caf2781..a99b88d 100644
--- a/McBitFont/Properties/Resources.resx
+++ b/McBitFont/Properties/Resources.resx
@@ -136,6 +136,9 @@
..\Resources\Famfamfam-Silk-Page-copy.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Resources\font.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
..\Resources\arrow_inout.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
@@ -223,10 +226,13 @@
..\Resources\undo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- ..\Resources\icon_64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
..\Resources\arrow_out.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Resources\icon_64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\picture_go.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/font.png b/McBitFont/Resources/font.png
new file mode 100644
index 0000000..b7960db
Binary files /dev/null and b/McBitFont/Resources/font.png differ
diff --git a/McBitFont/Resources/picture_go.png b/McBitFont/Resources/picture_go.png
new file mode 100644
index 0000000..27c63c5
Binary files /dev/null and b/McBitFont/Resources/picture_go.png differ
diff --git a/README.md b/README.md
index b2a4122..70829fa 100644
--- a/README.md
+++ b/README.md
@@ -37,6 +37,10 @@ New project dialog

+Font test dialog
+
+
+
Export dialog

@@ -48,3 +52,7 @@ Import Image dialog
Code Shift dialog

+
+Font PNG export example
+
+
diff --git a/TODO.txt b/TODO.txt
index 2ef9d56..4e808ca 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -1,15 +1,10 @@
Application:
-V Move Select and Baseline buttons right
-V Display RectSelection width and width
-V Indicate modified project by adding "*" to window caption
+- Consider migrating to WPF in order to make DPI aware UI
Functionality:
-V Copy/Paste should be aware of rectangle selection
-V Select All function
-V Select and Select All shortcuts
+V Allow to add frames to Single-frame "fonts"
+V Type a string to see the result (test the font)
+V Export image with All characers table
Bugs:
-V EncodingProvider hotfix
-V Check if frame changed before exit application
-V Hostory does not record pastes from clipboard
-V Undo/Redo menu availability recalculation does not happen sometimes
+- In some cases after switching to a symbol dotPanel mouse move causes "Out of range" exception (history.Pre after width change?)
diff --git a/examples/Font_3x3_mono_Latin.mbfont b/examples/Font_3x3_mono_Latin.mbfont
new file mode 100644
index 0000000..98444f3
Binary files /dev/null and b/examples/Font_3x3_mono_Latin.mbfont differ
diff --git a/examples/Font_3x5_Latin.mbfont b/examples/Font_3x5_Latin.mbfont
new file mode 100644
index 0000000..4fbc854
Binary files /dev/null and b/examples/Font_3x5_Latin.mbfont differ
diff --git a/examples/Font_4x6_vw.mbfont b/examples/Font_4x6_vw.mbfont
new file mode 100644
index 0000000..6ba6410
Binary files /dev/null and b/examples/Font_4x6_vw.mbfont differ
diff --git a/examples/Font_9x17_Alagard_cyr_vw.mbfont b/examples/Font_9x17_Alagard_cyr_vw.mbfont
new file mode 100644
index 0000000..a180d29
Binary files /dev/null and b/examples/Font_9x17_Alagard_cyr_vw.mbfont differ
diff --git a/examples/Font_Minecraft_Rus_5x7_vw.mbfont b/examples/Font_Minecraft_Rus_5x7_vw.mbfont
new file mode 100644
index 0000000..0a05b5e
Binary files /dev/null and b/examples/Font_Minecraft_Rus_5x7_vw.mbfont differ
diff --git a/icons/famfamfam/font.png b/icons/famfamfam/font.png
new file mode 100644
index 0000000..b7960db
Binary files /dev/null and b/icons/famfamfam/font.png differ
diff --git a/icons/famfamfam/picture_go.png b/icons/famfamfam/picture_go.png
new file mode 100644
index 0000000..27c63c5
Binary files /dev/null and b/icons/famfamfam/picture_go.png differ
diff --git a/images/Font_Minecraft_Rus_5x7_vw.png b/images/Font_Minecraft_Rus_5x7_vw.png
new file mode 100644
index 0000000..e7ef398
Binary files /dev/null and b/images/Font_Minecraft_Rus_5x7_vw.png differ
diff --git a/images/Screenshot_Font-tester.png b/images/Screenshot_Font-tester.png
new file mode 100644
index 0000000..18822f6
Binary files /dev/null and b/images/Screenshot_Font-tester.png differ