Mercurial > minori
comparison src/sys/osx/dark_theme.mm @ 1:1ae666fdf9e2
*: initial commit
| author | Paper <mrpapersonic@gmail.com> |
|---|---|
| date | Tue, 08 Aug 2023 19:49:15 -0400 |
| parents | |
| children | 23d0d9319a00 |
comparison
equal
deleted
inserted
replaced
| 0:5a76e1b94163 | 1:1ae666fdf9e2 |
|---|---|
| 1 #include "sys/osx/dark_theme.h" | |
| 2 #import <Cocoa/Cocoa.h> | |
| 3 | |
| 4 bool osx::DarkThemeAvailable() | |
| 5 { | |
| 6 return (__builtin_available(macOS 10.14, *)) ? true : false; | |
| 7 } | |
| 8 | |
| 9 bool osx::IsInDarkTheme() | |
| 10 { | |
| 11 if (__builtin_available(macOS 10.14, *)) | |
| 12 { | |
| 13 auto appearance = [NSApp.effectiveAppearance bestMatchFromAppearancesWithNames: | |
| 14 @[ NSAppearanceNameAqua, NSAppearanceNameDarkAqua ]]; | |
| 15 return [appearance isEqualToString:NSAppearanceNameDarkAqua]; | |
| 16 } | |
| 17 return false; | |
| 18 } | |
| 19 | |
| 20 void osx::SetToDarkTheme() | |
| 21 { | |
| 22 // https://stackoverflow.com/questions/55925862/how-can-i-set-my-os-x-application-theme-in-code | |
| 23 if (__builtin_available(macOS 10.14, *)) | |
| 24 { | |
| 25 [NSApp setAppearance:[NSAppearance appearanceNamed:NSAppearanceNameDarkAqua]]; | |
| 26 } | |
| 27 } | |
| 28 | |
| 29 void osx::SetToLightTheme() | |
| 30 { | |
| 31 // https://stackoverflow.com/questions/55925862/how-can-i-set-my-os-x-application-theme-in-code | |
| 32 if (__builtin_available(macOS 10.14, *)) | |
| 33 { | |
| 34 [NSApp setAppearance:[NSAppearance appearanceNamed:NSAppearanceNameAqua]]; | |
| 35 } | |
| 36 } | |
| 37 | |
| 38 void osx::SetToAutoTheme() | |
| 39 { | |
| 40 if (__builtin_available(macOS 10.14, *)) | |
| 41 { | |
| 42 [NSApp setAppearance:nil]; | |
| 43 } | |
| 44 } |
