https://github.com/brianluft/heirloom/commit/3001b284130c399... is rather interesting. Not only for all of the implicit type conversions that the code turned out to be doing, but also for all of the things that were dropped.
It is not totally "modernized", though. Its idea of "Unicode only" is using WTF-16 rather than UTF-8 (which is possible on Win32 nowadays with code page 65001).
> GDI doesn't currently support setting the ActiveCodePage property per process. Instead, GDI defaults to the active system codepage. To configure your app to render UTF-8 text via GDI, go to Windows Settings > Time & language > Language & region > Administrative language settings > Change system locale, and check Beta: Use Unicode UTF-8 for worldwide language support. Then reboot the PC for the change to take effect.
Source: https://learn.microsoft.com/en-us/windows/apps/design/global...
I don't think changing the system settings for one application to work is a great idea, especially as that setting can break other applications. Until Microsoft fixes GDI, I think it'll be a while before UTF-8 is a viable option.
I always install IBM's Workplace Shell for Windows on Windows 3.x which replaces PM and FM with a shell that looks and works like the OS/2 Workplace Shell.
It's open source and the installer is available here: https://winworldpc.com/product/ibm-workplace-shell/151
Windows 10 is applying smooth scrolling to the windows, which I can disable in Performance Options but you might want to override the setting. Waiting for the scrolling to catch up is pretty at odds with the "fast, lightweight" aesthetic you're going for.
Minimize is disabled because it's too buggy currently, but I plan to bring it back. In the old days it would minimize to an icon but these days it minimizes to a tiny sliver of a titlebar that's impossible to click on. For Program Manager, I implemented a manual workaround (literally, my own minimized icon bar), but I haven't implemented that in File Manager yet. Definitely something I have planned for the future.
Thanks for the tip about smooth scrolling. I have it disabled in Performance Options, so I never noticed.
Delphi / C++Builder wrote a new implementation of MDI to keep older apps working, but looking modern. (It means MDI-architected apps can use, eg, tabs for windows too while keeping the old code the same.) https://blogs.embarcadero.com/3-x-12-vcl-enhancements-in-del...
1 px window border and "modern" scrollbar (small, without end buttons). Modernized /s