|
@@ -105,7 +105,7 @@ std::string ConvertAuthorizationStatus(AVAuthorizationStatusMac status) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-// Convert color to RGBA value like "#ABCDEF"
|
|
|
+// Convert color to RGBA value like "aabbccdd"
|
|
|
std::string ToRGBA(NSColor* color) {
|
|
|
return base::StringPrintf(
|
|
|
"%02X%02X%02X%02X", (int)(color.redComponent * 0xFF),
|
|
@@ -113,6 +113,13 @@ std::string ToRGBA(NSColor* color) {
|
|
|
(int)(color.alphaComponent * 0xFF));
|
|
|
}
|
|
|
|
|
|
+// Convert color to RGB hex value like "#ABCDEF"
|
|
|
+std::string ToRGBHex(NSColor* color) {
|
|
|
+ return base::StringPrintf("#%02X%02X%02X", (int)(color.redComponent * 0xFF),
|
|
|
+ (int)(color.greenComponent * 0xFF),
|
|
|
+ (int)(color.blueComponent * 0xFF));
|
|
|
+}
|
|
|
+
|
|
|
} // namespace
|
|
|
|
|
|
void SystemPreferences::PostNotification(const std::string& name,
|
|
@@ -395,6 +402,41 @@ std::string SystemPreferences::GetAccentColor() {
|
|
|
return ToRGBA(sysColor);
|
|
|
}
|
|
|
|
|
|
+std::string SystemPreferences::GetSystemColor(const std::string& color,
|
|
|
+ mate::Arguments* args) {
|
|
|
+ if (@available(macOS 10.10, *)) {
|
|
|
+ NSColor* sysColor;
|
|
|
+ if (color == "blue") {
|
|
|
+ sysColor = [NSColor systemBlueColor];
|
|
|
+ } else if (color == "brown") {
|
|
|
+ sysColor = [NSColor systemBrownColor];
|
|
|
+ } else if (color == "gray") {
|
|
|
+ sysColor = [NSColor systemGrayColor];
|
|
|
+ } else if (color == "green") {
|
|
|
+ sysColor = [NSColor systemGreenColor];
|
|
|
+ } else if (color == "orange") {
|
|
|
+ sysColor = [NSColor systemOrangeColor];
|
|
|
+ } else if (color == "pink") {
|
|
|
+ sysColor = [NSColor systemPinkColor];
|
|
|
+ } else if (color == "purple") {
|
|
|
+ sysColor = [NSColor systemPurpleColor];
|
|
|
+ } else if (color == "red") {
|
|
|
+ sysColor = [NSColor systemRedColor];
|
|
|
+ } else if (color == "yellow") {
|
|
|
+ sysColor = [NSColor systemYellowColor];
|
|
|
+ } else {
|
|
|
+ args->ThrowError("Unknown system color: " + color);
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+
|
|
|
+ return ToRGBHex(sysColor);
|
|
|
+ } else {
|
|
|
+ args->ThrowError(
|
|
|
+ "This api is not available on MacOS version 10.9 or lower.");
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
bool SystemPreferences::IsTrustedAccessibilityClient(bool prompt) {
|
|
|
NSDictionary* options = @{(id)kAXTrustedCheckOptionPrompt : @(prompt)};
|
|
|
return AXIsProcessTrustedWithOptions((CFDictionaryRef)options);
|