Mercurial > minori
comparison src/sys/glib/dark_theme.cc @ 236:4d461ef7d424
HUGE UPDATE: convert build system to autotools
why? because cmake sucks :)
| author | Paper <mrpapersonic@gmail.com> |
|---|---|
| date | Fri, 19 Jan 2024 00:24:02 -0500 |
| parents | ff0061e75f0f |
| children | c130f47f6f48 |
comparison
equal
deleted
inserted
replaced
| 235:593108b3d555 | 236:4d461ef7d424 |
|---|---|
| 4 #include <iostream> | 4 #include <iostream> |
| 5 | 5 |
| 6 namespace glib { | 6 namespace glib { |
| 7 | 7 |
| 8 bool IsInDarkTheme() { | 8 bool IsInDarkTheme() { |
| 9 GSettings* settings = g_settings_new("org.gnome.desktop.interface"); | 9 GSettings* settings = ::g_settings_new("org.gnome.desktop.interface"); |
| 10 if (!settings) | 10 if (!settings) |
| 11 return false; | 11 return false; |
| 12 | 12 |
| 13 GVariant* val = g_settings_get_value(settings, "color-scheme"); | 13 GVariant* val = ::g_settings_get_value(settings, "color-scheme"); |
| 14 if (!val) | 14 if (!val) |
| 15 return false; | 15 return false; |
| 16 | 16 |
| 17 const gchar* str; | 17 const gchar* str; |
| 18 g_variant_get(val, "&s", &str); /* should not be freed */ | 18 ::g_variant_get(val, "&s", &str); /* should not be freed */ |
| 19 if (!str) /* how */ | 19 if (!str) /* how */ |
| 20 return false; | 20 return false; |
| 21 | 21 |
| 22 bool success = !std::strcmp(str, "prefer-dark"); | 22 bool success = !std::strcmp(str, "prefer-dark"); |
| 23 | 23 |
| 24 /* unref these */ | 24 /* unref these */ |
| 25 g_variant_unref(val); | 25 ::g_variant_unref(val); |
| 26 g_object_unref(settings); | 26 ::g_object_unref(settings); |
| 27 | 27 |
| 28 return success; | 28 return success; |
| 29 } | 29 } |
| 30 | 30 |
| 31 } | 31 } |
