| // Copyright 2014 The Chromium Authors | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #ifndef UI_ACCESSIBILITY_PLATFORM_AX_PLATFORM_NODE_MAC_H_ | |
| #define UI_ACCESSIBILITY_PLATFORM_AX_PLATFORM_NODE_MAC_H_ | |
| #import <Cocoa/Cocoa.h> | |
| #include <memory> | |
| #include "base/component_export.h" | |
| #include "ui/accessibility/platform/ax_platform_node_base.h" | |
| @class AXPlatformNodeCocoa; | |
| namespace ui { | |
| class COMPONENT_EXPORT(AX_PLATFORM) AXPlatformNodeMac | |
| : public AXPlatformNodeBase { | |
| public: | |
| AXPlatformNodeMac(const AXPlatformNodeMac&) = delete; | |
| AXPlatformNodeMac& operator=(const AXPlatformNodeMac&) = delete; | |
| // AXPlatformNode. | |
| gfx::NativeViewAccessible GetNativeViewAccessible() override; | |
| void NotifyAccessibilityEvent(ax::mojom::Event event_type) override; | |
| void AnnounceTextAs(const std::u16string& text, | |
| AnnouncementType announcement_type) override; | |
| // AXPlatformNodeBase. | |
| void Destroy() override; | |
| bool IsPlatformCheckable() const override; | |
| AXPlatformNodeCocoa* GetNativeWrapper() const; | |
| AXPlatformNodeCocoa* ReleaseNativeWrapper(); | |
| void SetNativeWrapper(AXPlatformNodeCocoa* native_node); | |
| protected: | |
| AXPlatformNodeMac(); | |
| ~AXPlatformNodeMac() override; | |
| void AddAttributeToList(const char* name, | |
| const char* value, | |
| PlatformAttributeList* attributes) override; | |
| private: | |
| friend AXPlatformNode::Pointer AXPlatformNode::Create( | |
| AXPlatformNodeDelegate& delegate); | |
| struct ObjCStorage; | |
| std::unique_ptr<ObjCStorage> objc_storage_; | |
| }; | |
| // Convenience function to determine whether an internal object role should | |
| // expose its accessible name in AXValue (as opposed to AXTitle/AXDescription). | |
| COMPONENT_EXPORT(AX_PLATFORM) | |
| bool IsNameExposedInAXValueForRole(ax::mojom::Role role); | |
| } // namespace ui | |
| #endif // UI_ACCESSIBILITY_PLATFORM_AX_PLATFORM_NODE_MAC_H_ |