4 Commits

Author SHA1 Message Date
Anton Mukhin
c5e440ee44 Update TODO; More examples 2025-05-16 18:04:09 +03:00
Anton Mukhin
34bec25b3d Fix TODO.txt 2023-07-07 12:08:44 +03:00
Anton Mukhin
b1acbdd98f Ability to open a project by double-clicking on a file in Explorer 2023-07-07 12:07:14 +03:00
Anton Mukhin
6d5f90aaac TODO added 2023-07-07 10:27:25 +03:00
7 changed files with 71 additions and 39 deletions

View File

@@ -88,7 +88,7 @@ namespace McBitFont {
int imin, jmin, imax, jmax, idir, jdir; int imin, jmin, imax, jmax, idir, jdir;
if (com) { if (com) {
//Header comments // Header comments
output += comments["header"]; output += comments["header"];
output += comments["scan_order"] + cbOrder.Text + "\n"; output += comments["scan_order"] + cbOrder.Text + "\n";
output += comments["scan_hdir"] + cbHDir.Text + "\n"; output += comments["scan_hdir"] + cbHDir.Text + "\n";
@@ -107,7 +107,7 @@ namespace McBitFont {
} }
} }
//Figure out mins and maxes // Figure out mins and maxes
if (cbOrder.SelectedIndex == 0) { if (cbOrder.SelectedIndex == 0) {
if (cbHDir.SelectedIndex == 0) { if (cbHDir.SelectedIndex == 0) {
// Columns; Left to right // Columns; Left to right

View File

@@ -89,6 +89,11 @@ namespace McBitFont {
this.Text = "McBitFont " + version + " - " + prjName; this.Text = "McBitFont " + version + " - " + prjName;
fbuf = new FrameMiniature(0, dotWidth, dotHeight); fbuf = new FrameMiniature(0, dotWidth, dotHeight);
// Chek for arguments
if (Environment.GetCommandLineArgs().Length > 1) {
loadProject(Environment.GetCommandLineArgs()[1]);
}
} }
[DllImport("user32.dll")] [DllImport("user32.dll")]
@@ -654,6 +659,46 @@ namespace McBitFont {
} }
} }
private void loadProject(string filename) {
SaveBlock sav;
BinaryFormatter formatter = new BinaryFormatter();
using (FileStream fs = File.Open(filename, FileMode.Open)) {
sav = (SaveBlock)formatter.Deserialize(fs);
fs.Close();
}
monospaced = sav.monospaced;
codepage = sav.codepage;
baseline = sav.baseline;
lblType.Text = monospaced ? "Monospaced" : "Variable width / Single";
frames = sav.frames;
miniList.Items.Clear();
ilMiniatures.Images.Clear();
foreach (FrameMiniature ff in frames) {
var s = ff.code.ToString().PadLeft(3, '0');
var sss = decodeSymbol(ff.code);
ilMiniatures.Images.Add(s, (Image)getMiniPictue(ff));
miniList.Items.Add(s, s + ' ' + sss, s);
}
nudX.ValueChanged -= nudX_ValueChanged;
nudY.ValueChanged -= nudY_ValueChanged;
nudX.Value = frames.First().width;
nudY.Value = frames.First().height;
dotResize((int)nudX.Value, (int)nudY.Value);
nudX.ValueChanged += nudX_ValueChanged;
nudY.ValueChanged += nudY_ValueChanged;
f = copyFrame(frames.First());
dotPanel.Refresh();
miniList.Refresh();
modified = false;
prjModified = false;
prjName = Path.GetFileNameWithoutExtension(filename);
this.Text = "McBitFont " + version + " - " + prjName;
checkForAdd();
fbuffer = false;
}
private void openToolStripMenuItem_Click(object sender, EventArgs e) { private void openToolStripMenuItem_Click(object sender, EventArgs e) {
if (prjModified) { if (prjModified) {
if (MessageBox.Show("The project is modified.\nDo you want to save it first?", "Project was modified!", MessageBoxButtons.YesNo) == DialogResult.Yes) { if (MessageBox.Show("The project is modified.\nDo you want to save it first?", "Project was modified!", MessageBoxButtons.YesNo) == DialogResult.Yes) {
@@ -662,43 +707,7 @@ namespace McBitFont {
} }
} }
if (dlgOpen.ShowDialog() == DialogResult.OK) { if (dlgOpen.ShowDialog() == DialogResult.OK) {
SaveBlock sav; loadProject(dlgOpen.FileName);
BinaryFormatter formatter = new BinaryFormatter();
using (FileStream fs = File.Open(dlgOpen.FileName, FileMode.Open)) {
sav = (SaveBlock)formatter.Deserialize(fs);
fs.Close();
}
monospaced = sav.monospaced;
codepage = sav.codepage;
baseline = sav.baseline;
lblType.Text = monospaced ? "Monospaced" : "Variable width / Single";
frames = sav.frames;
miniList.Items.Clear();
ilMiniatures.Images.Clear();
foreach (FrameMiniature ff in frames) {
var s = ff.code.ToString().PadLeft(3, '0');
var sss = decodeSymbol(ff.code);
ilMiniatures.Images.Add(s, (Image)getMiniPictue(ff));
miniList.Items.Add(s, s + ' ' + sss, s);
}
nudX.ValueChanged -= nudX_ValueChanged;
nudY.ValueChanged -= nudY_ValueChanged;
nudX.Value = frames.First().width;
nudY.Value = frames.First().height;
dotResize((int)nudX.Value, (int)nudY.Value);
nudX.ValueChanged += nudX_ValueChanged;
nudY.ValueChanged += nudY_ValueChanged;
f = copyFrame(frames.First());
dotPanel.Refresh();
miniList.Refresh();
modified = false;
prjModified = false;
prjName = Path.GetFileNameWithoutExtension(dlgOpen.FileName);
this.Text = "McBitFont " + version + " - " + prjName;
checkForAdd();
fbuffer = false;
} }
} }

23
TODO.txt Normal file
View File

@@ -0,0 +1,23 @@
Application:
- Implement "Save" menu
Functionality:
- Context menu in symbol navigator
- Delete symbols before/after selected
- Shift all symbols on code line (change symbol codes)
- Specify starting code (extends the shift)
- "Only numbers" range in the New dialog
- "Specify range" in the New dialog
- "Single frame", "only numbers" and "specify range" as radio buttons
- Button to Clear/Fill a block
- Undo/Redo
- Image import from a file
- Import from a text array
- Copy-paste to a symbol with different size
- Rectangle selection to mass-paint, shift and mirror pixels
- Change height of variable width fonts with ability to choose which side to add pixels to
- Make it possible to have zero width chars in VarWidth fonts
- "Packed" fonts export
Bugs:
- Every char changes its width to default on VarWidth font height change!

Binary file not shown.

Binary file not shown.

BIN
examples/helvB08_PREFAB.mbf Normal file

Binary file not shown.

Binary file not shown.