Add systemPreferences.getUserDefault
This commit is contained in:
parent
a421c66f3f
commit
067e9c1a85
3 changed files with 28 additions and 0 deletions
|
@ -52,6 +52,7 @@ void SystemPreferences::BuildPrototype(
|
||||||
&SystemPreferences::SubscribeNotification)
|
&SystemPreferences::SubscribeNotification)
|
||||||
.SetMethod("unsubscribeNotification",
|
.SetMethod("unsubscribeNotification",
|
||||||
&SystemPreferences::UnsubscribeNotification)
|
&SystemPreferences::UnsubscribeNotification)
|
||||||
|
.SetMethod("getUserDefault", &SystemPreferences::GetUserDefault)
|
||||||
#endif
|
#endif
|
||||||
.SetMethod("isDarkMode", &SystemPreferences::IsDarkMode);
|
.SetMethod("isDarkMode", &SystemPreferences::IsDarkMode);
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,6 +28,8 @@ class SystemPreferences : public mate::EventEmitter<SystemPreferences> {
|
||||||
int SubscribeNotification(const std::string& name,
|
int SubscribeNotification(const std::string& name,
|
||||||
const base::Closure& callback);
|
const base::Closure& callback);
|
||||||
void UnsubscribeNotification(int id);
|
void UnsubscribeNotification(int id);
|
||||||
|
v8::Local<v8::Value> GetUserDefault(const std::string& name,
|
||||||
|
const std::string& type);
|
||||||
#endif
|
#endif
|
||||||
bool IsDarkMode();
|
bool IsDarkMode();
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,9 @@
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
#import <Cocoa/Cocoa.h>
|
||||||
|
|
||||||
|
#include "atom/common/native_mate_converters/gurl_converter.h"
|
||||||
#include "base/strings/sys_string_conversions.h"
|
#include "base/strings/sys_string_conversions.h"
|
||||||
|
#include "net/base/mac/url_conversions.h"
|
||||||
|
|
||||||
namespace atom {
|
namespace atom {
|
||||||
|
|
||||||
|
@ -47,6 +49,29 @@ void SystemPreferences::UnsubscribeNotification(int request_id) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
v8::Local<v8::Value> SystemPreferences::GetUserDefault(
|
||||||
|
const std::string& name, const std::string& type) {
|
||||||
|
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
|
||||||
|
NSString* key = base::SysUTF8ToNSString(name);
|
||||||
|
if (type == "string") {
|
||||||
|
return mate::StringToV8(
|
||||||
|
isolate(), base::SysNSStringToUTF8([defaults stringForKey:key]));
|
||||||
|
} else if (type == "boolean") {
|
||||||
|
return v8::Boolean::New(isolate(), [defaults boolForKey:key]);
|
||||||
|
} else if (type == "float") {
|
||||||
|
return v8::Number::New(isolate(), [defaults floatForKey:key]);
|
||||||
|
} else if (type == "integer") {
|
||||||
|
return v8::Integer::New(isolate(), [defaults integerForKey:key]);
|
||||||
|
} else if (type == "double") {
|
||||||
|
return v8::Number::New(isolate(), [defaults doubleForKey:key]);
|
||||||
|
} else if (type == "url") {
|
||||||
|
return mate::ConvertToV8(
|
||||||
|
isolate(), net::GURLWithNSURL([defaults URLForKey:key]));
|
||||||
|
} else {
|
||||||
|
return v8::Undefined(isolate());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool SystemPreferences::IsDarkMode() {
|
bool SystemPreferences::IsDarkMode() {
|
||||||
NSString* mode = [[NSUserDefaults standardUserDefaults]
|
NSString* mode = [[NSUserDefaults standardUserDefaults]
|
||||||
stringForKey:@"AppleInterfaceStyle"];
|
stringForKey:@"AppleInterfaceStyle"];
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue