Dear Kukulkan
MacOS
For MacOS dark / light mode is actually very easy, please check MacOS Forum for several functions to make App Dark mode aware and switch when theme changes; then redraw your custom buttons / toolbars with correct color (I do it and the result is better looks than apps like, let's say, Telegram, which just goes black, while the window and lists / trees should be a semi-transparent blend of back color and wallpaper).
I use also MacOS message boxes throughout (on Mac OS, on Linux / Windows I use my own, looks better and allows for "do not bug me" checkbox)
Both approaches give consistent UI - Apple handles UI gadgets better and recolors automatically.
Intercept color change on MacOS - works from from old OS versions to M2 with MacOS Ventura: search forum for "Key-Value Observer class" - callback to change UI when colors change, this code will also have functions to retrieve correct background / foreground in RGB or RGBA with transparency / blending effects.
Modern Apple Requesters: search for CocoaMessage(0, CocoaMessage(0, 0, "NSAlert new"), "autorelease") and you find plenty of code to do anything, from custom icons to checkboxes and all in consistent OS dependent manner.
MacOS - size of String gadgets and Combos is indeed inconsistent, I'm checking the combo sizes and adjusting string gadgets to have consistent height.
Resizing - did not find any code, that works like correct layout (so combos and single line text resizes only horizontally, lists, multiline text V and H) - so bake your own unfortunately.
Windows
System colors on Windows and Linux (good for owner - drawn toolbars, buttons) : ModuleEx can help, even if you will use just small portions of the code - as it assumes developers want to code themes, which is not always the case and color design is an art in itself.
I did not find yet any approach which is consistent and complete - even very good "Dark Mode" module by ChrisP does 80%-90% of the job but at cost of performance and not covering all aspects of UI (menu, statusbar, borderless controls, combos in older windows versions, DPI support etc.). PureBasic at least uses already UXTheme, so window title bar and borders are correct on each Windows version (and rounded on Win11)
Detecting dark mode on Windows - can be done via registry query (see MSDN)
Linux
Dark mode on Linux: well this is not a dark mode, but GTK /QT theme, so should be automatic - if it is not for you - then check your code for calls to set background / foreground.
The gadgets are whatever the particular brew of Linux you have - sometimes terrible, sometimes ok.
Disclamer
Considering, that I program in PB seriously only since mid-December 2022 - it seems there is always a solution, if I find or make one one for Windows - I will post it here gladly. Do not take what I wrote too seriously - newbie here.
Purebasic is an excellent cross-platform compiler, which produces single, statically linked executables - perfect for performance, distribution and portability. Very limited gadget support is it's only weakness. Having 20 libs / dlls make simply no sense for PB - convert to .NET or something instead (that is what I do for seriously big projects - no chance t do it in PB).
Good luck all with your projects, alles gute Kukulkan!
And big thanks to Fred and team for great and durable product
How to make a modern GUI?
Re: How to make a modern GUI?
S.T.V.B.E.E.V.
Re: How to make a modern GUI?
My Projects ThreadToGUI / OOP-BaseClass / EventDesigner V3
PB v3.30 / v5.75 - OS Mac Mini OSX 10.xx - VM Window Pro / Linux Ubuntu
Downloads on my Webspace / OneDrive
PB v3.30 / v5.75 - OS Mac Mini OSX 10.xx - VM Window Pro / Linux Ubuntu
Downloads on my Webspace / OneDrive