diff --git a/McBitFont/Form1.Designer.cs b/McBitFont/Form1.Designer.cs
index 5ed27e2..7eacd0c 100644
--- a/McBitFont/Form1.Designer.cs
+++ b/McBitFont/Form1.Designer.cs
@@ -50,14 +50,22 @@
this.label5 = new System.Windows.Forms.Label();
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.exportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.dlgSave = new System.Windows.Forms.SaveFileDialog();
+ this.dlgOpen = new System.Windows.Forms.OpenFileDialog();
this.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.copyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.pasteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.prependSymbolToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.appendSymbolToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.removeSymbolToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.applyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.shiftUpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.shiftDownToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.shiftLeftToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@@ -65,12 +73,6 @@
this.invertToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.mirrorXToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.mirrorYToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.exportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.dlgSave = new System.Windows.Forms.SaveFileDialog();
- this.dlgOpen = new System.Windows.Forms.OpenFileDialog();
- this.prependSymbolToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.appendSymbolToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
((System.ComponentModel.ISupportInitialize)(this.nudX)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nudY)).BeginInit();
this.panel1.SuspendLayout();
@@ -405,6 +407,60 @@
this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
this.fileToolStripMenuItem.Text = "File";
//
+ // editToolStripMenuItem
+ //
+ this.editToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.copyToolStripMenuItem,
+ this.pasteToolStripMenuItem,
+ this.prependSymbolToolStripMenuItem,
+ this.appendSymbolToolStripMenuItem,
+ this.removeSymbolToolStripMenuItem,
+ this.applyToolStripMenuItem});
+ this.editToolStripMenuItem.Name = "editToolStripMenuItem";
+ this.editToolStripMenuItem.Size = new System.Drawing.Size(39, 20);
+ this.editToolStripMenuItem.Text = "Edit";
+ //
+ // toolsToolStripMenuItem
+ //
+ this.toolsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.shiftUpToolStripMenuItem,
+ this.shiftDownToolStripMenuItem,
+ this.shiftLeftToolStripMenuItem,
+ this.shiftRightToolStripMenuItem,
+ this.invertToolStripMenuItem,
+ this.mirrorXToolStripMenuItem,
+ this.mirrorYToolStripMenuItem,
+ this.exportToolStripMenuItem});
+ this.toolsToolStripMenuItem.Name = "toolsToolStripMenuItem";
+ this.toolsToolStripMenuItem.Size = new System.Drawing.Size(46, 20);
+ this.toolsToolStripMenuItem.Text = "Tools";
+ //
+ // exportToolStripMenuItem
+ //
+ this.exportToolStripMenuItem.Name = "exportToolStripMenuItem";
+ this.exportToolStripMenuItem.ShortcutKeyDisplayString = "Ctrl+E";
+ this.exportToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.E)));
+ this.exportToolStripMenuItem.Size = new System.Drawing.Size(197, 22);
+ this.exportToolStripMenuItem.Text = "Export";
+ this.exportToolStripMenuItem.Click += new System.EventHandler(this.button1_Click);
+ //
+ // aboutToolStripMenuItem
+ //
+ this.aboutToolStripMenuItem.Enabled = false;
+ this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem";
+ this.aboutToolStripMenuItem.Size = new System.Drawing.Size(52, 20);
+ this.aboutToolStripMenuItem.Text = "About";
+ //
+ // dlgSave
+ //
+ this.dlgSave.DefaultExt = "mbf";
+ this.dlgSave.Filter = "McBitFont files|*.mbf|All files|*.*";
+ //
+ // dlgOpen
+ //
+ this.dlgOpen.DefaultExt = "mbf";
+ this.dlgOpen.Filter = "McBitFont files|*.mbf|All files|*.*";
+ //
// newToolStripMenuItem
//
this.newToolStripMenuItem.Image = global::McBitFont.Properties.Resources.file;
@@ -427,7 +483,7 @@
//
// saveToolStripMenuItem
//
- this.saveToolStripMenuItem.Image = global::McBitFont.Properties.Resources.save;
+ this.saveToolStripMenuItem.Image = global::McBitFont.Properties.Resources.Famfamfam_Silk_Disk_16;
this.saveToolStripMenuItem.Name = "saveToolStripMenuItem";
this.saveToolStripMenuItem.ShortcutKeyDisplayString = "Ctrl+S";
this.saveToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S)));
@@ -437,21 +493,47 @@
//
// exitToolStripMenuItem
//
+ this.exitToolStripMenuItem.Image = global::McBitFont.Properties.Resources.Famfamfam_Silk_Door_out_16;
this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
this.exitToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.exitToolStripMenuItem.Text = "Exit";
this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click);
//
- // editToolStripMenuItem
+ // copyToolStripMenuItem
//
- this.editToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.prependSymbolToolStripMenuItem,
- this.appendSymbolToolStripMenuItem,
- this.removeSymbolToolStripMenuItem,
- this.applyToolStripMenuItem});
- this.editToolStripMenuItem.Name = "editToolStripMenuItem";
- this.editToolStripMenuItem.Size = new System.Drawing.Size(39, 20);
- this.editToolStripMenuItem.Text = "Edit";
+ this.copyToolStripMenuItem.Enabled = false;
+ this.copyToolStripMenuItem.Image = global::McBitFont.Properties.Resources.Famfamfam_Silk_Page_copy_16;
+ this.copyToolStripMenuItem.Name = "copyToolStripMenuItem";
+ this.copyToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+ this.copyToolStripMenuItem.Text = "Copy";
+ this.copyToolStripMenuItem.Click += new System.EventHandler(this.copyToolStripMenuItem_Click);
+ //
+ // pasteToolStripMenuItem
+ //
+ this.pasteToolStripMenuItem.Enabled = false;
+ this.pasteToolStripMenuItem.Image = global::McBitFont.Properties.Resources.Famfamfam_Silk_Page_paste_16;
+ this.pasteToolStripMenuItem.Name = "pasteToolStripMenuItem";
+ this.pasteToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+ this.pasteToolStripMenuItem.Text = "Paste";
+ this.pasteToolStripMenuItem.Click += new System.EventHandler(this.pasteToolStripMenuItem_Click);
+ //
+ // prependSymbolToolStripMenuItem
+ //
+ this.prependSymbolToolStripMenuItem.Enabled = false;
+ this.prependSymbolToolStripMenuItem.Image = global::McBitFont.Properties.Resources.action_add;
+ this.prependSymbolToolStripMenuItem.Name = "prependSymbolToolStripMenuItem";
+ this.prependSymbolToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+ this.prependSymbolToolStripMenuItem.Text = "Prepend symbol";
+ this.prependSymbolToolStripMenuItem.Click += new System.EventHandler(this.prependSymbolToolStripMenuItem_Click);
+ //
+ // appendSymbolToolStripMenuItem
+ //
+ this.appendSymbolToolStripMenuItem.Enabled = false;
+ this.appendSymbolToolStripMenuItem.Image = global::McBitFont.Properties.Resources.action_add;
+ this.appendSymbolToolStripMenuItem.Name = "appendSymbolToolStripMenuItem";
+ this.appendSymbolToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+ this.appendSymbolToolStripMenuItem.Text = "Append symbol";
+ this.appendSymbolToolStripMenuItem.Click += new System.EventHandler(this.prependSymbolToolStripMenuItem_Click);
//
// removeSymbolToolStripMenuItem
//
@@ -464,26 +546,12 @@
//
// applyToolStripMenuItem
//
+ this.applyToolStripMenuItem.Image = global::McBitFont.Properties.Resources.action_check;
this.applyToolStripMenuItem.Name = "applyToolStripMenuItem";
this.applyToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.applyToolStripMenuItem.Text = "Apply";
this.applyToolStripMenuItem.Click += new System.EventHandler(this.button2_Click);
//
- // toolsToolStripMenuItem
- //
- this.toolsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.shiftUpToolStripMenuItem,
- this.shiftDownToolStripMenuItem,
- this.shiftLeftToolStripMenuItem,
- this.shiftRightToolStripMenuItem,
- this.invertToolStripMenuItem,
- this.mirrorXToolStripMenuItem,
- this.mirrorYToolStripMenuItem,
- this.exportToolStripMenuItem});
- this.toolsToolStripMenuItem.Name = "toolsToolStripMenuItem";
- this.toolsToolStripMenuItem.Size = new System.Drawing.Size(46, 20);
- this.toolsToolStripMenuItem.Text = "Tools";
- //
// shiftUpToolStripMenuItem
//
this.shiftUpToolStripMenuItem.Image = global::McBitFont.Properties.Resources.arrow_top;
@@ -526,6 +594,7 @@
//
// invertToolStripMenuItem
//
+ this.invertToolStripMenuItem.Image = global::McBitFont.Properties.Resources.Ionic_Ionicons_Invert_mode_outline_16;
this.invertToolStripMenuItem.Name = "invertToolStripMenuItem";
this.invertToolStripMenuItem.ShortcutKeyDisplayString = "Ctrl+I";
this.invertToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.I)));
@@ -535,6 +604,7 @@
//
// mirrorXToolStripMenuItem
//
+ this.mirrorXToolStripMenuItem.Image = global::McBitFont.Properties.Resources.Famfamfam_Silk_Shape_flip_horizontal_16;
this.mirrorXToolStripMenuItem.Name = "mirrorXToolStripMenuItem";
this.mirrorXToolStripMenuItem.ShortcutKeyDisplayString = "Ctrl+X";
this.mirrorXToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.X)));
@@ -544,6 +614,7 @@
//
// mirrorYToolStripMenuItem
//
+ this.mirrorYToolStripMenuItem.Image = global::McBitFont.Properties.Resources.Famfamfam_Silk_Shape_flip_vertical_16;
this.mirrorYToolStripMenuItem.Name = "mirrorYToolStripMenuItem";
this.mirrorYToolStripMenuItem.ShortcutKeyDisplayString = "Ctrl+Y";
this.mirrorYToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Y)));
@@ -551,50 +622,6 @@
this.mirrorYToolStripMenuItem.Text = "Mirror Y";
this.mirrorYToolStripMenuItem.Click += new System.EventHandler(this.btnMirrorY_Click);
//
- // exportToolStripMenuItem
- //
- this.exportToolStripMenuItem.Name = "exportToolStripMenuItem";
- this.exportToolStripMenuItem.ShortcutKeyDisplayString = "Ctrl+E";
- this.exportToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.E)));
- this.exportToolStripMenuItem.Size = new System.Drawing.Size(197, 22);
- this.exportToolStripMenuItem.Text = "Export";
- this.exportToolStripMenuItem.Click += new System.EventHandler(this.button1_Click);
- //
- // aboutToolStripMenuItem
- //
- this.aboutToolStripMenuItem.Enabled = false;
- this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem";
- this.aboutToolStripMenuItem.Size = new System.Drawing.Size(52, 20);
- this.aboutToolStripMenuItem.Text = "About";
- //
- // dlgSave
- //
- this.dlgSave.DefaultExt = "mbf";
- this.dlgSave.Filter = "McBitFont files|*.mbf|All files|*.*";
- //
- // dlgOpen
- //
- this.dlgOpen.DefaultExt = "mbf";
- this.dlgOpen.Filter = "McBitFont files|*.mbf|All files|*.*";
- //
- // prependSymbolToolStripMenuItem
- //
- this.prependSymbolToolStripMenuItem.Enabled = false;
- this.prependSymbolToolStripMenuItem.Image = global::McBitFont.Properties.Resources.action_add;
- this.prependSymbolToolStripMenuItem.Name = "prependSymbolToolStripMenuItem";
- this.prependSymbolToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
- this.prependSymbolToolStripMenuItem.Text = "Prepend symbol";
- this.prependSymbolToolStripMenuItem.Click += new System.EventHandler(this.prependSymbolToolStripMenuItem_Click);
- //
- // appendSymbolToolStripMenuItem
- //
- this.appendSymbolToolStripMenuItem.Enabled = false;
- this.appendSymbolToolStripMenuItem.Image = global::McBitFont.Properties.Resources.action_add;
- this.appendSymbolToolStripMenuItem.Name = "appendSymbolToolStripMenuItem";
- this.appendSymbolToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
- this.appendSymbolToolStripMenuItem.Text = "Append symbol";
- this.appendSymbolToolStripMenuItem.Click += new System.EventHandler(this.prependSymbolToolStripMenuItem_Click);
- //
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@@ -682,6 +709,8 @@
private System.Windows.Forms.ToolStripMenuItem exportToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem prependSymbolToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem appendSymbolToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem copyToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem pasteToolStripMenuItem;
}
}
diff --git a/McBitFont/Form1.cs b/McBitFont/Form1.cs
index 9091e68..88f005b 100644
--- a/McBitFont/Form1.cs
+++ b/McBitFont/Form1.cs
@@ -14,6 +14,7 @@ using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.InteropServices.ComTypes;
using System.Diagnostics;
+using System.Drawing.Drawing2D;
namespace McBitFont {
public partial class MainForm : Form {
@@ -49,9 +50,11 @@ namespace McBitFont {
public bool monospaced = false;
bool modified = false;
bool prjModified = false;
- public const string version = "1.0";
+ public const string version = "1.1";
public string prjName = "Untitled";
public int codepage = 1251;
+ private FrameMiniature fbuf;
+ private bool fbuffer = false;
public MainForm() {
InitializeComponent();
@@ -72,7 +75,7 @@ namespace McBitFont {
cbZoom.SelectedIndexChanged += cbZoom_SelectedIndexChanged;
frames.Add(new FrameMiniature(0, dotWidth, dotHeight));
- miniList.Items.Add("0", "0 Single", "0");
+ miniList.Items.Add("000", "000 Single", "000");
miniList.Refresh();
miniList.Items[0].Selected = true;
miniList.Select();
@@ -81,6 +84,8 @@ namespace McBitFont {
ListViewItem_SetSpacing(miniList, 50 + 2, 50 + 22);
this.Text = "McBitFont " + version + " - " + prjName;
+
+ fbuf = new FrameMiniature(0, dotWidth, dotHeight);
}
[DllImport("user32.dll")]
@@ -206,6 +211,8 @@ namespace McBitFont {
w = pixelOffset + dotWidth * (cellSize + gap);
h = pixelOffset + dotHeight * (cellSize + gap);
cbZoom_SelectedIndexChanged(cbZoom, null);
+
+ fbuffer = false;
}
private void cbZoom_SelectedIndexChanged(object sender, EventArgs e) {
@@ -247,6 +254,7 @@ namespace McBitFont {
}
}
}
+ modified = true;
dotPanel.Refresh();
}
@@ -262,6 +270,7 @@ namespace McBitFont {
}
}
}
+ modified = true;
dotPanel.Refresh();
}
@@ -304,6 +313,7 @@ namespace McBitFont {
}
}
}
+ modified = true;
dotPanel.Refresh();
}
@@ -319,6 +329,7 @@ namespace McBitFont {
}
}
}
+ modified = true;
dotPanel.Refresh();
}
@@ -328,6 +339,7 @@ namespace McBitFont {
f.data[i, j] = !f.data[i, j];
}
}
+ modified = true;
dotPanel.Refresh();
}
@@ -346,6 +358,7 @@ namespace McBitFont {
b--;
}
}
+ modified = true;
dotPanel.Refresh();
}
@@ -364,6 +377,7 @@ namespace McBitFont {
b--;
}
}
+ modified = true;
dotPanel.Refresh();
}
@@ -451,6 +465,29 @@ namespace McBitFont {
return enc.GetString(new byte[] { (byte)code });
}
+ private FrameMiniature fillFrame(FrameMiniature ff, Font font, int sx, int sy) {
+ string s = decodeSymbol(ff.code);
+ Bitmap bmp = new Bitmap(ff.width, ff.height);
+ Graphics g = Graphics.FromImage(bmp);
+ g.Clear(Color.White);
+ g.SmoothingMode = SmoothingMode.None;
+ g.InterpolationMode = InterpolationMode.NearestNeighbor;
+ g.PixelOffsetMode = PixelOffsetMode.Half;
+ g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit;
+ g.DrawString(s, font, Brushes.Black, sx, sy);
+ g.Flush();
+
+ for (int i = 0; i < ff.width; i++)
+ for (int j = 0; j < ff.height; j++) {
+ if (bmp.GetPixel(i, j).Name != "ffffffff")
+ ff.data[i, j] = true;
+ }
+
+ bmp.Dispose();
+ g.Dispose();
+ return ff;
+ }
+
private void newToolStripMenuItem_Click(object sender, EventArgs e) {
if (prjModified) {
if (MessageBox.Show("The project is modified.\nDo you want to save it first?", "Project was modified!", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) {
@@ -458,7 +495,7 @@ namespace McBitFont {
return;
}
}
- New form = new New();
+ New form = new New(this);
if (form.ShowDialog() == DialogResult.OK) {
frames.Clear();
miniList.Clear();
@@ -469,6 +506,7 @@ namespace McBitFont {
int newh = (int)form.nudNewY.Value;
nudX.Value = neww;
nudY.Value = newh;
+ FrameMiniature newf;
if (form.cbSingle.Checked) {
frames.Add( new FrameMiniature(0, neww, newh));
//f = frames.Find(x => x.code == 0);
@@ -477,16 +515,25 @@ namespace McBitFont {
} else {
int i;
if (form.cbNotPrintable.Checked) {
- for (i=0; i < 32; i++)
- frames.Add(new FrameMiniature(i, neww, newh));
+ for (i = 0; i < 32; i++) {
+ newf = new FrameMiniature(i, neww, newh);
+ if (form.cbFontBased.Checked) newf = fillFrame(newf, form.dlgFont.Font, (int)form.nudShiftX.Value, (int)form.nudShiftY.Value);
+ frames.Add(newf);
+ }
}
if (form.cbLatin.Checked) {
- for (i = 32; i < 128; i++)
- frames.Add(new FrameMiniature(i, neww, newh));
+ for (i = 32; i < 128; i++) {
+ newf = new FrameMiniature(i, neww, newh);
+ if (form.cbFontBased.Checked) newf = fillFrame(newf, form.dlgFont.Font, (int)form.nudShiftX.Value, (int)form.nudShiftY.Value);
+ frames.Add(newf);
+ }
}
if (form.cbExtended.Checked) {
- for (i = 128; i < 256; i++)
- frames.Add(new FrameMiniature(i, neww, newh));
+ for (i = 128; i < 256; i++) {
+ newf = new FrameMiniature(i, neww, newh);
+ if (form.cbFontBased.Checked) newf = fillFrame(newf, form.dlgFont.Font, (int)form.nudShiftX.Value, (int)form.nudShiftY.Value);
+ frames.Add(newf);
+ }
}
monospaced = form.rbMono.Checked;
}
@@ -507,6 +554,7 @@ namespace McBitFont {
this.Text = "McBitFont " + version + " - " + prjName;
modified = false;
checkForAdd();
+ fbuffer = false;
}
}
@@ -520,6 +568,8 @@ namespace McBitFont {
}
if (miniList.SelectedItems.Count == 0) {
removeSymbolToolStripMenuItem.Enabled = false;
+ copyToolStripMenuItem.Enabled = false;
+ pasteToolStripMenuItem.Enabled = false;
return;
//miniList.Items[0].Selected = true;
}
@@ -536,6 +586,9 @@ namespace McBitFont {
} else {
removeSymbolToolStripMenuItem.Enabled = false;
}
+ copyToolStripMenuItem.Enabled = true;
+ if (fbuffer) pasteToolStripMenuItem.Enabled = true;
+ else pasteToolStripMenuItem.Enabled = false;
}
private void saveToolStripMenuItem_Click(object sender, EventArgs e) {
@@ -597,6 +650,7 @@ namespace McBitFont {
prjName = Path.GetFileNameWithoutExtension(dlgOpen.FileName);
this.Text = "McBitFont " + version + " - " + prjName;
checkForAdd();
+ fbuffer = false;
}
}
@@ -642,6 +696,18 @@ namespace McBitFont {
}
}
+ private void copyToolStripMenuItem_Click(object sender, EventArgs e) {
+ fbuffer = true;
+ fbuf = copyFrame(f);
+ pasteToolStripMenuItem.Enabled = true;
+ }
+
+ private void pasteToolStripMenuItem_Click(object sender, EventArgs e) {
+ Array.Copy(fbuf.data, f.data, fbuf.data.Length);
+ dotPanel.Refresh();
+ modified = true;
+ }
+
private void MainForm_FormClosing(object sender, FormClosingEventArgs e) {
if (prjModified) {
if (MessageBox.Show("The project is modified.\nAre you sure you want to quit?", "Are you sure?", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) {
diff --git a/McBitFont/McBitFont.csproj b/McBitFont/McBitFont.csproj
index b8b4ffb..3f1cc61 100644
--- a/McBitFont/McBitFont.csproj
+++ b/McBitFont/McBitFont.csproj
@@ -125,5 +125,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/McBitFont/New.Designer.cs b/McBitFont/New.Designer.cs
index 60537f8..659a399 100644
--- a/McBitFont/New.Designer.cs
+++ b/McBitFont/New.Designer.cs
@@ -38,13 +38,37 @@
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.nudChar2 = new System.Windows.Forms.NumericUpDown();
+ this.nudChar1 = new System.Windows.Forms.NumericUpDown();
+ this.label3 = new System.Windows.Forms.Label();
+ this.label4 = new System.Windows.Forms.Label();
((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();
//
// nudNewX
//
- this.nudNewX.Location = new System.Drawing.Point(74, 19);
+ this.nudNewX.Location = new System.Drawing.Point(68, 32);
this.nudNewX.Maximum = new decimal(new int[] {
255,
0,
@@ -63,11 +87,12 @@
0,
0,
0});
+ this.nudNewX.ValueChanged += new System.EventHandler(this.nudNewX_ValueChanged);
this.nudNewX.Enter += new System.EventHandler(this.nudFocus);
//
// nudNewY
//
- this.nudNewY.Location = new System.Drawing.Point(74, 45);
+ this.nudNewY.Location = new System.Drawing.Point(68, 58);
this.nudNewY.Maximum = new decimal(new int[] {
255,
0,
@@ -86,12 +111,13 @@
0,
0,
0});
+ this.nudNewY.ValueChanged += new System.EventHandler(this.nudNewX_ValueChanged);
this.nudNewY.Enter += new System.EventHandler(this.nudFocus);
//
// label1
//
this.label1.AutoSize = true;
- this.label1.Location = new System.Drawing.Point(30, 21);
+ 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;
@@ -101,7 +127,7 @@
// label2
//
this.label2.AutoSize = true;
- this.label2.Location = new System.Drawing.Point(27, 47);
+ 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;
@@ -112,7 +138,7 @@
//
this.rbMono.AutoSize = true;
this.rbMono.Checked = true;
- this.rbMono.Location = new System.Drawing.Point(30, 71);
+ 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;
@@ -123,7 +149,7 @@
// rbVar
//
this.rbVar.AutoSize = true;
- this.rbVar.Location = new System.Drawing.Point(30, 94);
+ 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;
@@ -133,7 +159,7 @@
// cbNotPrintable
//
this.cbNotPrintable.AutoSize = true;
- this.cbNotPrintable.Location = new System.Drawing.Point(146, 35);
+ this.cbNotPrintable.Location = new System.Drawing.Point(140, 54);
this.cbNotPrintable.Name = "cbNotPrintable";
this.cbNotPrintable.Size = new System.Drawing.Size(116, 17);
this.cbNotPrintable.TabIndex = 7;
@@ -145,7 +171,7 @@
this.cbLatin.AutoSize = true;
this.cbLatin.Checked = true;
this.cbLatin.CheckState = System.Windows.Forms.CheckState.Checked;
- this.cbLatin.Location = new System.Drawing.Point(146, 58);
+ this.cbLatin.Location = new System.Drawing.Point(140, 77);
this.cbLatin.Name = "cbLatin";
this.cbLatin.Size = new System.Drawing.Size(91, 17);
this.cbLatin.TabIndex = 8;
@@ -155,7 +181,7 @@
// cbExtended
//
this.cbExtended.AutoSize = true;
- this.cbExtended.Location = new System.Drawing.Point(146, 81);
+ this.cbExtended.Location = new System.Drawing.Point(140, 100);
this.cbExtended.Name = "cbExtended";
this.cbExtended.Size = new System.Drawing.Size(119, 17);
this.cbExtended.TabIndex = 9;
@@ -165,7 +191,8 @@
//
// btnOK
//
- this.btnOK.Location = new System.Drawing.Point(56, 143);
+ 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;
@@ -175,8 +202,9 @@
//
// 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(165, 143);
+ 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;
@@ -187,7 +215,7 @@
// cbSingle
//
this.cbSingle.AutoSize = true;
- this.cbSingle.Location = new System.Drawing.Point(146, 12);
+ 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;
@@ -207,17 +235,206 @@
this.cbEncoding.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cbEncoding.Enabled = false;
this.cbEncoding.FormattingEnabled = true;
- this.cbEncoding.Location = new System.Drawing.Point(146, 104);
+ this.cbEncoding.Location = new System.Drawing.Point(140, 123);
this.cbEncoding.Name = "cbEncoding";
this.cbEncoding.Size = new System.Drawing.Size(121, 21);
this.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;
+ //
+ // 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;
+ //
+ // 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;
+ //
+ // 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);
+ //
+ // 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;
+ //
+ // 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.cbFontBased_CheckedChanged);
+ //
+ // 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";
+ //
+ // 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);
+ //
+ // 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);
+ //
+ // 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;
+ //
+ // 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;
+ //
+ // 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;
+ //
+ // 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);
+ //
+ // 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);
+ //
+ // 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;
+ //
+ // 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;
+ //
// New
//
this.AcceptButton = this.btnOK;
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.CancelButton = this.btnCancel;
- this.ClientSize = new System.Drawing.Size(284, 181);
+ this.ClientSize = new System.Drawing.Size(484, 211);
+ 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);
@@ -233,7 +450,6 @@
this.Controls.Add(this.nudNewX);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.MaximizeBox = false;
- this.MaximumSize = new System.Drawing.Size(300, 220);
this.MinimizeBox = false;
this.MinimumSize = new System.Drawing.Size(300, 220);
this.Name = "New";
@@ -244,6 +460,15 @@
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();
@@ -265,5 +490,21 @@
public System.Windows.Forms.CheckBox cbSingle;
private System.Windows.Forms.ToolTip toolTip1;
public System.Windows.Forms.ComboBox cbEncoding;
+ public System.Windows.Forms.Panel panel1;
+ private System.Windows.Forms.PictureBox pbChar2;
+ private System.Windows.Forms.PictureBox pbChar1;
+ private System.Windows.Forms.Button btnFont;
+ public System.Windows.Forms.FontDialog dlgFont;
+ public System.Windows.Forms.CheckBox cbFontBased;
+ private System.Windows.Forms.Label lblFont;
+ public System.Windows.Forms.NumericUpDown nudShiftX;
+ public System.Windows.Forms.NumericUpDown nudShiftY;
+ private System.Windows.Forms.Label lblShiftX;
+ private System.Windows.Forms.Label lblShiftY;
+ private System.Windows.Forms.Panel pnlFont;
+ private System.Windows.Forms.Label label4;
+ private System.Windows.Forms.Label label3;
+ public System.Windows.Forms.NumericUpDown nudChar2;
+ public System.Windows.Forms.NumericUpDown nudChar1;
}
}
\ No newline at end of file
diff --git a/McBitFont/New.cs b/McBitFont/New.cs
index 674982f..add3740 100644
--- a/McBitFont/New.cs
+++ b/McBitFont/New.cs
@@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
+using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
+using static System.Net.Mime.MediaTypeNames;
namespace McBitFont {
public partial class New : Form {
@@ -25,18 +27,26 @@ namespace McBitFont {
}
}
+ private MainForm mainForm;
- public New() {
+
+ public New(MainForm form) {
InitializeComponent();
+ mainForm = form;
+ this.Width = 300; this.Height = 250;
}
private void cbSingle_CheckedChanged(object sender, EventArgs e) {
bool c = !cbSingle.Checked;
+ bool f = cbFontBased.Checked;
cbNotPrintable.Enabled = c;
cbLatin.Enabled = c;
cbExtended.Enabled = c;
+ cbFontBased.Enabled = c;
rbMono.Enabled = c;
rbVar.Enabled = c;
+ pnlFont.Visible = c && f;
+ this.Width = c && f ? 500 : 300;
}
private void New_Load(object sender, EventArgs e) {
@@ -59,6 +69,78 @@ namespace McBitFont {
cbEncoding.Items.Add(new EncodingItem(1256, "Arabic"));
cbEncoding.Items.Add(new EncodingItem(1257, "Baltic"));
cbEncoding.SelectedIndex = 1;
+
+ lblFont.Text = dlgFont.Font.Name + " " + dlgFont.Font.Size.ToString();
+ updateChars();
+ }
+
+ private void updateChars() {
+ int neww, newh;
+ const int pbw = 100;
+ const int pbh = 124;
+ int w = (int)nudNewX.Value;
+ int h = (int)nudNewY.Value;
+ int difw = pbw - w;
+ int difh = pbh - h;
+ string[] chars = { "A", "a" };
+ PictureBox[] pbs = { pbChar1, pbChar2 };
+
+ if (difw > 0) {
+ if (difh > 0) {
+ //not wider, not taller
+ if (difw < difh) {
+ neww = pbw;
+ newh = h * pbw / w;
+ } else {
+ newh = pbh;
+ neww = w * pbh / h;
+ }
+ } else {
+ // not wider, taller
+ newh = pbh;
+ neww = w * pbh / h;
+ }
+ } else {
+ if (difh > 0) {
+ //wider, not taller
+ neww = pbw;
+ newh = h * pbw / w;
+ } else {
+ // wider, taller
+ if (difw > difh) {
+ neww = pbw;
+ newh = h * pbw / w;
+ } else {
+ newh = pbh;
+ neww = w * pbh / h;
+ }
+ }
+ }
+
+
+ Bitmap bmp, result;
+ Graphics g;
+ chars[0] = mainForm.decodeSymbol((int)nudChar1.Value);
+ chars[1] = mainForm.decodeSymbol((int)nudChar2.Value);
+ for (int i = 0; i < 2; i++) {
+ bmp = new Bitmap((int)nudNewX.Value, (int)nudNewY.Value);
+ g = Graphics.FromImage(bmp);
+ g.Clear(Color.White);
+ g.SmoothingMode = SmoothingMode.None;
+ g.InterpolationMode = InterpolationMode.NearestNeighbor;
+ g.PixelOffsetMode = PixelOffsetMode.Half;
+ g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit;
+ g.DrawString(chars[i], dlgFont.Font, Brushes.Black, (int)nudShiftX.Value, (int)nudShiftY.Value);
+ g.Flush();
+
+ result = new Bitmap(neww, newh);
+ using (Graphics gr = Graphics.FromImage(result)) {
+ gr.InterpolationMode = InterpolationMode.NearestNeighbor;
+ gr.PixelOffsetMode = PixelOffsetMode.Half;
+ gr.DrawImage(bmp, 0, 0, neww, newh);
+ }
+ pbs[i].Image = result;
+ }
}
private void btnCancel_Click(object sender, EventArgs e) {
@@ -78,5 +160,23 @@ namespace McBitFont {
private void cbExtended_CheckedChanged(object sender, EventArgs e) {
cbEncoding.Enabled = cbExtended.Checked;
}
+
+ private void cbFontBased_CheckedChanged(object sender, EventArgs e) {
+ bool c = !cbSingle.Checked;
+ bool f = cbFontBased.Checked;
+ pnlFont.Visible = c && f;
+ this.Width = c && f ? 500 : 300;
+ }
+
+ private void btnFont_Click(object sender, EventArgs e) {
+ if (dlgFont.ShowDialog() == DialogResult.OK) {
+ lblFont.Text = dlgFont.Font.Name + " " + dlgFont.Font.Size.ToString();
+ updateChars();
+ }
+ }
+
+ private void nudNewX_ValueChanged(object sender, EventArgs e) {
+ updateChars();
+ }
}
}
diff --git a/McBitFont/New.resx b/McBitFont/New.resx
index df8339b..5f989c5 100644
--- a/McBitFont/New.resx
+++ b/McBitFont/New.resx
@@ -120,4 +120,7 @@
17, 17
+
+ 114, 17
+
\ No newline at end of file
diff --git a/McBitFont/Properties/Resources.Designer.cs b/McBitFont/Properties/Resources.Designer.cs
index e1c0540..dc052f5 100644
--- a/McBitFont/Properties/Resources.Designer.cs
+++ b/McBitFont/Properties/Resources.Designer.cs
@@ -70,6 +70,16 @@ namespace McBitFont.Properties {
}
}
+ ///
+ /// Поиск локализованного ресурса типа System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap action_check {
+ get {
+ object obj = ResourceManager.GetObject("action_check", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
///
@@ -120,6 +130,96 @@ namespace McBitFont.Properties {
}
}
+ ///
+ /// Поиск локализованного ресурса типа System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Famfamfam_Silk_Disk_16 {
+ get {
+ object obj = ResourceManager.GetObject("Famfamfam-Silk-Disk.16", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Поиск локализованного ресурса типа System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Famfamfam_Silk_Door_out_16 {
+ get {
+ object obj = ResourceManager.GetObject("Famfamfam-Silk-Door-out.16", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Поиск локализованного ресурса типа System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Famfamfam_Silk_Folder_16 {
+ get {
+ object obj = ResourceManager.GetObject("Famfamfam-Silk-Folder.16", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Поиск локализованного ресурса типа System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Famfamfam_Silk_Folder_page_16 {
+ get {
+ object obj = ResourceManager.GetObject("Famfamfam-Silk-Folder-page.16", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Поиск локализованного ресурса типа System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Famfamfam_Silk_Page_copy_16 {
+ get {
+ object obj = ResourceManager.GetObject("Famfamfam-Silk-Page-copy.16", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Поиск локализованного ресурса типа System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Famfamfam_Silk_Page_paste_16 {
+ get {
+ object obj = ResourceManager.GetObject("Famfamfam-Silk-Page-paste.16", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Поиск локализованного ресурса типа System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Famfamfam_Silk_Page_white_16 {
+ get {
+ object obj = ResourceManager.GetObject("Famfamfam-Silk-Page-white.16", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Поиск локализованного ресурса типа System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Famfamfam_Silk_Shape_flip_horizontal_16 {
+ get {
+ object obj = ResourceManager.GetObject("Famfamfam-Silk-Shape-flip-horizontal.16", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Поиск локализованного ресурса типа System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Famfamfam_Silk_Shape_flip_vertical_16 {
+ get {
+ object obj = ResourceManager.GetObject("Famfamfam-Silk-Shape-flip-vertical.16", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
///
@@ -140,6 +240,16 @@ namespace McBitFont.Properties {
}
}
+ ///
+ /// Поиск локализованного ресурса типа System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Ionic_Ionicons_Invert_mode_outline_16 {
+ get {
+ object obj = ResourceManager.GetObject("Ionic-Ionicons-Invert-mode-outline.16", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
///
diff --git a/McBitFont/Properties/Resources.resx b/McBitFont/Properties/Resources.resx
index 73dfd4b..5f104de 100644
--- a/McBitFont/Properties/Resources.resx
+++ b/McBitFont/Properties/Resources.resx
@@ -118,31 +118,64 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- ..\Resources\action_add.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Resources\arrow_next.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- ..\Resources\action_remove.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Resources\Famfamfam-Silk-Page-copy.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\Famfamfam-Silk-Disk.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\Famfamfam-Silk-Folder.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
..\Resources\arrow_back.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- ..\Resources\arrow_down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Resources\action_check.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- ..\Resources\arrow_next.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
-
- ..\Resources\arrow_top.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
-
- ..\Resources\file.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
-
- ..\Resources\folder_open.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Resources\Famfamfam-Silk-Page-white.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
..\Resources\save.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Resources\Famfamfam-Silk-Door-out.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\Famfamfam-Silk-Folder-page.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\arrow_down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\action_add.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\Famfamfam-Silk-Page-paste.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\action_remove.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\Famfamfam-Silk-Shape-flip-vertical.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\file.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\arrow_top.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\Famfamfam-Silk-Shape-flip-horizontal.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\folder_open.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\Ionic-Ionicons-Invert-mode-outline.16.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/Famfamfam-Silk-Disk.16.png b/McBitFont/Resources/Famfamfam-Silk-Disk.16.png
new file mode 100644
index 0000000..95383d3
Binary files /dev/null and b/McBitFont/Resources/Famfamfam-Silk-Disk.16.png differ
diff --git a/McBitFont/Resources/Famfamfam-Silk-Door-out.16.png b/McBitFont/Resources/Famfamfam-Silk-Door-out.16.png
new file mode 100644
index 0000000..466ea2c
Binary files /dev/null and b/McBitFont/Resources/Famfamfam-Silk-Door-out.16.png differ
diff --git a/McBitFont/Resources/Famfamfam-Silk-Folder-page.16.png b/McBitFont/Resources/Famfamfam-Silk-Folder-page.16.png
new file mode 100644
index 0000000..68b73d3
Binary files /dev/null and b/McBitFont/Resources/Famfamfam-Silk-Folder-page.16.png differ
diff --git a/McBitFont/Resources/Famfamfam-Silk-Folder.16.png b/McBitFont/Resources/Famfamfam-Silk-Folder.16.png
new file mode 100644
index 0000000..aee3323
Binary files /dev/null and b/McBitFont/Resources/Famfamfam-Silk-Folder.16.png differ
diff --git a/McBitFont/Resources/Famfamfam-Silk-Page-copy.16.png b/McBitFont/Resources/Famfamfam-Silk-Page-copy.16.png
new file mode 100644
index 0000000..6f3eba1
Binary files /dev/null and b/McBitFont/Resources/Famfamfam-Silk-Page-copy.16.png differ
diff --git a/McBitFont/Resources/Famfamfam-Silk-Page-paste.16.png b/McBitFont/Resources/Famfamfam-Silk-Page-paste.16.png
new file mode 100644
index 0000000..6948ace
Binary files /dev/null and b/McBitFont/Resources/Famfamfam-Silk-Page-paste.16.png differ
diff --git a/McBitFont/Resources/Famfamfam-Silk-Page-white.16.png b/McBitFont/Resources/Famfamfam-Silk-Page-white.16.png
new file mode 100644
index 0000000..6e013b6
Binary files /dev/null and b/McBitFont/Resources/Famfamfam-Silk-Page-white.16.png differ
diff --git a/McBitFont/Resources/Famfamfam-Silk-Shape-flip-horizontal.16.png b/McBitFont/Resources/Famfamfam-Silk-Shape-flip-horizontal.16.png
new file mode 100644
index 0000000..d54e45f
Binary files /dev/null and b/McBitFont/Resources/Famfamfam-Silk-Shape-flip-horizontal.16.png differ
diff --git a/McBitFont/Resources/Famfamfam-Silk-Shape-flip-vertical.16.png b/McBitFont/Resources/Famfamfam-Silk-Shape-flip-vertical.16.png
new file mode 100644
index 0000000..e3a7a83
Binary files /dev/null and b/McBitFont/Resources/Famfamfam-Silk-Shape-flip-vertical.16.png differ
diff --git a/McBitFont/Resources/Ionic-Ionicons-Invert-mode-outline.16.png b/McBitFont/Resources/Ionic-Ionicons-Invert-mode-outline.16.png
new file mode 100644
index 0000000..2a17107
Binary files /dev/null and b/McBitFont/Resources/Ionic-Ionicons-Invert-mode-outline.16.png differ
diff --git a/McBitFont/Resources/action_check.png b/McBitFont/Resources/action_check.png
new file mode 100644
index 0000000..42aea42
Binary files /dev/null and b/McBitFont/Resources/action_check.png differ
diff --git a/icons_9x9.mbf b/examples/icons_9x9.mbf
similarity index 100%
rename from icons_9x9.mbf
rename to examples/icons_9x9.mbf
diff --git a/icons/Avosoft-Warm-Toolbar-Paste.16.png b/icons/Avosoft-Warm-Toolbar-Paste.16.png
new file mode 100644
index 0000000..c05dfe2
Binary files /dev/null and b/icons/Avosoft-Warm-Toolbar-Paste.16.png differ
diff --git a/icons/Custom-Icon-Design-Flatastic-1-Copy.16.png b/icons/Custom-Icon-Design-Flatastic-1-Copy.16.png
new file mode 100644
index 0000000..72071d0
Binary files /dev/null and b/icons/Custom-Icon-Design-Flatastic-1-Copy.16.png differ
diff --git a/icons/Custom-Icon-Design-Flatastic-8-Paste.16.png b/icons/Custom-Icon-Design-Flatastic-8-Paste.16.png
new file mode 100644
index 0000000..78da6a4
Binary files /dev/null and b/icons/Custom-Icon-Design-Flatastic-8-Paste.16.png differ
diff --git a/icons/Everaldo-Crystal-Clear-Mimetype-kmultiple-copy.16.png b/icons/Everaldo-Crystal-Clear-Mimetype-kmultiple-copy.16.png
new file mode 100644
index 0000000..bda30de
Binary files /dev/null and b/icons/Everaldo-Crystal-Clear-Mimetype-kmultiple-copy.16.png differ
diff --git a/icons/Famfamfam-Silk-Disk.16.png b/icons/Famfamfam-Silk-Disk.16.png
new file mode 100644
index 0000000..95383d3
Binary files /dev/null and b/icons/Famfamfam-Silk-Disk.16.png differ
diff --git a/icons/Famfamfam-Silk-Door-out.16.png b/icons/Famfamfam-Silk-Door-out.16.png
new file mode 100644
index 0000000..466ea2c
Binary files /dev/null and b/icons/Famfamfam-Silk-Door-out.16.png differ
diff --git a/icons/Famfamfam-Silk-Folder-page.16.png b/icons/Famfamfam-Silk-Folder-page.16.png
new file mode 100644
index 0000000..68b73d3
Binary files /dev/null and b/icons/Famfamfam-Silk-Folder-page.16.png differ
diff --git a/icons/Famfamfam-Silk-Folder.16.png b/icons/Famfamfam-Silk-Folder.16.png
new file mode 100644
index 0000000..aee3323
Binary files /dev/null and b/icons/Famfamfam-Silk-Folder.16.png differ
diff --git a/icons/Famfamfam-Silk-Page-copy.16.png b/icons/Famfamfam-Silk-Page-copy.16.png
new file mode 100644
index 0000000..6f3eba1
Binary files /dev/null and b/icons/Famfamfam-Silk-Page-copy.16.png differ
diff --git a/icons/Famfamfam-Silk-Page-paste.16.png b/icons/Famfamfam-Silk-Page-paste.16.png
new file mode 100644
index 0000000..6948ace
Binary files /dev/null and b/icons/Famfamfam-Silk-Page-paste.16.png differ
diff --git a/icons/Famfamfam-Silk-Page-white-copy.16.png b/icons/Famfamfam-Silk-Page-white-copy.16.png
new file mode 100644
index 0000000..e6c3907
Binary files /dev/null and b/icons/Famfamfam-Silk-Page-white-copy.16.png differ
diff --git a/icons/Famfamfam-Silk-Page-white.16.png b/icons/Famfamfam-Silk-Page-white.16.png
new file mode 100644
index 0000000..6e013b6
Binary files /dev/null and b/icons/Famfamfam-Silk-Page-white.16.png differ
diff --git a/icons/Famfamfam-Silk-Shape-flip-horizontal.16.png b/icons/Famfamfam-Silk-Shape-flip-horizontal.16.png
new file mode 100644
index 0000000..d54e45f
Binary files /dev/null and b/icons/Famfamfam-Silk-Shape-flip-horizontal.16.png differ
diff --git a/icons/Famfamfam-Silk-Shape-flip-vertical.16.png b/icons/Famfamfam-Silk-Shape-flip-vertical.16.png
new file mode 100644
index 0000000..e3a7a83
Binary files /dev/null and b/icons/Famfamfam-Silk-Shape-flip-vertical.16.png differ
diff --git a/icons/Iconleak-Stainless-Copy.16.png b/icons/Iconleak-Stainless-Copy.16.png
new file mode 100644
index 0000000..56504e0
Binary files /dev/null and b/icons/Iconleak-Stainless-Copy.16.png differ