Mercurial > minori
view src/sys/osx/dark_theme.mm @ 11:fc1bf97c528b
*: use C++11 standard
I've been meaning to do this for a while, but I didn't want to reimplement
the filesystem code. Now we are on C++11 and most compilers from the past 5 centuries should support this now
| author | Paper <mrpapersonic@gmail.com> |
|---|---|
| date | Sun, 17 Sep 2023 06:14:30 -0400 |
| parents | 5c0397762b53 |
| children | cde8f67a7c7d |
line wrap: on
line source
#include "sys/osx/dark_theme.h" #import <Cocoa/Cocoa.h> namespace osx { bool DarkThemeAvailable() { if (@available(macOS 10.14, *)) return true; else return false; } bool IsInDarkTheme() { if (@available(macOS 10.14, *)) { auto appearance = [NSApp.effectiveAppearance bestMatchFromAppearancesWithNames:@[ NSAppearanceNameAqua, NSAppearanceNameDarkAqua ]]; return [appearance isEqualToString:NSAppearanceNameDarkAqua]; } return false; } void SetToDarkTheme() { // https://stackoverflow.com/questions/55925862/how-can-i-set-my-os-x-application-theme-in-code if (@available(macOS 10.14, *)) { [NSApp setAppearance:[NSAppearance appearanceNamed:NSAppearanceNameDarkAqua]]; } } void SetToLightTheme() { // https://stackoverflow.com/questions/55925862/how-can-i-set-my-os-x-application-theme-in-code if (__builtin_available(macOS 10.14, *)) { [NSApp setAppearance:[NSAppearance appearanceNamed:NSAppearanceNameAqua]]; } } void SetToAutoTheme() { if (@available(macOS 10.14, *)) { [NSApp setAppearance:nil]; } } } // namespace osx
