1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef UI_ACCESSIBILITY_AX_PLATFORM_NODE_MAC_H_
6#define UI_ACCESSIBILITY_AX_PLATFORM_NODE_MAC_H_
7
8#include "base/mac/scoped_nsobject.h"
9#include "ui/accessibility/ax_export.h"
10#include "ui/accessibility/platform/ax_platform_node_base.h"
11
12@class AXPlatformNodeCocoa;
13
14namespace ui {
15
16class AXPlatformNodeMac : public AXPlatformNodeBase {
17 public:
18  AXPlatformNodeMac();
19
20  // AXPlatformNode.
21  virtual void Destroy() OVERRIDE;
22  virtual gfx::NativeViewAccessible GetNativeViewAccessible() OVERRIDE;
23
24 private:
25  virtual ~AXPlatformNodeMac();
26
27  base::scoped_nsobject<AXPlatformNodeCocoa> native_node_;
28
29  DISALLOW_COPY_AND_ASSIGN(AXPlatformNodeMac);
30};
31
32}  // namespace ui
33
34AX_EXPORT
35@interface AXPlatformNodeCocoa : NSObject {
36 @private
37  ui::AXPlatformNodeBase* node_;  // Weak. Retains us.
38}
39
40+ (NSString*)nativeRoleFromAXRole:(ui::AXRole)role;
41+ (NSString*)nativeSubroleFromAXRole:(ui::AXRole)role;
42
43- (instancetype)initWithNode:(ui::AXPlatformNodeBase*)node;
44- (void)detach;
45
46@property(nonatomic, readonly) NSRect boundsInScreen;
47
48@end
49
50#endif  // UI_ACCESSIBILITY_AX_PLATFORM_NODE_MAC_H_
51