TODO features:
- Custom cursor showing painting size - Alt-Scroll to change painting size
This commit is contained in:
105
McBitFont/Form1.Designer.cs
generated
105
McBitFont/Form1.Designer.cs
generated
@@ -28,8 +28,8 @@
|
|||||||
dotPanel = new System.Windows.Forms.Panel();
|
dotPanel = new System.Windows.Forms.Panel();
|
||||||
nudX = new System.Windows.Forms.NumericUpDown();
|
nudX = new System.Windows.Forms.NumericUpDown();
|
||||||
nudY = new System.Windows.Forms.NumericUpDown();
|
nudY = new System.Windows.Forms.NumericUpDown();
|
||||||
label1 = new System.Windows.Forms.Label();
|
lblWidth = new System.Windows.Forms.Label();
|
||||||
label2 = new System.Windows.Forms.Label();
|
lblHeight = new System.Windows.Forms.Label();
|
||||||
lblType = new System.Windows.Forms.Label();
|
lblType = new System.Windows.Forms.Label();
|
||||||
cbZoom = new System.Windows.Forms.ComboBox();
|
cbZoom = new System.Windows.Forms.ComboBox();
|
||||||
label4 = new System.Windows.Forms.Label();
|
label4 = new System.Windows.Forms.Label();
|
||||||
@@ -113,18 +113,21 @@
|
|||||||
chkTopSide = new System.Windows.Forms.CheckBox();
|
chkTopSide = new System.Windows.Forms.CheckBox();
|
||||||
chkHexCodes = new System.Windows.Forms.CheckBox();
|
chkHexCodes = new System.Windows.Forms.CheckBox();
|
||||||
chkRectSelect = new System.Windows.Forms.CheckBox();
|
chkRectSelect = new System.Windows.Forms.CheckBox();
|
||||||
|
nudBrush = new System.Windows.Forms.NumericUpDown();
|
||||||
label3 = new System.Windows.Forms.Label();
|
label3 = new System.Windows.Forms.Label();
|
||||||
lblSelectionLabel = new System.Windows.Forms.Label();
|
lblSelectionLabel = new System.Windows.Forms.Label();
|
||||||
lblSelection = new System.Windows.Forms.Label();
|
lblSelection = new System.Windows.Forms.Label();
|
||||||
lblModified = new System.Windows.Forms.Label();
|
lblModified = new System.Windows.Forms.Label();
|
||||||
dlgSavePNG = new System.Windows.Forms.SaveFileDialog();
|
dlgSavePNG = new System.Windows.Forms.SaveFileDialog();
|
||||||
pnlRightButtons = new System.Windows.Forms.Panel();
|
pnlRightButtons = new System.Windows.Forms.Panel();
|
||||||
|
lblBrush = new System.Windows.Forms.Label();
|
||||||
pnlInfo = new System.Windows.Forms.Panel();
|
pnlInfo = new System.Windows.Forms.Panel();
|
||||||
((System.ComponentModel.ISupportInitialize)nudX).BeginInit();
|
((System.ComponentModel.ISupportInitialize)nudX).BeginInit();
|
||||||
((System.ComponentModel.ISupportInitialize)nudY).BeginInit();
|
((System.ComponentModel.ISupportInitialize)nudY).BeginInit();
|
||||||
panel1.SuspendLayout();
|
panel1.SuspendLayout();
|
||||||
cmMinilist.SuspendLayout();
|
cmMinilist.SuspendLayout();
|
||||||
menuStrip1.SuspendLayout();
|
menuStrip1.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)nudBrush).BeginInit();
|
||||||
pnlRightButtons.SuspendLayout();
|
pnlRightButtons.SuspendLayout();
|
||||||
pnlInfo.SuspendLayout();
|
pnlInfo.SuspendLayout();
|
||||||
SuspendLayout();
|
SuspendLayout();
|
||||||
@@ -146,7 +149,7 @@
|
|||||||
//
|
//
|
||||||
// nudX
|
// nudX
|
||||||
//
|
//
|
||||||
nudX.Location = new System.Drawing.Point(59, 8);
|
nudX.Location = new System.Drawing.Point(59, 3);
|
||||||
nudX.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
nudX.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
||||||
nudX.Maximum = new decimal(new int[] { 255, 0, 0, 0 });
|
nudX.Maximum = new decimal(new int[] { 255, 0, 0, 0 });
|
||||||
nudX.Name = "nudX";
|
nudX.Name = "nudX";
|
||||||
@@ -158,7 +161,7 @@
|
|||||||
//
|
//
|
||||||
// nudY
|
// nudY
|
||||||
//
|
//
|
||||||
nudY.Location = new System.Drawing.Point(59, 34);
|
nudY.Location = new System.Drawing.Point(59, 27);
|
||||||
nudY.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
nudY.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
||||||
nudY.Maximum = new decimal(new int[] { 255, 0, 0, 0 });
|
nudY.Maximum = new decimal(new int[] { 255, 0, 0, 0 });
|
||||||
nudY.Minimum = new decimal(new int[] { 1, 0, 0, 0 });
|
nudY.Minimum = new decimal(new int[] { 1, 0, 0, 0 });
|
||||||
@@ -169,25 +172,25 @@
|
|||||||
nudY.Value = new decimal(new int[] { 32, 0, 0, 0 });
|
nudY.Value = new decimal(new int[] { 32, 0, 0, 0 });
|
||||||
nudY.ValueChanged += nudY_ValueChanged;
|
nudY.ValueChanged += nudY_ValueChanged;
|
||||||
//
|
//
|
||||||
// label1
|
// lblWidth
|
||||||
//
|
//
|
||||||
label1.AutoSize = true;
|
lblWidth.AutoSize = true;
|
||||||
label1.Location = new System.Drawing.Point(8, 10);
|
lblWidth.Location = new System.Drawing.Point(8, 5);
|
||||||
label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
lblWidth.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||||
label1.Name = "label1";
|
lblWidth.Name = "lblWidth";
|
||||||
label1.Size = new System.Drawing.Size(42, 15);
|
lblWidth.Size = new System.Drawing.Size(42, 15);
|
||||||
label1.TabIndex = 3;
|
lblWidth.TabIndex = 3;
|
||||||
label1.Text = "Width:";
|
lblWidth.Text = "Width:";
|
||||||
//
|
//
|
||||||
// label2
|
// lblHeight
|
||||||
//
|
//
|
||||||
label2.AutoSize = true;
|
lblHeight.AutoSize = true;
|
||||||
label2.Location = new System.Drawing.Point(4, 36);
|
lblHeight.Location = new System.Drawing.Point(4, 29);
|
||||||
label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
lblHeight.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||||
label2.Name = "label2";
|
lblHeight.Name = "lblHeight";
|
||||||
label2.Size = new System.Drawing.Size(46, 15);
|
lblHeight.Size = new System.Drawing.Size(46, 15);
|
||||||
label2.TabIndex = 4;
|
lblHeight.TabIndex = 4;
|
||||||
label2.Text = "Height:";
|
lblHeight.Text = "Height:";
|
||||||
//
|
//
|
||||||
// lblType
|
// lblType
|
||||||
//
|
//
|
||||||
@@ -363,7 +366,7 @@
|
|||||||
// btnExport
|
// btnExport
|
||||||
//
|
//
|
||||||
btnExport.Image = Properties.Resources.z_export;
|
btnExport.Image = Properties.Resources.z_export;
|
||||||
btnExport.Location = new System.Drawing.Point(96, 103);
|
btnExport.Location = new System.Drawing.Point(94, 109);
|
||||||
btnExport.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
btnExport.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
||||||
btnExport.Name = "btnExport";
|
btnExport.Name = "btnExport";
|
||||||
btnExport.Size = new System.Drawing.Size(88, 27);
|
btnExport.Size = new System.Drawing.Size(88, 27);
|
||||||
@@ -480,7 +483,7 @@
|
|||||||
// btnApply
|
// btnApply
|
||||||
//
|
//
|
||||||
btnApply.Image = Properties.Resources.z_tick;
|
btnApply.Image = Properties.Resources.z_tick;
|
||||||
btnApply.Location = new System.Drawing.Point(2, 103);
|
btnApply.Location = new System.Drawing.Point(4, 109);
|
||||||
btnApply.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
btnApply.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
||||||
btnApply.Name = "btnApply";
|
btnApply.Name = "btnApply";
|
||||||
btnApply.Size = new System.Drawing.Size(88, 27);
|
btnApply.Size = new System.Drawing.Size(88, 27);
|
||||||
@@ -661,7 +664,7 @@
|
|||||||
undoToolStripMenuItem.Image = Properties.Resources.arrow_undo;
|
undoToolStripMenuItem.Image = Properties.Resources.arrow_undo;
|
||||||
undoToolStripMenuItem.Name = "undoToolStripMenuItem";
|
undoToolStripMenuItem.Name = "undoToolStripMenuItem";
|
||||||
undoToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Z;
|
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.Text = "Undo";
|
||||||
undoToolStripMenuItem.ToolTipText = "Undo last canvas change";
|
undoToolStripMenuItem.ToolTipText = "Undo last canvas change";
|
||||||
undoToolStripMenuItem.Click += undoToolStripMenuItem_Click;
|
undoToolStripMenuItem.Click += undoToolStripMenuItem_Click;
|
||||||
@@ -671,7 +674,7 @@
|
|||||||
redoToolStripMenuItem.Image = Properties.Resources.arrow_redo;
|
redoToolStripMenuItem.Image = Properties.Resources.arrow_redo;
|
||||||
redoToolStripMenuItem.Name = "redoToolStripMenuItem";
|
redoToolStripMenuItem.Name = "redoToolStripMenuItem";
|
||||||
redoToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Y;
|
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.Text = "Redo";
|
||||||
redoToolStripMenuItem.ToolTipText = "Redo canvas change";
|
redoToolStripMenuItem.ToolTipText = "Redo canvas change";
|
||||||
redoToolStripMenuItem.Click += redoToolStripMenuItem_Click;
|
redoToolStripMenuItem.Click += redoToolStripMenuItem_Click;
|
||||||
@@ -682,7 +685,7 @@
|
|||||||
copyToolStripMenuItem.Name = "copyToolStripMenuItem";
|
copyToolStripMenuItem.Name = "copyToolStripMenuItem";
|
||||||
copyToolStripMenuItem.ShortcutKeyDisplayString = "";
|
copyToolStripMenuItem.ShortcutKeyDisplayString = "";
|
||||||
copyToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.C;
|
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.Text = "Copy";
|
||||||
copyToolStripMenuItem.ToolTipText = "Copy current symbol to clipboard";
|
copyToolStripMenuItem.ToolTipText = "Copy current symbol to clipboard";
|
||||||
copyToolStripMenuItem.Click += copyToolStripMenuItem_Click;
|
copyToolStripMenuItem.Click += copyToolStripMenuItem_Click;
|
||||||
@@ -693,7 +696,7 @@
|
|||||||
pasteToolStripMenuItem.Name = "pasteToolStripMenuItem";
|
pasteToolStripMenuItem.Name = "pasteToolStripMenuItem";
|
||||||
pasteToolStripMenuItem.ShortcutKeyDisplayString = "";
|
pasteToolStripMenuItem.ShortcutKeyDisplayString = "";
|
||||||
pasteToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.V;
|
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.Text = "Paste";
|
||||||
pasteToolStripMenuItem.ToolTipText = "Paste from clipboard to current symbol";
|
pasteToolStripMenuItem.ToolTipText = "Paste from clipboard to current symbol";
|
||||||
pasteToolStripMenuItem.Click += pasteToolStripMenuItem_Click;
|
pasteToolStripMenuItem.Click += pasteToolStripMenuItem_Click;
|
||||||
@@ -703,7 +706,7 @@
|
|||||||
selectToolStripMenuItem.Image = Properties.Resources.fam_rectt;
|
selectToolStripMenuItem.Image = Properties.Resources.fam_rectt;
|
||||||
selectToolStripMenuItem.Name = "selectToolStripMenuItem";
|
selectToolStripMenuItem.Name = "selectToolStripMenuItem";
|
||||||
selectToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.R;
|
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.Text = "Select";
|
||||||
selectToolStripMenuItem.ToolTipText = "Toggle Rectangle selection tool";
|
selectToolStripMenuItem.ToolTipText = "Toggle Rectangle selection tool";
|
||||||
selectToolStripMenuItem.Click += selectToolStripMenuItem_Click;
|
selectToolStripMenuItem.Click += selectToolStripMenuItem_Click;
|
||||||
@@ -714,7 +717,7 @@
|
|||||||
selectAllToolStripMenuItem.Image = Properties.Resources.arrow_out;
|
selectAllToolStripMenuItem.Image = Properties.Resources.arrow_out;
|
||||||
selectAllToolStripMenuItem.Name = "selectAllToolStripMenuItem";
|
selectAllToolStripMenuItem.Name = "selectAllToolStripMenuItem";
|
||||||
selectAllToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.A;
|
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.Text = "Select All";
|
||||||
selectAllToolStripMenuItem.ToolTipText = "Select entire canvas";
|
selectAllToolStripMenuItem.ToolTipText = "Select entire canvas";
|
||||||
selectAllToolStripMenuItem.Click += selectAllToolStripMenuItem_Click;
|
selectAllToolStripMenuItem.Click += selectAllToolStripMenuItem_Click;
|
||||||
@@ -996,7 +999,7 @@
|
|||||||
//
|
//
|
||||||
btnBaseline.Image = Properties.Resources.fam_base;
|
btnBaseline.Image = Properties.Resources.fam_base;
|
||||||
btnBaseline.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
|
btnBaseline.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
|
||||||
btnBaseline.Location = new System.Drawing.Point(96, 70);
|
btnBaseline.Location = new System.Drawing.Point(94, 81);
|
||||||
btnBaseline.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
btnBaseline.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
||||||
btnBaseline.Name = "btnBaseline";
|
btnBaseline.Name = "btnBaseline";
|
||||||
btnBaseline.Size = new System.Drawing.Size(88, 27);
|
btnBaseline.Size = new System.Drawing.Size(88, 27);
|
||||||
@@ -1016,7 +1019,7 @@
|
|||||||
// chkLeftSide
|
// chkLeftSide
|
||||||
//
|
//
|
||||||
chkLeftSide.AutoSize = true;
|
chkLeftSide.AutoSize = true;
|
||||||
chkLeftSide.Location = new System.Drawing.Point(113, 10);
|
chkLeftSide.Location = new System.Drawing.Point(113, 5);
|
||||||
chkLeftSide.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
chkLeftSide.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
||||||
chkLeftSide.Name = "chkLeftSide";
|
chkLeftSide.Name = "chkLeftSide";
|
||||||
chkLeftSide.Size = new System.Drawing.Size(70, 19);
|
chkLeftSide.Size = new System.Drawing.Size(70, 19);
|
||||||
@@ -1028,7 +1031,7 @@
|
|||||||
// chkTopSide
|
// chkTopSide
|
||||||
//
|
//
|
||||||
chkTopSide.AutoSize = true;
|
chkTopSide.AutoSize = true;
|
||||||
chkTopSide.Location = new System.Drawing.Point(113, 35);
|
chkTopSide.Location = new System.Drawing.Point(113, 28);
|
||||||
chkTopSide.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
chkTopSide.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
||||||
chkTopSide.Name = "chkTopSide";
|
chkTopSide.Name = "chkTopSide";
|
||||||
chkTopSide.Size = new System.Drawing.Size(70, 19);
|
chkTopSide.Size = new System.Drawing.Size(70, 19);
|
||||||
@@ -1055,9 +1058,9 @@
|
|||||||
chkRectSelect.Appearance = System.Windows.Forms.Appearance.Button;
|
chkRectSelect.Appearance = System.Windows.Forms.Appearance.Button;
|
||||||
chkRectSelect.Image = Properties.Resources.fam_rectt;
|
chkRectSelect.Image = Properties.Resources.fam_rectt;
|
||||||
chkRectSelect.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
|
chkRectSelect.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
|
||||||
chkRectSelect.Location = new System.Drawing.Point(2, 70);
|
chkRectSelect.Location = new System.Drawing.Point(4, 81);
|
||||||
chkRectSelect.Name = "chkRectSelect";
|
chkRectSelect.Name = "chkRectSelect";
|
||||||
chkRectSelect.Size = new System.Drawing.Size(87, 27);
|
chkRectSelect.Size = new System.Drawing.Size(88, 27);
|
||||||
chkRectSelect.TabIndex = 23;
|
chkRectSelect.TabIndex = 23;
|
||||||
chkRectSelect.Text = " Select";
|
chkRectSelect.Text = " Select";
|
||||||
chkRectSelect.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
chkRectSelect.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
@@ -1066,6 +1069,19 @@
|
|||||||
chkRectSelect.UseVisualStyleBackColor = true;
|
chkRectSelect.UseVisualStyleBackColor = true;
|
||||||
chkRectSelect.CheckedChanged += chkRectSelect_CheckedChanged;
|
chkRectSelect.CheckedChanged += chkRectSelect_CheckedChanged;
|
||||||
//
|
//
|
||||||
|
// nudBrush
|
||||||
|
//
|
||||||
|
nudBrush.Location = new System.Drawing.Point(59, 51);
|
||||||
|
nudBrush.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
||||||
|
nudBrush.Maximum = new decimal(new int[] { 32, 0, 0, 0 });
|
||||||
|
nudBrush.Minimum = new decimal(new int[] { 1, 0, 0, 0 });
|
||||||
|
nudBrush.Name = "nudBrush";
|
||||||
|
nudBrush.Size = new System.Drawing.Size(47, 23);
|
||||||
|
nudBrush.TabIndex = 24;
|
||||||
|
toolTip1.SetToolTip(nudBrush, "Symbol height");
|
||||||
|
nudBrush.Value = new decimal(new int[] { 1, 0, 0, 0 });
|
||||||
|
nudBrush.ValueChanged += nudBrush_ValueChanged;
|
||||||
|
//
|
||||||
// label3
|
// label3
|
||||||
//
|
//
|
||||||
label3.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right;
|
label3.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right;
|
||||||
@@ -1121,11 +1137,13 @@
|
|||||||
// pnlRightButtons
|
// pnlRightButtons
|
||||||
//
|
//
|
||||||
pnlRightButtons.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right;
|
pnlRightButtons.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right;
|
||||||
|
pnlRightButtons.Controls.Add(nudBrush);
|
||||||
|
pnlRightButtons.Controls.Add(lblBrush);
|
||||||
pnlRightButtons.Controls.Add(chkLeftSide);
|
pnlRightButtons.Controls.Add(chkLeftSide);
|
||||||
pnlRightButtons.Controls.Add(nudX);
|
pnlRightButtons.Controls.Add(nudX);
|
||||||
pnlRightButtons.Controls.Add(nudY);
|
pnlRightButtons.Controls.Add(nudY);
|
||||||
pnlRightButtons.Controls.Add(label1);
|
pnlRightButtons.Controls.Add(lblWidth);
|
||||||
pnlRightButtons.Controls.Add(label2);
|
pnlRightButtons.Controls.Add(lblHeight);
|
||||||
pnlRightButtons.Controls.Add(chkRectSelect);
|
pnlRightButtons.Controls.Add(chkRectSelect);
|
||||||
pnlRightButtons.Controls.Add(lblType);
|
pnlRightButtons.Controls.Add(lblType);
|
||||||
pnlRightButtons.Controls.Add(btnExport);
|
pnlRightButtons.Controls.Add(btnExport);
|
||||||
@@ -1138,6 +1156,16 @@
|
|||||||
pnlRightButtons.Size = new System.Drawing.Size(184, 154);
|
pnlRightButtons.Size = new System.Drawing.Size(184, 154);
|
||||||
pnlRightButtons.TabIndex = 27;
|
pnlRightButtons.TabIndex = 27;
|
||||||
//
|
//
|
||||||
|
// lblBrush
|
||||||
|
//
|
||||||
|
lblBrush.AutoSize = true;
|
||||||
|
lblBrush.Location = new System.Drawing.Point(10, 54);
|
||||||
|
lblBrush.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||||
|
lblBrush.Name = "lblBrush";
|
||||||
|
lblBrush.Size = new System.Drawing.Size(40, 15);
|
||||||
|
lblBrush.TabIndex = 25;
|
||||||
|
lblBrush.Text = "Brush:";
|
||||||
|
//
|
||||||
// pnlInfo
|
// pnlInfo
|
||||||
//
|
//
|
||||||
pnlInfo.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right;
|
pnlInfo.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right;
|
||||||
@@ -1183,6 +1211,7 @@
|
|||||||
cmMinilist.ResumeLayout(false);
|
cmMinilist.ResumeLayout(false);
|
||||||
menuStrip1.ResumeLayout(false);
|
menuStrip1.ResumeLayout(false);
|
||||||
menuStrip1.PerformLayout();
|
menuStrip1.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)nudBrush).EndInit();
|
||||||
pnlRightButtons.ResumeLayout(false);
|
pnlRightButtons.ResumeLayout(false);
|
||||||
pnlRightButtons.PerformLayout();
|
pnlRightButtons.PerformLayout();
|
||||||
pnlInfo.ResumeLayout(false);
|
pnlInfo.ResumeLayout(false);
|
||||||
@@ -1195,8 +1224,8 @@
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private System.Windows.Forms.Panel dotPanel;
|
private System.Windows.Forms.Panel dotPanel;
|
||||||
private System.Windows.Forms.Label label1;
|
private System.Windows.Forms.Label lblWidth;
|
||||||
private System.Windows.Forms.Label label2;
|
private System.Windows.Forms.Label lblHeight;
|
||||||
private System.Windows.Forms.Label lblType;
|
private System.Windows.Forms.Label lblType;
|
||||||
private System.Windows.Forms.ComboBox cbZoom;
|
private System.Windows.Forms.ComboBox cbZoom;
|
||||||
private System.Windows.Forms.Label label4;
|
private System.Windows.Forms.Label label4;
|
||||||
@@ -1289,6 +1318,8 @@
|
|||||||
private System.Windows.Forms.ToolStripMenuItem toggleBarToolStripMenuItem;
|
private System.Windows.Forms.ToolStripMenuItem toggleBarToolStripMenuItem;
|
||||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator4;
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator4;
|
||||||
private System.Windows.Forms.ToolStripMenuItem zerofyWidthToolStripMenuItem;
|
private System.Windows.Forms.ToolStripMenuItem zerofyWidthToolStripMenuItem;
|
||||||
|
public System.Windows.Forms.NumericUpDown nudBrush;
|
||||||
|
private System.Windows.Forms.Label lblBrush;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -120,6 +120,8 @@ namespace McBitFont {
|
|||||||
sidebarLocs[1, 2] = new Point(dotPanel.Width + 17, 31);
|
sidebarLocs[1, 2] = new Point(dotPanel.Width + 17, 31);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void Form1_Load(object sender, EventArgs e) {
|
private void Form1_Load(object sender, EventArgs e) {
|
||||||
lblType.Text = monospaced ? "Monospaced" : "Variable width / Single";
|
lblType.Text = monospaced ? "Monospaced" : "Variable width / Single";
|
||||||
tsmiMakeVarWidth.Visible = monospaced;
|
tsmiMakeVarWidth.Visible = monospaced;
|
||||||
@@ -166,6 +168,10 @@ namespace McBitFont {
|
|||||||
CheckForAdd();
|
CheckForAdd();
|
||||||
|
|
||||||
SideBarRecalc();
|
SideBarRecalc();
|
||||||
|
|
||||||
|
// Create default cursor
|
||||||
|
dotPanel.Cursor = McCursor.GetCursor((int)nudBrush.Value, cellSize, gap);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[DllImport("user32.dll")]
|
[DllImport("user32.dll")]
|
||||||
@@ -212,6 +218,12 @@ namespace McBitFont {
|
|||||||
if (t > hScroll.Maximum) t = hScroll.Maximum;
|
if (t > hScroll.Maximum) t = hScroll.Maximum;
|
||||||
hScroll.Value = t;
|
hScroll.Value = t;
|
||||||
}
|
}
|
||||||
|
} else if (ModifierKeys.HasFlag(Keys.Alt)) {
|
||||||
|
t += (int)nudBrush.Value;
|
||||||
|
if (t < nudBrush.Minimum) t = (int)nudBrush.Minimum;
|
||||||
|
if (t > nudBrush.Maximum) t = (int)nudBrush.Maximum;
|
||||||
|
if (t > dotWidth || t > dotHeight) t = dotWidth < dotHeight ? dotWidth : dotHeight;
|
||||||
|
nudBrush.Value = t;
|
||||||
} else {
|
} else {
|
||||||
if (vScroll.Enabled) {
|
if (vScroll.Enabled) {
|
||||||
t = t * -1 * (cellSize + gap) + vScroll.Value;
|
t = t * -1 * (cellSize + gap) + vScroll.Value;
|
||||||
@@ -334,6 +346,7 @@ namespace McBitFont {
|
|||||||
vScroll.Enabled = true;
|
vScroll.Enabled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dotPanel.Cursor = McCursor.GetCursor((int)nudBrush.Value, cellSize, gap);
|
||||||
dotPanel.Refresh();
|
dotPanel.Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -525,7 +538,7 @@ namespace McBitFont {
|
|||||||
selection2.X = i;
|
selection2.X = i;
|
||||||
selection2.Y = j;
|
selection2.Y = j;
|
||||||
dotPanel.Invalidate();
|
dotPanel.Invalidate();
|
||||||
} //else history.AddPre(f, false);
|
}
|
||||||
}
|
}
|
||||||
if (e.Button == MouseButtons.None && mouseDown) {
|
if (e.Button == MouseButtons.None && mouseDown) {
|
||||||
// Released a mouse button
|
// Released a mouse button
|
||||||
@@ -583,27 +596,37 @@ namespace McBitFont {
|
|||||||
lastY = j;
|
lastY = j;
|
||||||
|
|
||||||
// Paint black / white
|
// Paint black / white
|
||||||
if (e.Button == MouseButtons.Left && !f.data[i, j]) {
|
if (e.Button == MouseButtons.Left) {
|
||||||
f.data[i, j] = true;
|
if (PaintPixel(i, j, true)) fChanged = true;
|
||||||
fChanged = true;
|
|
||||||
int x = pixelOffset + i * (cellSize + gap) - hScroll.Value;
|
|
||||||
int y = pixelOffset + j * (cellSize + gap) - vScroll.Value;
|
|
||||||
SetModified();
|
|
||||||
rect1 = new Rectangle(x, y, cellSize, cellSize);
|
|
||||||
dotPanel.Invalidate(rect1);
|
|
||||||
}
|
}
|
||||||
if (e.Button == MouseButtons.Right && f.data[i, j]) {
|
if (e.Button == MouseButtons.Right) {
|
||||||
f.data[i, j] = false;
|
if (PaintPixel(i, j, false)) fChanged = true;
|
||||||
fChanged = true;
|
|
||||||
int x = pixelOffset + i * (cellSize + gap) - hScroll.Value;
|
|
||||||
int y = pixelOffset + j * (cellSize + gap) - vScroll.Value;
|
|
||||||
SetModified();
|
|
||||||
rect1 = new Rectangle(x, y, cellSize, cellSize);
|
|
||||||
dotPanel.Invalidate(rect1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private bool PaintPixel(int i, int j, bool color) {
|
||||||
|
bool changed = false;
|
||||||
|
for (int a = 0; a < (int)nudBrush.Value; a++) {
|
||||||
|
if (i + a >= f.width) break;
|
||||||
|
for (int b = 0; b < (int)nudBrush.Value; b++) {
|
||||||
|
if (j + b >= f.height) break;
|
||||||
|
if (f.data[i + a, j + b] != color) {
|
||||||
|
f.data[i + a, j + b] = color;
|
||||||
|
int x = pixelOffset + (i + a) * (cellSize + gap) - hScroll.Value;
|
||||||
|
int y = pixelOffset + (j + b) * (cellSize + gap) - vScroll.Value;
|
||||||
|
Rectangle rect1 = new(x, y, cellSize, cellSize);
|
||||||
|
dotPanel.Invalidate(rect1);
|
||||||
|
SetModified();
|
||||||
|
changed = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return changed;
|
||||||
|
}
|
||||||
|
|
||||||
private void btnInvert_Click(object sender, EventArgs e) {
|
private void btnInvert_Click(object sender, EventArgs e) {
|
||||||
int x, y, x2, y2;
|
int x, y, x2, y2;
|
||||||
|
|
||||||
@@ -1663,5 +1686,9 @@ namespace McBitFont {
|
|||||||
MiniList_SelectedIndexChanged(miniList, EventArgs.Empty);
|
MiniList_SelectedIndexChanged(miniList, EventArgs.Empty);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void nudBrush_ValueChanged(object sender, EventArgs e) {
|
||||||
|
dotPanel.Cursor = McCursor.GetCursor((int)nudBrush.Value, cellSize, gap);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
105
McBitFont/McCursor.cs
Normal file
105
McBitFont/McCursor.cs
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Drawing.Drawing2D;
|
||||||
|
using System.Drawing.Imaging;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace McBitFont {
|
||||||
|
internal class McCursor {
|
||||||
|
|
||||||
|
public struct IconInfo {
|
||||||
|
public bool fIcon;
|
||||||
|
public int xHotspot;
|
||||||
|
public int yHotspot;
|
||||||
|
public IntPtr hbmMask;
|
||||||
|
public IntPtr hbmColor;
|
||||||
|
}
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
[return: MarshalAs(UnmanagedType.Bool)]
|
||||||
|
public static extern bool GetIconInfo(IntPtr hIcon, ref IconInfo pIconInfo);
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
public static extern IntPtr CreateIconIndirect(ref IconInfo icon);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Create a cursor from a bitmap without resizing and with the specified
|
||||||
|
/// hot spot
|
||||||
|
/// </summary>
|
||||||
|
public static Cursor CreateCursorNoResize(Bitmap bmp, int xHotSpot, int yHotSpot) {
|
||||||
|
IntPtr ptr = bmp.GetHicon();
|
||||||
|
IconInfo tmp = new IconInfo();
|
||||||
|
GetIconInfo(ptr, ref tmp);
|
||||||
|
tmp.xHotspot = xHotSpot;
|
||||||
|
tmp.yHotspot = yHotSpot;
|
||||||
|
tmp.fIcon = false;
|
||||||
|
ptr = CreateIconIndirect(ref tmp);
|
||||||
|
return new Cursor(ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Create a 32x32 cursor from a bitmap, with the hot spot in the middle
|
||||||
|
/// </summary>
|
||||||
|
public static Cursor CreateCursor(Bitmap bmp) {
|
||||||
|
int xHotSpot = 16;
|
||||||
|
int yHotSpot = 16;
|
||||||
|
|
||||||
|
IntPtr ptr = ((Bitmap)ResizeImage(bmp, 32, 32)).GetHicon();
|
||||||
|
IconInfo tmp = new IconInfo();
|
||||||
|
GetIconInfo(ptr, ref tmp);
|
||||||
|
tmp.xHotspot = xHotSpot;
|
||||||
|
tmp.yHotspot = yHotSpot;
|
||||||
|
tmp.fIcon = false;
|
||||||
|
ptr = CreateIconIndirect(ref tmp);
|
||||||
|
return new Cursor(ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Resize the image to the specified width and height.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="image">The image to resize.</param>
|
||||||
|
/// <param name="width">The width to resize to.</param>
|
||||||
|
/// <param name="height">The height to resize to.</param>
|
||||||
|
/// <returns>The resized image.</returns>
|
||||||
|
public static Bitmap ResizeImage(Image image, int width, int height) {
|
||||||
|
var destRect = new Rectangle(0, 0, width, height);
|
||||||
|
var destImage = new Bitmap(width, height);
|
||||||
|
|
||||||
|
destImage.SetResolution(image.HorizontalResolution, image.VerticalResolution);
|
||||||
|
|
||||||
|
using (var graphics = Graphics.FromImage(destImage)) {
|
||||||
|
graphics.CompositingMode = CompositingMode.SourceCopy;
|
||||||
|
graphics.CompositingQuality = CompositingQuality.HighQuality;
|
||||||
|
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
|
||||||
|
graphics.SmoothingMode = SmoothingMode.HighQuality;
|
||||||
|
graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
|
||||||
|
|
||||||
|
using (var wrapMode = new ImageAttributes()) {
|
||||||
|
wrapMode.SetWrapMode(WrapMode.TileFlipXY);
|
||||||
|
graphics.DrawImage(image, destRect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, wrapMode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return destImage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Cursor GetCursor(int penSize, int cellSize, int gap) {
|
||||||
|
int size = (cellSize + gap) * penSize;
|
||||||
|
|
||||||
|
Bitmap bmp = new(size, size);
|
||||||
|
Pen pb = new(Color.Black, 1);
|
||||||
|
SolidBrush bw = new(Color.FromArgb(160, Color.White));
|
||||||
|
using (Graphics g = Graphics.FromImage(bmp)) {
|
||||||
|
g.DrawRectangle(pb, 0, 0, size-1, size-1);
|
||||||
|
g.FillRectangle(bw, 1, 1, size - 2, size - 2);
|
||||||
|
}
|
||||||
|
return CreateCursorNoResize(bmp, cellSize / 2, cellSize / 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@@ -25,6 +25,7 @@ Some basic hints on the interface:
|
|||||||
- Mouse Scroll to scroll up and down
|
- Mouse Scroll to scroll up and down
|
||||||
- Shift + scroll to scroll left and right
|
- Shift + scroll to scroll left and right
|
||||||
- Crtl + scroll to zoom
|
- Crtl + scroll to zoom
|
||||||
|
- Alt + Scroll to change painting brush size
|
||||||
|
|
||||||
Download in the [Releases](https://gitea.mcflyer.ru/McFLY/McBitFont/releases) section!
|
Download in the [Releases](https://gitea.mcflyer.ru/McFLY/McBitFont/releases) section!
|
||||||
|
|
||||||
|
4
TODO.txt
4
TODO.txt
@@ -2,11 +2,11 @@ Application:
|
|||||||
- Consider migrating to WPF in order to make DPI aware UI
|
- Consider migrating to WPF in order to make DPI aware UI
|
||||||
V Option to hide symbols list to narrow the side bar
|
V Option to hide symbols list to narrow the side bar
|
||||||
V Buttons to select previous/next symbol with shortcuts
|
V Buttons to select previous/next symbol with shortcuts
|
||||||
- Custom cursor showing painting size
|
V Custom cursor showing painting size
|
||||||
|
|
||||||
Functionality:
|
Functionality:
|
||||||
V Fix straight (Ctrl/Shift) lines paint to reset coordinate on mouse-up even if Ctrl/Shift is still held
|
V Fix straight (Ctrl/Shift) lines paint to reset coordinate on mouse-up even if Ctrl/Shift is still held
|
||||||
V Command to make all blank symbols zero-width
|
V Command to make all blank symbols zero-width
|
||||||
- Alt-Scroll to change painting size
|
V Alt-Scroll to change painting size
|
||||||
|
|
||||||
Bugs:
|
Bugs:
|
||||||
|
Reference in New Issue
Block a user