3 Commits

Author SHA1 Message Date
Anton Mukhin
ca42d3819f TODO feature: Delete symbols before/after selected 2025-05-20 14:05:42 +03:00
Anton Mukhin
bbfccc2308 Example files: saved in new format. Moved old format ones to a sub-folder 2025-05-20 14:05:18 +03:00
Anton Mukhin
ea3de134d2 Migrated to .NET 9 (with some functionality broken) 2025-05-20 09:12:34 +03:00
27 changed files with 672 additions and 1005 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1,21 +1,13 @@
using MessagePack;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Runtime.InteropServices.ComTypes;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Windows.Forms.VisualStyles;
namespace McBitFont {
@@ -64,7 +56,7 @@ namespace McBitFont {
public bool monospaced = false;
bool modified = false;
bool prjModified = false;
public const string version = "1.7";
public const string version = "2.0";
public string prjName = "Untitled";
public string prjFileName = "";
public int codepage = 1251;
@@ -80,7 +72,7 @@ namespace McBitFont {
private void Form1_Load(object sender, EventArgs e) {
lblType.Text = monospaced ? "Monospaced" : "Variable width / Single";
dotWidth = (int)nudX.Value;
dotWidth = (int)nudX.Value;
dotHeight = (int)nudY.Value;
gap = (cellSize < 5) ? 0 : 1;
@@ -108,6 +100,8 @@ namespace McBitFont {
if (Environment.GetCommandLineArgs().Length > 1) {
loadProject(Environment.GetCommandLineArgs()[1]);
}
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
}
[DllImport("user32.dll")]
@@ -205,9 +199,9 @@ namespace McBitFont {
ff.width = neww;
ff.height = newh;
t = new bool[neww, newh];
for (int i=0; i<imax; i++) {
for (int j=0;j<jmax; j++) {
if (i+di >= 0 && j+dj >= 0) t[i, j] = ff.data[i + di, j + dj];
for (int i = 0; i < imax; i++) {
for (int j = 0; j < jmax; j++) {
if (i + di >= 0 && j + dj >= 0) t[i, j] = ff.data[i + di, j + dj];
}
}
ff.data = t;
@@ -353,7 +347,7 @@ namespace McBitFont {
bool c;
for (int i = 0; i < dotWidth; i++) {
c = f.data[i, dotHeight - 1];
for (int j = dotHeight-1; j >= 0; j--) {
for (int j = dotHeight - 1; j >= 0; j--) {
if (j == 0) {
f.data[i, j] = c;
} else {
@@ -454,7 +448,7 @@ namespace McBitFont {
for (int i = 0; i < m.width; i++) {
for (int j = 0; j < m.height; j++) {
c = m.data[i, j] ? Color.Black : Color.White;
bmp.SetPixel(i+imin, j+jmin, c);
bmp.SetPixel(i + imin, j + jmin, c);
}
}
var sizedBMP = new Bitmap(bmp, new Size(50, 50));
@@ -470,19 +464,19 @@ namespace McBitFont {
Pen p = new Pen(Color.FromArgb(64, Color.Green));
int x, y;
for (int i=0; i<dotWidth; i++) {
for (int i = 0; i < dotWidth; i++) {
x = pixelOffset + i * (cellSize + gap) - hScroll.Value;
if (gap > 0 && i != 0 && (i % 8) == 0) {
g.DrawLine(p, x - 1, pixelOffset - vScroll.Value, x - 1, h);
}
for (int j=0; j<dotHeight; j++) {
for (int j = 0; j < dotHeight; j++) {
y = pixelOffset + j * (cellSize + gap) - vScroll.Value;
if (gap > 0 && i == 0 && j != 0 && (j % 8) == 0) {
g.DrawLine(p, pixelOffset - hScroll.Value, y-1, w, y-1);
g.DrawLine(p, pixelOffset - hScroll.Value, y - 1, w, y - 1);
}
if (f.data[i, j]) sb = sbb;
else sb = sbw;
g.FillRectangle(sb, x, (baseline == j ? y+1 : y), cellSize, (baseline == j ? cellSize-1 : cellSize));
g.FillRectangle(sb, x, (baseline == j ? y + 1 : y), cellSize, (baseline == j ? cellSize - 1 : cellSize));
}
}
@@ -551,7 +545,7 @@ namespace McBitFont {
nudY.Value = newh;
FrameMiniature newf;
if (form.cbSingle.Checked) {
frames.Add( new FrameMiniature(0, neww, newh));
frames.Add(new FrameMiniature(0, neww, newh));
//f = frames.Find(x => x.code == 0);
append = "Single";
monospaced = false;
@@ -563,7 +557,7 @@ namespace McBitFont {
} else {
if (form.cbNotPrintable.Checked) imin = 0;
else if (form.cbLatin.Checked) imin = 32;
else imin = 128;
else imin = 128;
if (form.cbExtended.Checked) imax = 255;
else if (form.cbLatin.Checked) imax = 127;
@@ -585,7 +579,7 @@ namespace McBitFont {
var s = ff.code.ToString().PadLeft(3, '0');
ilMiniatures.Images.Add(s, (Image)getMiniPictue(ff));
var sss = decodeSymbol(ff.code);
miniList.Items.Add(s, s+' '+append+sss, s);
miniList.Items.Add(s, s + ' ' + append + sss, s);
}
f = copyFrame(frames.First());
dotPanel.Refresh();
@@ -609,6 +603,8 @@ namespace McBitFont {
checkModifiedFrame();
if (miniList.SelectedItems.Count == 0) {
removeSymbolToolStripMenuItem.Enabled = false;
removeBeforeToolStripMenuItem.Enabled = false;
removeAfterToolStripMenuItem.Enabled = false;
copyToolStripMenuItem.Enabled = false;
pasteToolStripMenuItem.Enabled = false;
return;
@@ -628,6 +624,17 @@ namespace McBitFont {
removeSymbolToolStripMenuItem.Enabled = false;
}
copyToolStripMenuItem.Enabled = true;
if (ff.Equals(frames.First())) {
removeBeforeToolStripMenuItem.Enabled = false;
removeAfterToolStripMenuItem.Enabled = true;
} else if (ff.Equals(frames.Last())) {
removeBeforeToolStripMenuItem.Enabled = true;
removeAfterToolStripMenuItem.Enabled = false;
} else {
removeBeforeToolStripMenuItem.Enabled = true;
removeAfterToolStripMenuItem.Enabled = true;
}
if (fbuffer) pasteToolStripMenuItem.Enabled = true;
else pasteToolStripMenuItem.Enabled = false;
}
@@ -635,29 +642,15 @@ namespace McBitFont {
private void saveToolStripMenuItem_Click(object sender, EventArgs e) {
checkModifiedFrame();
if (dlgSave.ShowDialog() == DialogResult.OK) {
SaveBlock sav;
sav.monospaced = monospaced;
sav.frames = frames;
sav.codepage = codepage;
sav.baseline = baseline;
BinaryFormatter formatter = new BinaryFormatter();
using (Stream ms = File.OpenWrite(dlgSave.FileName)) {
formatter.Serialize(ms, sav);
ms.Close();
}
prjModified = false;
prjName = Path.GetFileNameWithoutExtension(dlgSave.FileName);
prjFileName = dlgSave.FileName;
this.Text = "McBitFont " + version + " - " + prjName;
saveProject(dlgSave.FileName);
}
}
private void loadProject(string filename) {
SaveBlock sav;
BinaryFormatter formatter = new BinaryFormatter();
using (FileStream fs = File.Open(filename, FileMode.Open)) {
sav = (SaveBlock)formatter.Deserialize(fs);
sav = MessagePackSerializer.Deserialize<SaveBlock>(fs);
fs.Close();
}
monospaced = sav.monospaced;
@@ -699,9 +692,9 @@ namespace McBitFont {
sav.frames = frames;
sav.codepage = codepage;
sav.baseline = baseline;
BinaryFormatter formatter = new BinaryFormatter();
using (Stream ms = File.OpenWrite(filename)) {
formatter.Serialize(ms, sav);
MessagePackSerializer.Serialize(ms, sav);
ms.Close();
}
prjModified = false;
@@ -775,11 +768,11 @@ namespace McBitFont {
Array.Copy(fbuf.data, f.data, fbuf.data.Length);
} else {
var wmax = (fbuf.width > f.width) ? f.width : fbuf.width;
var hmax = (fbuf.height > f.height) ? f.height : fbuf.height;
var hmax = (fbuf.height > f.height) ? f.height : fbuf.height;
for (int i = 0; i < wmax; i++) {
for (int j = 0; j < hmax; j++) {
f.data[i,j] = fbuf.data[i,j];
f.data[i, j] = fbuf.data[i, j];
}
}
}
@@ -823,75 +816,6 @@ namespace McBitFont {
dotPanel.Refresh();
}
private void saveJSONToolStripMenuItem_Click(object sender, EventArgs e) {
checkModifiedFrame();
if (dlgSave.ShowDialog() == DialogResult.OK) {
SaveBlock sav;
sav.monospaced = monospaced;
sav.frames = frames;
sav.codepage = codepage;
sav.baseline = baseline;
using (Stream ms = File.OpenWrite(dlgSave.FileName)) {
// TODO: Serializer here
MessagePackSerializer.Serialize(ms, sav);
ms.Close();
}
prjModified = false;
prjName = Path.GetFileNameWithoutExtension(dlgSave.FileName);
prjFileName = dlgSave.FileName;
this.Text = "McBitFont " + version + " - " + prjName;
}
}
private void openDEVToolStripMenuItem_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) == DialogResult.Yes) {
saveAsToolStripMenuItem.PerformClick();
return;
}
}
if (dlgOpen.ShowDialog() == DialogResult.OK) {
SaveBlock sav;
var filename = dlgOpen.FileName;
using (FileStream fs = File.Open(filename, FileMode.Open)) {
sav = MessagePackSerializer.Deserialize<SaveBlock>(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;
prjFileName = filename;
prjName = Path.GetFileNameWithoutExtension(filename);
this.Text = "McBitFont " + version + " - " + prjName;
checkForAdd();
fbuffer = false;
}
}
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) {
@@ -906,5 +830,35 @@ namespace McBitFont {
dotPanel.Refresh();
}
// Remove all before or after specified symbol
private void removeBA(bool before) {
if (miniList.SelectedItems.Count == 0) {
removeBeforeToolStripMenuItem.Enabled = false;
removeAfterToolStripMenuItem.Enabled = false;
return;
}
int step = before ? -1 : 1;
var sel = miniList.SelectedItems[0].ImageKey;
int code = Convert.ToInt32(sel);
int findex;
while (miniList.Items.ContainsKey((code + step).ToString().PadLeft(3, '0'))) {
code += step;
findex = frames.FindIndex(x => x.code == code);
frames.RemoveAt(findex);
miniList.Items.RemoveByKey(code.ToString().PadLeft(3, '0'));
}
//dotPanel.Refresh();
miniList.Refresh();
prjModified = true;
}
private void removeBeforeToolStripMenuItem_Click(object sender, EventArgs e) {
removeBA(true);
}
private void removeAfterToolStripMenuItem_Click(object sender, EventArgs e) {
removeBA(false);
}
}
}

View File

@@ -132,9 +132,6 @@
<metadata name="dlgOpen.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>336, 17</value>
</metadata>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>436, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>

View File

@@ -1,17 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{7C01529E-4414-405F-9B57-19FA4AF8ED60}</ProjectGuid>
<TargetFramework>net9.0-windows</TargetFramework>
<OutputType>WinExe</OutputType>
<RootNamespace>McBitFont</RootNamespace>
<AssemblyName>McBitFont</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
@@ -27,204 +17,24 @@
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<UseWindowsForms>true</UseWindowsForms>
<ImportWindowsDesktopTargets>true</ImportWindowsDesktopTargets>
<ApplicationIcon>icon_64.ico</ApplicationIcon>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<FileVersion>2.0.0.0</FileVersion>
</PropertyGroup>
<ItemGroup>
<Reference Include="MessagePack, Version=3.1.3.0, Culture=neutral, PublicKeyToken=b4a0369545f0a1be, processorArchitecture=MSIL">
<HintPath>..\packages\MessagePack.3.1.3\lib\net472\MessagePack.dll</HintPath>
</Reference>
<Reference Include="MessagePack.Annotations, Version=3.1.3.0, Culture=neutral, PublicKeyToken=b4a0369545f0a1be, processorArchitecture=MSIL">
<HintPath>..\packages\MessagePack.Annotations.3.1.3\lib\netstandard2.0\MessagePack.Annotations.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.8.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
</Reference>
<Reference Include="Microsoft.NET.StringTools, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.NET.StringTools.17.11.4\lib\net472\Microsoft.NET.StringTools.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.Collections.Immutable, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Collections.Immutable.8.0.0\lib\net462\System.Collections.Immutable.dll</HintPath>
</Reference>
<Reference Include="System.Core" />
<Reference Include="System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="About.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="About.Designer.cs">
<DependentUpon>About.cs</DependentUpon>
</Compile>
<Compile Include="Export.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Export.Designer.cs">
<DependentUpon>Export.cs</DependentUpon>
</Compile>
<Compile Include="Form1.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon>
</Compile>
<Compile Include="New.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="New.Designer.cs">
<DependentUpon>New.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="About.resx">
<DependentUpon>About.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Export.resx">
<DependentUpon>Export.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Form1.resx">
<DependentUpon>Form1.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="New.resx">
<DependentUpon>New.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\action_add.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\action_remove.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\arrow_back.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\arrow_down.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\arrow_next.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\arrow_top.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\file.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\folder_open.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\save.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\action_check.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\Famfamfam-Silk-Shape-flip-vertical.16.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\Famfamfam-Silk-Shape-flip-horizontal.16.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\Famfamfam-Silk-Page-paste.16.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\Famfamfam-Silk-Page-copy.16.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\Famfamfam-Silk-Door-out.16.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\Famfamfam-Silk-Disk.16.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\Famfamfam-Silk-Page-white.16.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\Famfamfam-Silk-Folder-page.16.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\Famfamfam-Silk-Folder.16.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\Ionic-Ionicons-Invert-mode-outline.16.png" />
</ItemGroup>
<ItemGroup>
<Content Include="icon.ico" />
<Content Include="icon_64.ico" />
<None Include="Resources\icon_64.png" />
<None Include="Resources\icon_32.png" />
<None Include="Resources\icon.png" />
<PackageReference Include="MessagePack" Version="3.1.3" />
<PackageReference Include="MessagePack.Annotations" Version="3.1.3" />
<PackageReference Include="MessagePackAnalyzer" Version="3.1.3" />
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="9.0.5" />
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
<PackageReference Include="Microsoft.NET.StringTools" Version="17.11.4" />
<PackageReference Include="System.Collections.Immutable" Version="9.0.5" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.1.2" />
<PackageReference Include="System.Text.Encoding.CodePages" Version="9.0.5" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.7.2">
@@ -238,12 +48,4 @@
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\MessagePackAnalyzer.3.1.3\build\MessagePackAnalyzer.targets" Condition="Exists('..\packages\MessagePackAnalyzer.3.1.3\build\MessagePackAnalyzer.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\MessagePackAnalyzer.3.1.3\build\MessagePackAnalyzer.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MessagePackAnalyzer.3.1.3\build\MessagePackAnalyzer.targets'))" />
</Target>
</Project>

View File

@@ -1,36 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Общие сведения об этой сборке предоставляются следующим набором
// набора атрибутов. Измените значения этих атрибутов для изменения сведений,
// связанных со сборкой.
[assembly: AssemblyTitle("McBitFont")]
[assembly: AssemblyDescription("McFLY's Bit Font and Image Editor")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("McBitFont")]
[assembly: AssemblyCopyright("© Anton Mukhin, 2023")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми
// для компонентов COM. Если необходимо обратиться к типу в этой сборке через
// COM, следует установить атрибут ComVisible в TRUE для этого типа.
[assembly: ComVisible(false)]
// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM
[assembly: Guid("7c01529e-4414-405f-9b57-19fa4af8ed60")]
// Сведения о версии сборки состоят из указанных ниже четырех значений:
//
// Основной номер версии
// Дополнительный номер версии
// Номер сборки
// Редакция
//
// Можно задать все значения или принять номера сборки и редакции по умолчанию
// используя "*", как показано ниже:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.7.0.0")]
[assembly: AssemblyFileVersion("1.7.0.0")]

View File

@@ -1,14 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="MessagePack" version="3.1.3" targetFramework="net472" />
<package id="MessagePack.Annotations" version="3.1.3" targetFramework="net472" />
<package id="MessagePackAnalyzer" version="3.1.3" targetFramework="net472" developmentDependency="true" />
<package id="Microsoft.Bcl.AsyncInterfaces" version="8.0.0" targetFramework="net472" />
<package id="Microsoft.NET.StringTools" version="17.11.4" targetFramework="net472" />
<package id="System.Buffers" version="4.5.1" targetFramework="net472" />
<package id="System.Collections.Immutable" version="8.0.0" targetFramework="net472" />
<package id="System.Memory" version="4.5.5" targetFramework="net472" />
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net472" />
<package id="System.Runtime.CompilerServices.Unsafe" version="6.0.0" targetFramework="net472" />
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net472" />
</packages>

View File

@@ -1,8 +1,9 @@
Application:
V Migrate from .Net Framework 4.7 to .NET 9
Functionality:
- Context menu in symbol navigator
- Delete symbols before/after selected
V Delete symbols before/after selected
- Shift all symbols on code line (change symbol codes)
- Specify starting code (extends the shift)
- Ability to make monospaced font a variable width one

Binary file not shown.

BIN
examples/Font_5x7.mbfont Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
examples/icons_9x9.mbfont Normal file

Binary file not shown.