1ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com// Copyright 2014 The Chromium Authors. All rights reserved.
2ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com// Use of this source code is governed by a BSD-style license that can be
3ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com// found in the LICENSE file.
4ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com
5ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com#ifndef UI_ACCESSIBILITY_AX_PLATFORM_NODE_MAC_H_
6ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com#define UI_ACCESSIBILITY_AX_PLATFORM_NODE_MAC_H_
7ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com
843c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com#include "base/mac/scoped_nsobject.h"
943c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com#include "ui/accessibility/ax_export.h"
1043c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com#include "ui/accessibility/platform/ax_platform_node_base.h"
1143c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com
1243c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com@class AXPlatformNodeCocoa;
1343c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com
1443c50c8c77df82c5cffb55cae2d386e59802b88freed@google.comnamespace ui {
1543c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com
1643c50c8c77df82c5cffb55cae2d386e59802b88freed@google.comclass AXPlatformNodeMac : public AXPlatformNodeBase {
1743c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com public:
1843c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com  AXPlatformNodeMac();
1943c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com
2043c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com  // AXPlatformNode.
2143c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com  virtual void Destroy() OVERRIDE;
2243c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com  virtual gfx::NativeViewAccessible GetNativeViewAccessible() OVERRIDE;
2343c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com
2443c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com private:
2543c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com  virtual ~AXPlatformNodeMac();
2643c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com
2743c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com  base::scoped_nsobject<AXPlatformNodeCocoa> native_node_;
2843c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com
2943c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com  DISALLOW_COPY_AND_ASSIGN(AXPlatformNodeMac);
3043c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com};
3143c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com
3243c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com}  // namespace ui
3343c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com
3443c50c8c77df82c5cffb55cae2d386e59802b88freed@google.comAX_EXPORT
3543c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com@interface AXPlatformNodeCocoa : NSObject {
3643c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com @private
3743c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com  ui::AXPlatformNodeBase* node_;  // Weak. Retains us.
3843c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com}
3943c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com
4043c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com+ (NSString*)nativeRoleFromAXRole:(ui::AXRole)role;
4143c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com+ (NSString*)nativeSubroleFromAXRole:(ui::AXRole)role;
4243c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com
4343c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com- (instancetype)initWithNode:(ui::AXPlatformNodeBase*)node;
4443c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com- (void)detach;
4543c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com
4643c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com@property(nonatomic, readonly) NSRect boundsInScreen;
4743c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com
4843c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com@end
4943c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com
5043c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com#endif  // UI_ACCESSIBILITY_AX_PLATFORM_NODE_MAC_H_
5143c50c8c77df82c5cffb55cae2d386e59802b88freed@google.com