Skip to content

Commit 8909781

Browse files
committed
feat: Add AccessibilityManager
1 parent 155f184 commit 8909781

File tree

4 files changed

+53
-1
lines changed

4 files changed

+53
-1
lines changed

include/nativeapi.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#pragma once
22

3+
#include "../src/accessibility_manager.h"
34
#include "../src/broadcast_center.h"
45
#include "../src/display.h"
56
#include "../src/display_manager.h"
@@ -8,4 +9,4 @@
89
#include "../src/tray.h"
910
#include "../src/tray_manager.h"
1011
#include "../src/window.h"
11-
#include "../src/window_manager.h"
12+
#include "../src/window_manager.h"

src/accessibility_manager.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#include <iostream>
2+
3+
#include "accessibility_manager.h"
4+
5+
namespace nativeapi {
6+
7+
AccessibilityManager::AccessibilityManager() {
8+
std::cout << "AccessibilityManager::AccessibilityManager()" << std::endl;
9+
};
10+
11+
AccessibilityManager::~AccessibilityManager() {
12+
std::cout << "AccessibilityManager::~AccessibilityManager()" << std::endl;
13+
};
14+
15+
} // namespace nativeapi

src/accessibility_manager.h

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#pragma once
2+
3+
namespace nativeapi {
4+
5+
// AccessibilityManager is a singleton that manages all accessibility on the
6+
// system.
7+
class AccessibilityManager {
8+
public:
9+
AccessibilityManager();
10+
virtual ~AccessibilityManager();
11+
12+
// Enable the accessibility
13+
void Enable();
14+
15+
// Whether the accessibility is enabled
16+
bool IsEnabled();
17+
};
18+
19+
} // namespace nativeapi

src/accessibility_manager_macos.mm

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#include "accessibility_manager.h"
2+
3+
// Import Cocoa headers
4+
#import <Cocoa/Cocoa.h>
5+
6+
namespace nativeapi {
7+
8+
void AccessibilityManager::Enable() {
9+
NSDictionary* options = @{(__bridge NSString*)kAXTrustedCheckOptionPrompt : @YES};
10+
AXIsProcessTrustedWithOptions((__bridge CFDictionaryRef)options);
11+
}
12+
13+
bool AccessibilityManager::IsEnabled() {
14+
return AXIsProcessTrustedWithOptions(nil);
15+
}
16+
17+
} // namespace nativeapi

0 commit comments

Comments
 (0)