accessibility_core 0.4.3 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/History.markdown +6 -0
- data/README.markdown +6 -3
- data/Rakefile +0 -14
- data/ext/accessibility/bridge/bridge.c +393 -425
- data/ext/accessibility/bridge/bridge.h +126 -128
- data/ext/accessibility/bridge/extconf.rb +7 -12
- data/ext/accessibility/core/core.c +76 -109
- data/ext/accessibility/core/extconf.rb +7 -12
- data/ext/accessibility/extras/extconf.rb +7 -13
- data/ext/accessibility/extras/extras.c +18 -41
- data/ext/accessibility/highlighter/extconf.rb +7 -13
- data/ext/accessibility/highlighter/highlighter.c +11 -20
- data/lib/accessibility/bridge.rb +1 -31
- data/lib/accessibility/core.rb +1 -6
- data/lib/accessibility/core/version.rb +1 -1
- data/lib/accessibility/extras.rb +0 -2
- data/lib/accessibility/highlighter.rb +1 -6
- data/test/helper.rb +0 -10
- metadata +4 -9
- data/lib/accessibility/bridge/macruby.rb +0 -202
- data/lib/accessibility/core/macruby.rb +0 -855
- data/lib/accessibility/highlighter/macruby.rb +0 -85
- data/test/test_core.rb +0 -100
@@ -1,16 +1,16 @@
|
|
1
|
+
#ifndef ACCESSIBILITY_BRIDGE
|
2
|
+
#define ACCESSIBILITY_BRIDGE
|
3
|
+
|
1
4
|
#include "ruby.h"
|
2
5
|
#import <Cocoa/Cocoa.h>
|
3
6
|
|
4
|
-
|
5
7
|
// these functions are available on MacRuby as well as MRI
|
6
|
-
void spin(double seconds);
|
8
|
+
void spin(const double seconds);
|
7
9
|
|
8
10
|
// initialize all the dynamic data (e.g. class pointers)
|
9
11
|
void Init_bridge();
|
10
12
|
|
11
13
|
|
12
|
-
#ifdef NOT_MACRUBY
|
13
|
-
|
14
14
|
extern VALUE rb_cData;
|
15
15
|
extern VALUE rb_cAttributedString;
|
16
16
|
extern VALUE rb_mAccessibility;
|
@@ -35,141 +35,139 @@ extern ID sel_to_s;
|
|
35
35
|
extern ID sel_parse;
|
36
36
|
|
37
37
|
|
38
|
-
#define WRAP_OBJC(klass, finalizer)
|
39
|
-
return Data_Wrap_Struct(klass, NULL, finalizer, (void*)obj);
|
40
|
-
} while (false);
|
38
|
+
#define WRAP_OBJC(klass, finalizer) \
|
39
|
+
return Data_Wrap_Struct(klass, NULL, finalizer, (void*)obj);
|
41
40
|
|
42
|
-
#define UNWRAP_OBJC(klass)
|
41
|
+
#define UNWRAP_OBJC(klass) \
|
43
42
|
klass* unwrapped; \
|
44
43
|
Data_Get_Struct(obj, klass, unwrapped); \
|
45
|
-
return unwrapped;
|
46
|
-
} while (false);
|
44
|
+
return unwrapped;
|
47
45
|
|
48
|
-
#define OBJC_EQUALITY(type, unwrapper)
|
46
|
+
#define OBJC_EQUALITY(type, unwrapper) \
|
49
47
|
if (CLASS_OF(other) == type) \
|
50
48
|
if ([unwrapper(self) isEqual:unwrapper(other)]) \
|
51
49
|
return Qtrue; \
|
52
|
-
return Qfalse;
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
void
|
71
|
-
|
72
|
-
|
73
|
-
VALUE wrap_unknown(CFTypeRef obj);
|
74
|
-
CFTypeRef unwrap_unknown(VALUE obj);
|
75
|
-
|
76
|
-
VALUE wrap_point(CGPoint point);
|
77
|
-
CGPoint unwrap_point(VALUE point);
|
78
|
-
|
79
|
-
VALUE wrap_size(CGSize size);
|
80
|
-
CGSize unwrap_size(VALUE size);
|
81
|
-
|
82
|
-
VALUE wrap_rect(CGRect rect);
|
83
|
-
VALUE coerce_to_rect(VALUE obj);
|
84
|
-
CGRect unwrap_rect(VALUE rect);
|
85
|
-
|
86
|
-
VALUE convert_cf_range(CFRange range);
|
87
|
-
CFRange convert_rb_range(VALUE range);
|
88
|
-
|
89
|
-
VALUE wrap_value_point(AXValueRef value);
|
90
|
-
VALUE wrap_value_size(AXValueRef value);
|
91
|
-
VALUE wrap_value_rect(AXValueRef value);
|
92
|
-
VALUE wrap_value_range(AXValueRef value);
|
93
|
-
VALUE wrap_value_error(AXValueRef value);
|
94
|
-
VALUE wrap_value(AXValueRef value);
|
95
|
-
VALUE wrap_array_values(CFArrayRef array);
|
96
|
-
|
97
|
-
AXValueRef unwrap_value_point(VALUE val);
|
98
|
-
AXValueRef unwrap_value_size(VALUE val);
|
99
|
-
AXValueRef unwrap_value_rect(VALUE val);
|
100
|
-
AXValueRef unwrap_value_range(VALUE val);
|
101
|
-
AXValueRef unwrap_value(VALUE value);
|
102
|
-
|
103
|
-
VALUE wrap_ref(AXUIElementRef ref);
|
104
|
-
VALUE wrap_array_refs(CFArrayRef array);
|
105
|
-
AXUIElementRef unwrap_ref(VALUE obj);
|
106
|
-
|
107
|
-
VALUE wrap_string(CFStringRef string);
|
108
|
-
VALUE wrap_nsstring(NSString* string);
|
109
|
-
VALUE wrap_array_strings(CFArrayRef array);
|
110
|
-
VALUE wrap_array_nsstrings(NSArray* ary);
|
111
|
-
CFStringRef unwrap_string(VALUE string);
|
112
|
-
NSString* unwrap_nsstring(VALUE string);
|
113
|
-
|
114
|
-
VALUE wrap_long(CFNumberRef num);
|
115
|
-
VALUE wrap_long_long(CFNumberRef num);
|
116
|
-
VALUE wrap_float(CFNumberRef num);
|
50
|
+
return Qfalse;
|
51
|
+
|
52
|
+
#define WRAP_ARRAY(wrapper) \
|
53
|
+
const CFIndex length = CFArrayGetCount(array); \
|
54
|
+
const VALUE new_ary = rb_ary_new2(length); \
|
55
|
+
\
|
56
|
+
for (CFIndex idx = 0; idx < length; idx++) { \
|
57
|
+
CFTypeRef const obj = CFArrayGetValueAtIndex(array, idx); \
|
58
|
+
CFRetain(obj); \
|
59
|
+
rb_ary_store(new_ary, idx, wrapper(obj)); \
|
60
|
+
} \
|
61
|
+
\
|
62
|
+
return new_ary;
|
63
|
+
|
64
|
+
|
65
|
+
static void __attribute__ ((unused))
|
66
|
+
cf_finalizer(void* obj) { CFRelease((CFTypeRef)obj); }
|
67
|
+
|
68
|
+
static void __attribute__ ((unused))
|
69
|
+
objc_finalizer(void* obj) { [(id)obj release]; }
|
70
|
+
|
71
|
+
VALUE wrap_unknown(CFTypeRef const obj);
|
72
|
+
CFTypeRef unwrap_unknown(const VALUE obj);
|
73
|
+
|
74
|
+
VALUE wrap_point(const CGPoint point);
|
75
|
+
CGPoint unwrap_point(const VALUE point);
|
76
|
+
|
77
|
+
VALUE wrap_size(const CGSize size);
|
78
|
+
CGSize unwrap_size(const VALUE size);
|
79
|
+
|
80
|
+
VALUE wrap_rect(const CGRect rect);
|
81
|
+
VALUE coerce_to_rect(const VALUE obj);
|
82
|
+
CGRect unwrap_rect(const VALUE rect);
|
83
|
+
|
84
|
+
VALUE convert_cf_range(const CFRange range);
|
85
|
+
CFRange convert_rb_range(const VALUE range);
|
86
|
+
|
87
|
+
VALUE wrap_value_point(AXValueRef const value);
|
88
|
+
VALUE wrap_value_size(AXValueRef const value);
|
89
|
+
VALUE wrap_value_rect(AXValueRef const value);
|
90
|
+
VALUE wrap_value_range(AXValueRef const value);
|
91
|
+
VALUE wrap_value_error(AXValueRef const value);
|
92
|
+
VALUE wrap_value(AXValueRef const value);
|
93
|
+
VALUE wrap_array_values(CFArrayRef const array);
|
94
|
+
|
95
|
+
AXValueRef unwrap_value_point(const VALUE val);
|
96
|
+
AXValueRef unwrap_value_size(const VALUE val);
|
97
|
+
AXValueRef unwrap_value_rect(const VALUE val);
|
98
|
+
AXValueRef unwrap_value_range(const VALUE val);
|
99
|
+
AXValueRef unwrap_value(const VALUE value);
|
100
|
+
|
101
|
+
VALUE wrap_ref(AXUIElementRef const ref);
|
102
|
+
VALUE wrap_array_refs(CFArrayRef const array);
|
103
|
+
AXUIElementRef unwrap_ref(const VALUE obj);
|
104
|
+
|
105
|
+
VALUE wrap_string(CFStringRef const string);
|
106
|
+
VALUE wrap_nsstring(NSString* const string);
|
107
|
+
VALUE wrap_array_strings(CFArrayRef const array);
|
108
|
+
VALUE wrap_array_nsstrings(NSArray* const ary);
|
109
|
+
CFStringRef unwrap_string(const VALUE string);
|
110
|
+
NSString* unwrap_nsstring(const VALUE string);
|
111
|
+
|
112
|
+
VALUE wrap_long(CFNumberRef const num);
|
113
|
+
VALUE wrap_long_long(CFNumberRef const num);
|
114
|
+
VALUE wrap_float(CFNumberRef const num);
|
117
115
|
// Generic CFNumber wrapper, use it if you do not
|
118
116
|
// know the primitive type of number
|
119
|
-
VALUE wrap_number(CFNumberRef number);
|
120
|
-
VALUE wrap_array_numbers(CFArrayRef array);
|
121
|
-
|
122
|
-
CFNumberRef unwrap_long(VALUE num);
|
123
|
-
CFNumberRef unwrap_long_long(VALUE num);
|
124
|
-
CFNumberRef unwrap_float(VALUE num);
|
125
|
-
CFNumberRef unwrap_number(VALUE number);
|
126
|
-
|
127
|
-
VALUE wrap_url(CFURLRef url);
|
128
|
-
VALUE wrap_nsurl(NSURL* url);
|
129
|
-
CFURLRef unwrap_url(VALUE url);
|
130
|
-
NSURL* unwrap_nsurl(VALUE url);
|
131
|
-
VALUE wrap_array_urls(CFArrayRef array);
|
132
|
-
|
133
|
-
VALUE wrap_date(CFDateRef date);
|
134
|
-
VALUE wrap_nsdate(NSDate* date);
|
135
|
-
VALUE wrap_array_dates(CFArrayRef array);
|
136
|
-
CFDateRef unwrap_date(VALUE date);
|
137
|
-
|
138
|
-
VALUE wrap_boolean(CFBooleanRef bool_val);
|
139
|
-
VALUE wrap_array_booleans(CFArrayRef array);
|
140
|
-
CFBooleanRef unwrap_boolean(VALUE bool_val);
|
141
|
-
|
142
|
-
VALUE wrap_data(CFDataRef data);
|
143
|
-
VALUE wrap_nsdata(NSData* data);
|
144
|
-
CFDataRef unwrap_data(VALUE data);
|
145
|
-
NSData* unwrap_nsdata(VALUE data);
|
117
|
+
VALUE wrap_number(CFNumberRef const number);
|
118
|
+
VALUE wrap_array_numbers(CFArrayRef const array);
|
119
|
+
|
120
|
+
CFNumberRef unwrap_long(const VALUE num);
|
121
|
+
CFNumberRef unwrap_long_long(const VALUE num);
|
122
|
+
CFNumberRef unwrap_float(const VALUE num);
|
123
|
+
CFNumberRef unwrap_number(const VALUE number);
|
124
|
+
|
125
|
+
VALUE wrap_url(CFURLRef const url);
|
126
|
+
VALUE wrap_nsurl(NSURL* const url);
|
127
|
+
CFURLRef unwrap_url(const VALUE url);
|
128
|
+
NSURL* unwrap_nsurl(const VALUE url);
|
129
|
+
VALUE wrap_array_urls(CFArrayRef const array);
|
130
|
+
|
131
|
+
VALUE wrap_date(CFDateRef const date);
|
132
|
+
VALUE wrap_nsdate(NSDate* const date);
|
133
|
+
VALUE wrap_array_dates(CFArrayRef const array);
|
134
|
+
CFDateRef unwrap_date(const VALUE date);
|
135
|
+
|
136
|
+
VALUE wrap_boolean(CFBooleanRef const bool_val);
|
137
|
+
VALUE wrap_array_booleans(CFArrayRef const array);
|
138
|
+
CFBooleanRef unwrap_boolean(const VALUE bool_val);
|
139
|
+
|
140
|
+
VALUE wrap_data(CFDataRef const data);
|
141
|
+
VALUE wrap_nsdata(NSData* const data);
|
142
|
+
CFDataRef unwrap_data(const VALUE data);
|
143
|
+
NSData* unwrap_nsdata(const VALUE data);
|
146
144
|
|
147
145
|
// this function assumes that arrays are homogeneous;
|
148
146
|
// which is usually the case coming from the CF world
|
149
|
-
VALUE wrap_array(CFArrayRef array);
|
150
|
-
|
151
|
-
VALUE wrap_dictionary(NSDictionary* dict);
|
152
|
-
VALUE wrap_array_dictionaries(CFArrayRef array);
|
153
|
-
|
154
|
-
VALUE to_ruby(CFTypeRef obj);
|
155
|
-
CFTypeRef to_ax(VALUE obj);
|
156
|
-
|
157
|
-
VALUE wrap_screen(NSScreen* screen);
|
158
|
-
VALUE wrap_array_screens(CFArrayRef array);
|
159
|
-
NSScreen* unwrap_screen(VALUE screen);
|
160
|
-
|
161
|
-
VALUE wrap_attributed_string(CFAttributedStringRef string);
|
162
|
-
VALUE wrap_nsattributed_string(NSAttributedString* string);
|
163
|
-
VALUE wrap_array_attributed_strings(CFArrayRef array);
|
164
|
-
VALUE wrap_array_nsattributed_strings(NSArray* ary);
|
165
|
-
CFAttributedStringRef unwrap_attributed_string(VALUE string);
|
166
|
-
NSAttributedString* unwrap_nsattributed_string(VALUE string);
|
167
|
-
|
168
|
-
VALUE wrap_data(CFDataRef data);
|
169
|
-
VALUE wrap_nsdata(NSData* data);
|
170
|
-
VALUE wrap_array_data(CFArrayRef array);
|
171
|
-
VALUE wrap_array_nsdata(NSArray* array);
|
172
|
-
CFDataRef unwrap_data(VALUE data);
|
173
|
-
NSData* unwrap_nsdata(VALUE data);
|
147
|
+
VALUE wrap_array(CFArrayRef const array);
|
148
|
+
|
149
|
+
VALUE wrap_dictionary(NSDictionary* const dict);
|
150
|
+
VALUE wrap_array_dictionaries(CFArrayRef const array);
|
151
|
+
|
152
|
+
VALUE to_ruby(CFTypeRef const obj);
|
153
|
+
CFTypeRef to_ax(const VALUE obj);
|
154
|
+
|
155
|
+
VALUE wrap_screen(NSScreen* const screen);
|
156
|
+
VALUE wrap_array_screens(CFArrayRef const array);
|
157
|
+
NSScreen* unwrap_screen(const VALUE screen);
|
158
|
+
|
159
|
+
VALUE wrap_attributed_string(CFAttributedStringRef const string);
|
160
|
+
VALUE wrap_nsattributed_string(NSAttributedString* const string);
|
161
|
+
VALUE wrap_array_attributed_strings(CFArrayRef const array);
|
162
|
+
VALUE wrap_array_nsattributed_strings(NSArray* const ary);
|
163
|
+
CFAttributedStringRef unwrap_attributed_string(const VALUE string);
|
164
|
+
NSAttributedString* unwrap_nsattributed_string(const VALUE string);
|
165
|
+
|
166
|
+
VALUE wrap_data(CFDataRef const data);
|
167
|
+
VALUE wrap_nsdata(NSData* const data);
|
168
|
+
VALUE wrap_array_data(CFArrayRef const array);
|
169
|
+
VALUE wrap_array_nsdata(NSArray* const array);
|
170
|
+
CFDataRef unwrap_data(const VALUE data);
|
171
|
+
NSData* unwrap_nsdata(const VALUE data);
|
174
172
|
|
175
173
|
#endif
|
@@ -4,19 +4,14 @@ $CFLAGS << ' -std=c99 -Wall -Werror -pedantic -ObjC'
|
|
4
4
|
$LIBS << ' -framework CoreFoundation -framework ApplicationServices -framework Cocoa'
|
5
5
|
$LIBS << ' -framework CoreGraphics' unless `sw_vers -productVersion`.to_f == 10.7
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
else
|
15
|
-
RbConfig::MAKEFILE_CONFIG["CC"] = clang
|
16
|
-
RbConfig::MAKEFILE_CONFIG["CXX"] = clang
|
17
|
-
end
|
7
|
+
unless RbConfig::CONFIG["CC"].match(/clang/)
|
8
|
+
clang = `which clang`.chomp
|
9
|
+
if clang.empty?
|
10
|
+
raise "Clang not installed. Cannot build C extension"
|
11
|
+
else
|
12
|
+
RbConfig::MAKEFILE_CONFIG["CC"] = clang
|
13
|
+
RbConfig::MAKEFILE_CONFIG["CXX"] = clang
|
18
14
|
end
|
19
|
-
$CFLAGS << ' -DNOT_MACRUBY'
|
20
15
|
end
|
21
16
|
|
22
17
|
create_makefile 'accessibility/bridge/bridge'
|
@@ -3,8 +3,6 @@
|
|
3
3
|
#import <Cocoa/Cocoa.h>
|
4
4
|
|
5
5
|
|
6
|
-
#ifdef NOT_MACRUBY /* This entire extension is pointless when running on MacRuby */
|
7
|
-
|
8
6
|
static ID ivar_attrs;
|
9
7
|
static ID ivar_param_attrs;
|
10
8
|
static ID ivar_actions;
|
@@ -23,124 +21,96 @@ static ID rate_zomg;
|
|
23
21
|
|
24
22
|
static
|
25
23
|
VALUE
|
26
|
-
handle_error(VALUE self, AXError code)
|
24
|
+
handle_error(VALUE self, const AXError code)
|
27
25
|
{
|
28
26
|
@autoreleasepool {
|
29
|
-
NSString* description =
|
27
|
+
NSString* const description =
|
28
|
+
(NSString* const)CFCopyDescription(unwrap_ref(self));
|
30
29
|
[description autorelease];
|
31
30
|
|
32
|
-
const char* inspected_self =
|
33
|
-
(CFStringRef)description,
|
34
|
-
kCFStringEncodingUTF8
|
35
|
-
);
|
31
|
+
const char* const inspected_self = description.UTF8String;
|
36
32
|
|
37
|
-
switch (code)
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
rb_raise(
|
46
|
-
rb_eRuntimeError,
|
47
|
-
"An accessibility system failure, possibly an allocation " \
|
33
|
+
switch (code) {
|
34
|
+
case kAXErrorSuccess:
|
35
|
+
rb_raise(rb_eRuntimeError,
|
36
|
+
"internal accessibility_core error");
|
37
|
+
|
38
|
+
case kAXErrorFailure:
|
39
|
+
rb_raise(rb_eRuntimeError,
|
40
|
+
"An accessibility system failure, possibly an allocation "
|
48
41
|
"failure, occurred with %s; stopping to be safe",
|
49
|
-
inspected_self
|
50
|
-
|
51
|
-
|
52
|
-
rb_raise(
|
53
|
-
rb_eArgError,
|
42
|
+
inspected_self);
|
43
|
+
|
44
|
+
case kAXErrorIllegalArgument:
|
45
|
+
rb_raise(rb_eArgError,
|
54
46
|
"illegal argument was passed to the method for %s",
|
55
|
-
inspected_self
|
56
|
-
|
57
|
-
|
58
|
-
rb_raise(
|
59
|
-
rb_eArgError,
|
47
|
+
inspected_self);
|
48
|
+
|
49
|
+
case kAXErrorInvalidUIElement:
|
50
|
+
rb_raise(rb_eArgError,
|
60
51
|
"invalid element `%s' (probably dead)",
|
61
|
-
inspected_self
|
62
|
-
|
63
|
-
|
64
|
-
rb_raise(
|
65
|
-
rb_eArgError,
|
52
|
+
inspected_self);
|
53
|
+
|
54
|
+
case kAXErrorInvalidUIElementObserver:
|
55
|
+
rb_raise(rb_eArgError,
|
66
56
|
"invalid observer passed to the method for %s",
|
67
|
-
inspected_self
|
68
|
-
|
69
|
-
|
57
|
+
inspected_self);
|
58
|
+
|
59
|
+
case kAXErrorCannotComplete:
|
70
60
|
spin(0);
|
71
|
-
|
61
|
+
|
62
|
+
pid_t pid = 0;
|
72
63
|
AXUIElementGetPid(unwrap_ref(self), &pid);
|
73
|
-
NSRunningApplication* app =
|
64
|
+
NSRunningApplication* const app =
|
65
|
+
[NSRunningApplication runningApplicationWithProcessIdentifier:pid];
|
66
|
+
|
74
67
|
if (app)
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
"Perhaps the application is busy on unresponsive?"
|
79
|
-
);
|
68
|
+
rb_raise(rb_eRuntimeError,
|
69
|
+
"accessibility messaging failure. "
|
70
|
+
"Perhaps the application is busy on unresponsive?");
|
80
71
|
else
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
rb_raise(
|
109
|
-
|
110
|
-
"
|
111
|
-
|
112
|
-
|
113
|
-
rb_raise(
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
);
|
122
|
-
case kAXErrorNoValue:
|
123
|
-
rb_raise(
|
124
|
-
rb_eRuntimeError,
|
125
|
-
"accessibility_core internal error; " \
|
126
|
-
"should be handled internally"
|
127
|
-
);
|
128
|
-
case kAXErrorParameterizedAttributeUnsupported:
|
129
|
-
rb_raise(
|
130
|
-
rb_eArgError,
|
131
|
-
"parameterized attribute unsupported"
|
132
|
-
);
|
133
|
-
case kAXErrorNotEnoughPrecision:
|
134
|
-
rb_raise(
|
135
|
-
rb_eRuntimeError,
|
136
|
-
"AXAPI said there was not enough precision ¯\\(°_o)/¯"
|
137
|
-
);
|
138
|
-
default:
|
139
|
-
rb_raise(
|
140
|
-
rb_eRuntimeError,
|
72
|
+
rb_raise(rb_eRuntimeError,
|
73
|
+
"application for pid=%d is no longer running. "
|
74
|
+
"Maybe it crashed?",
|
75
|
+
pid);
|
76
|
+
|
77
|
+
case kAXErrorAttributeUnsupported:
|
78
|
+
rb_raise(rb_eArgError, "attribute unsupported");
|
79
|
+
|
80
|
+
case kAXErrorActionUnsupported:
|
81
|
+
rb_raise(rb_eArgError, "action unsupported");
|
82
|
+
|
83
|
+
case kAXErrorNotificationUnsupported:
|
84
|
+
rb_raise(rb_eArgError, "notification unsupported");
|
85
|
+
|
86
|
+
case kAXErrorNotImplemented:
|
87
|
+
rb_raise(rb_eNotImpError, "method not supported by the receiver");
|
88
|
+
|
89
|
+
case kAXErrorNotificationAlreadyRegistered:
|
90
|
+
rb_raise(rb_eArgError, "notification has already been registered");
|
91
|
+
|
92
|
+
case kAXErrorNotificationNotRegistered:
|
93
|
+
rb_raise(rb_eRuntimeError, "notification is not registered yet");
|
94
|
+
|
95
|
+
case kAXErrorAPIDisabled:
|
96
|
+
rb_raise(rb_eRuntimeError, "AXAPI has been disabled");
|
97
|
+
|
98
|
+
case kAXErrorNoValue:
|
99
|
+
rb_raise(rb_eRuntimeError,
|
100
|
+
"accessibility_core internal error; "
|
101
|
+
"should be handled internally");
|
102
|
+
|
103
|
+
case kAXErrorParameterizedAttributeUnsupported:
|
104
|
+
rb_raise(rb_eArgError, "parameterized attribute unsupported");
|
105
|
+
|
106
|
+
case kAXErrorNotEnoughPrecision:
|
107
|
+
rb_raise(rb_eRuntimeError,
|
108
|
+
"AXAPI said there was not enough precision ¯\\(°_o)/¯");
|
109
|
+
|
110
|
+
default:
|
111
|
+
rb_raise(rb_eRuntimeError,
|
141
112
|
"accessibility_core majorly goofed [%d]",
|
142
|
-
code
|
143
|
-
);
|
113
|
+
(int)code);
|
144
114
|
}
|
145
115
|
}
|
146
116
|
|
@@ -761,7 +731,6 @@ rb_acore_equality(VALUE self, VALUE other)
|
|
761
731
|
return Qtrue;
|
762
732
|
return Qfalse;
|
763
733
|
}
|
764
|
-
#endif
|
765
734
|
|
766
735
|
|
767
736
|
void
|
@@ -769,7 +738,6 @@ Init_core()
|
|
769
738
|
{
|
770
739
|
Init_bridge();
|
771
740
|
|
772
|
-
#ifdef NOT_MACRUBY
|
773
741
|
#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_9
|
774
742
|
if (!AXAPIEnabled())
|
775
743
|
rb_raise(
|
@@ -871,5 +839,4 @@ Init_core()
|
|
871
839
|
rb_define_method(rb_cElement, "element_at", rb_acore_element_at, 1);
|
872
840
|
rb_define_method(rb_cElement, "==", rb_acore_equality, 1);
|
873
841
|
|
874
|
-
#endif
|
875
842
|
}
|