31 lines
1.1 KiB
Objective-C
31 lines
1.1 KiB
Objective-C
#import "MJAccessibilityUtils.h"
|
|
#import "HSLogger.h"
|
|
|
|
extern Boolean AXIsProcessTrustedWithOptions(CFDictionaryRef options) __attribute__((weak_import));
|
|
extern CFStringRef kAXTrustedCheckOptionPrompt __attribute__((weak_import));
|
|
|
|
|
|
BOOL MJAccessibilityIsEnabled(void) {
|
|
BOOL isEnabled = NO;
|
|
if (AXIsProcessTrustedWithOptions != NULL)
|
|
isEnabled = AXIsProcessTrustedWithOptions(NULL);
|
|
else
|
|
#pragma clang diagnostic push
|
|
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
|
|
isEnabled = AXAPIEnabled();
|
|
#pragma clang diagnostic pop
|
|
|
|
HSNSLOG(@"Accessibility is: %@", isEnabled ? @"ENABLED" : @"DISABLED");
|
|
return isEnabled;
|
|
}
|
|
|
|
void MJAccessibilityOpenPanel(void) {
|
|
if (AXIsProcessTrustedWithOptions != NULL) {
|
|
AXIsProcessTrustedWithOptions((__bridge CFDictionaryRef)@{(__bridge id)kAXTrustedCheckOptionPrompt: @YES});
|
|
}
|
|
else {
|
|
static NSString* script = @"tell application \"System Preferences\"\nactivate\nset current pane to pane \"com.apple.preference.universalaccess\"\nend tell";
|
|
[[[NSAppleScript alloc] initWithSource:script] executeAndReturnError:nil];
|
|
}
|
|
}
|