From 1aa3d58375a98788782027eed93575621415d6e8 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 4 Jul 2022 08:45:16 +0530 Subject: [PATCH] API to get/set cocoa aqua appearance override --- src/calibre/utils/cocoa.m | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/calibre/utils/cocoa.m b/src/calibre/utils/cocoa.m index 888e0f95a2..e337797120 100644 --- a/src/calibre/utils/cocoa.m +++ b/src/calibre/utils/cocoa.m @@ -225,7 +225,32 @@ release_io_pm_assertion(PyObject *self, PyObject *args) { return NULL; } +static PyObject* +set_requires_aqua_system_appearance(PyObject *self, PyObject *yes) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + if (PyObject_IsTrue(yes)) { + [defaults setBool:YES forKey:@"NSRequiresAquaSystemAppearance"]; + } else { + if (yes == Py_None) [defaults removeObjectForKey:@"NSRequiresAquaSystemAppearance"]; + else [defaults setBool:NO forKey:@"NSRequiresAquaSystemAppearance"]; + } + Py_RETURN_NONE; +} + +static PyObject* +get_requires_aqua_system_appearance(PyObject *self, PyObject *unused) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + if ([defaults objectForKey:@"NSRequiresAquaSystemAppearance"]) { + if ([defaults boolForKey:@"NSRequiresAquaSystemAppearance"]) { Py_RETURN_TRUE; } + Py_RETURN_FALSE; + } + Py_RETURN_NONE; +} + + static PyMethodDef module_methods[] = { + {"set_requires_aqua_system_appearance", (PyCFunction)set_requires_aqua_system_appearance, METH_O, ""}, + {"get_requires_aqua_system_appearance", (PyCFunction)get_requires_aqua_system_appearance, METH_NOARGS, ""}, {"transient_scroller", (PyCFunction)transient_scroller, METH_NOARGS, ""}, {"cursor_blink_time", (PyCFunction)cursor_blink_time, METH_NOARGS, ""}, {"enable_cocoa_multithreading", (PyCFunction)enable_cocoa_multithreading, METH_NOARGS, ""},