// // NGARemoteAccessibleObject.h // P4Menu // // Created by Michael Bishop on 10/7/11. // Copyright 2011 __MyCompanyName__. All rights reserved. // #import <Foundation/Foundation.h> #import <AppKit/NSAccessibility.h> #ifndef NSAccessibilityWebAreaRole extern NSString * NSAccessibilityWebAreaRole; #endif // This is a class that wraps the Accessibility hierarchy in another process // You can use this to track attributes of UI items in another process. // To inspect the values in the other process, use Key-Value-Coding. You can // also use Key-Value-Observing to get updates to changes in values. // The constants that you use to retrieve the values are in NSAccessibility.h // Note that document is about exporting the accessible attributes of your app // the system. This is not that. This is inspecting the traits of another app. // You also will find quite useful, the utility app that comes with XCode: Accessibility Inspector. @class NGARemoteAccessibilityNotificationManager; @interface NGARemoteAccessibleObject : NSObject { @private pid_t _savedProcessIdentifier; AXUIElementRef _element; // The wrapped element NSMutableDictionary * _cachedAttributeValues; // key->cachedValue NSMutableDictionary * _keysObservedByPolling; // key->usageCount BOOL _isCurrentlyPolling; // Only used to reduce logging output BOOL _isRemovingWithContext; // Used when removing with context BOOL _isDead; // when we receive NSAccessibilityUIElementDestroyedNotification void * _observationInfo; // for performance NGARemoteAccessibilityNotificationManager * _notificationObserver; } -(id)initWithAXUIElementRef:(AXUIElementRef)ref; // May not return the same pointer as did alloc // because there may already be an element for that // ref (or its equivalent) +(NGARemoteAccessibleObject*)elementForAXUIElementRef:(AXUIElementRef)ref; +(NGARemoteAccessibleObject*)applicationElementForProcessIdentifier:(pid_t)pid; +(NGARemoteAccessibleObject*)sharedSystemElement; @property (nonatomic,readonly) pid_t processIdentifier; @end @interface NGARemoteAccessibleObject (CoreAccessors) @property (nonatomic,readonly) NSString * roleName; @property (nonatomic,readonly) NSString * roleDescription; @property (nonatomic,readonly) NSString * subRoleName; @property (nonatomic,readonly) id value; @property (nonatomic, readonly) NGARemoteAccessibleObject * parent; @property (nonatomic, readonly) NSArray * children; @end
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 20722 | jdputsch | initial branch, prep for -Zapp= support | ||
//guest/michael_bishop/MacMenu/src/NGAUtilities/Source/NGARemoteAccessibleObject.h | |||||
#1 | 8331 | Matt Attaway |
Adding initial version of MacMenu for Perforce MacMenu is a helpful Perforce client that sits in your toolbar. It allows you to run standard Perforce operations on the document that is open the currently active editor/viewer. |