The "easy" stuff is nearly done

The export code (mono, bi-colour, rgb, rgb 3 bits per pixel, and binary) is all ported. It took four days. And that's without any testing.

Although only just over 10% of the total codebase, there was a lot to migrate and I rewrote some of it. Some of those rewrites will have knock-on effects to the rest of the migration as I've changed a few function calls and made a few necessary tweaks.

After spending so long with it I realise that it needs serious refactoring. There's a lot of duplicate code and it's a bit messy and convoluted in parts.

I likely won't do any serious rewrites until the application is in a usable state though, but it'll be a nice project for 2024.

The system settings object is mostly done. It currently only supports registry read/write, so I plan on adding a "portable mode" that'll save to a local ini file in the very near future.

The following forms have been migrated, only testing remains:

FormAbout
FormAddLayer
FormDeleteMultiple
FormExportGIF
FormMerge
FormNewProject
FormPlaybackSpeed
FormSaveRange
FormToggleLockStatus

These are small forms with only a few controls and less than 500 lines of code. The main form, FormExport, and a couple of others, will each take several days. I expect the main form (which has hundreds of controls and over 6000 lines of code) will take longer, probably a couple of weeks or more (I'm not looking forward to that one).

As the easy stuff is almost finished, I need to think about how to port the rest. This is my plan as it stands today:

First step is to get basic drawing working. That means getting the matrix component configured, then the NewProject form integrated. From there, it's drawing controls, colours, layers, etc.

After that, we have load and save, then code export. Getting to the end of this bit will be a nice milestone and will make testing easier. It's likely I'll get here with several not 100%, but it'll be a good platform to build on.

BMP/GIF import and export will come much later, they are both nice features, but likely not finished until a few betas have been available for testing.

I hope you'll join me when the time comes!