[Lazarus] OS theme change via TAppProperties

Zoë Peterson zoe at scootersoftware.com
Wed Sep 2 01:50:39 CEST 2020


ThemeServices has an OnThemeChange callback for this already. Adding it 
to TApplicationProperties wouldn't be a terrible idea, though it would 
probably be better to implement CM_THEMECHANGED/CM_STYLECHANGED in 
TControl, which would be VCL compatible.  I haven't tested it on most 
widgetsets, but I do see calls to IntfDoThemeChange in them.  When I 
tested with Qt5 on Mint Cinnamon, there were cases where it wasn't 
getting called correctly, but I haven't had a chance to research it 
fully yet.  Looks like Cocoa is just watching for the system colors to 
have changed; this question[1] on StackOverflow implies it'll we'll need 
to hook into DistributedNotificationCenter instead.

1) 
https://stackoverflow.com/questions/39048894/how-to-detect-switch-between-macos-default-dark-mode-using-swift-3 


-- 
Zoë Peterson
Scooter Software


On 8/30/2020 11:43 AM, Alexey Tor. via lazarus wrote:
> This forum topic is about how we can react to macOS theme change.
> https://forum.lazarus.freepascal.org/index.php?topic=43111.msg376056;topicseen#new 
>
>
> and I had the idea to make all this task simpler.
> we have the TApplicationProperties. let's add OnThemeChange there!
> some widgetset funcs will be needed.
> now it's the problem - do this reaction on macOS, on win32,... no one 
> knows how to do it on gtk2/qt...
> I wrote to Dmitry (Cocoa developer) about this idea, then wrote here.
>
> Alexey Torgashin
>




More information about the lazarus mailing list