Flutter Engine
The Flutter Engine
Public Member Functions | List of all members
flutter::FlutterPlatformNodeDelegateMac Class Reference

#include <FlutterPlatformNodeDelegateMac.h>

Inheritance diagram for flutter::FlutterPlatformNodeDelegateMac:
flutter::FlutterPlatformNodeDelegate ui::AXPlatformNodeDelegateBase ui::AXPlatformNodeDelegate

Public Member Functions

 FlutterPlatformNodeDelegateMac (std::weak_ptr< AccessibilityBridge > bridge, __weak FlutterViewController *view_controller)
 
virtual ~FlutterPlatformNodeDelegateMac ()
 
void Init (std::weak_ptr< OwnerBridge > bridge, ui::AXNode *node) override
 Called only once, immediately after construction. The constructor doesn't take any arguments because in the Windows subclass we use a special function to construct a COM object. Subclasses must call super. More...
 
std::string GetLiveRegionText () const
 Gets the live region text of this node in UTF-8 format. This is useful to determine the changes in between semantics updates when generating accessibility events. More...
 
gfx::NativeViewAccessible GetNativeViewAccessible () override
 
gfx::NativeViewAccessible GetNSWindow () override
 
gfx::NativeViewAccessible GetParent () override
 
gfx::Rect GetBoundsRect (const ui::AXCoordinateSystem coordinate_system, const ui::AXClippingBehavior clipping_behavior, ui::AXOffscreenResult *offscreen_result) const override
 
- Public Member Functions inherited from flutter::FlutterPlatformNodeDelegate
 FlutterPlatformNodeDelegate ()
 
virtual ~FlutterPlatformNodeDelegate () override
 
const ui::AXUniqueIdGetUniqueId () const override
 
const ui::AXNodeDataGetData () const override
 
bool AccessibilityPerformAction (const ui::AXActionData &data) override
 
gfx::NativeViewAccessible GetParent () override
 
gfx::NativeViewAccessible GetFocus () override
 
int GetChildCount () const override
 
gfx::NativeViewAccessible ChildAtIndex (int index) override
 
gfx::Rect GetBoundsRect (const ui::AXCoordinateSystem coordinate_system, const ui::AXClippingBehavior clipping_behavior, ui::AXOffscreenResult *offscreen_result) const override
 
gfx::NativeViewAccessible GetLowestPlatformAncestor () const override
 
ui::AXNodePosition::AXPositionInstance CreateTextPositionAt (int offset) const override
 
virtual void Init (std::weak_ptr< OwnerBridge > bridge, ui::AXNode *node)
 Called only once, immediately after construction. The constructor doesn't take any arguments because in the Windows subclass we use a special function to construct a COM object. Subclasses must call super. More...
 
ui::AXNodeGetAXNode () const
 Gets the underlying ax node for this platform node delegate. More...
 
std::weak_ptr< OwnerBridgeGetOwnerBridge () const
 Gets the owner of this platform node delegate. This is useful when you want to get the information about surrounding nodes of this platform node delegate, e.g. the global rect of this platform node delegate. This pointer is only safe in the platform thread. More...
 
virtual ui::AXPlatformNodeGetPlatformNode () const
 
virtual ui::AXPlatformNodeGetFromNodeID (int32_t id) override
 
virtual ui::AXPlatformNodeGetFromTreeIDAndNodeID (const ui::AXTreeID &tree_id, int32_t node_id) override
 
virtual const ui::AXTree::Selection GetUnignoredSelection () const override
 
- Public Member Functions inherited from ui::AXPlatformNodeDelegateBase
 AXPlatformNodeDelegateBase ()
 
 ~AXPlatformNodeDelegateBase () override
 
const AXNodeDataGetData () const override
 
const AXTreeDataGetTreeData () const override
 
std::u16string GetInnerText () const override
 
const AXTree::Selection GetUnignoredSelection () const override
 
AXNodePosition::AXPositionInstance CreateTextPositionAt (int offset) const override
 
gfx::NativeViewAccessible GetNSWindow () override
 
gfx::NativeViewAccessible GetNativeViewAccessible () override
 
gfx::NativeViewAccessible GetParent () override
 
gfx::NativeViewAccessible GetLowestPlatformAncestor () const override
 
int GetIndexInParent () override
 
int GetChildCount () const override
 
gfx::NativeViewAccessible ChildAtIndex (int index) override
 
bool HasModalDialog () const override
 
gfx::NativeViewAccessible GetFirstChild () override
 
gfx::NativeViewAccessible GetLastChild () override
 
gfx::NativeViewAccessible GetNextSibling () override
 
gfx::NativeViewAccessible GetPreviousSibling () override
 
bool IsChildOfLeaf () const override
 
bool IsChildOfPlainTextField () const override
 
bool IsLeaf () const override
 
bool IsToplevelBrowserWindow () override
 
gfx::NativeViewAccessible GetClosestPlatformObject () const override
 
std::unique_ptr< AXPlatformNodeDelegate::ChildIteratorChildrenBegin () override
 
std::unique_ptr< AXPlatformNodeDelegate::ChildIteratorChildrenEnd () override
 
std::string GetName () const override
 
std::u16string GetHypertext () const override
 
bool SetHypertextSelection (int start_offset, int end_offset) override
 
TextAttributeMap ComputeTextAttributeMap (const TextAttributeList &default_attributes) const override
 
std::string GetInheritedFontFamilyName () const override
 
gfx::Rect GetBoundsRect (const AXCoordinateSystem coordinate_system, const AXClippingBehavior clipping_behavior, AXOffscreenResult *offscreen_result) const override
 
gfx::Rect GetHypertextRangeBoundsRect (const int start_offset, const int end_offset, const AXCoordinateSystem coordinate_system, const AXClippingBehavior clipping_behavior, AXOffscreenResult *offscreen_result) const override
 
gfx::Rect GetInnerTextRangeBoundsRect (const int start_offset, const int end_offset, const AXCoordinateSystem coordinate_system, const AXClippingBehavior clipping_behavior, AXOffscreenResult *offscreen_result) const override
 
gfx::Rect GetClippedScreenBoundsRect (AXOffscreenResult *offscreen_result=nullptr) const override
 
gfx::Rect GetUnclippedScreenBoundsRect (AXOffscreenResult *offscreen_result=nullptr) const
 
gfx::NativeViewAccessible HitTestSync (int screen_physical_pixel_x, int screen_physical_pixel_y) const override
 
gfx::NativeViewAccessible GetFocus () override
 
bool IsOffscreen () const override
 
bool IsMinimized () const override
 
bool IsText () const override
 
bool IsWebContent () const override
 
bool HasVisibleCaretOrSelection () const override
 
AXPlatformNodeGetFromNodeID (int32_t id) override
 
AXPlatformNodeGetFromTreeIDAndNodeID (const ui::AXTreeID &ax_tree_id, int32_t id) override
 
AXPlatformNodeGetTargetNodeForRelation (ax::mojom::IntAttribute attr) override
 
std::vector< AXPlatformNode * > GetTargetNodesForRelation (ax::mojom::IntListAttribute attr) override
 
std::set< AXPlatformNode * > GetReverseRelations (ax::mojom::IntAttribute attr) override
 
std::set< AXPlatformNode * > GetReverseRelations (ax::mojom::IntListAttribute attr) override
 
std::u16string GetAuthorUniqueId () const override
 
const AXUniqueIdGetUniqueId () const override
 
std::optional< intFindTextBoundary (ax::mojom::TextBoundary boundary, int offset, ax::mojom::MoveDirection direction, ax::mojom::TextAffinity affinity) const override
 
const std::vector< gfx::NativeViewAccessibleGetUIADescendants () const override
 
std::string GetLanguage () const override
 
bool IsTable () const override
 
std::optional< intGetTableColCount () const override
 
std::optional< intGetTableRowCount () const override
 
std::optional< intGetTableAriaColCount () const override
 
std::optional< intGetTableAriaRowCount () const override
 
std::optional< intGetTableCellCount () const override
 
std::optional< bool > GetTableHasColumnOrRowHeaderNode () const override
 
std::vector< int32_t > GetColHeaderNodeIds () const override
 
std::vector< int32_t > GetColHeaderNodeIds (int col_index) const override
 
std::vector< int32_t > GetRowHeaderNodeIds () const override
 
std::vector< int32_t > GetRowHeaderNodeIds (int row_index) const override
 
AXPlatformNodeGetTableCaption () const override
 
bool IsTableRow () const override
 
std::optional< intGetTableRowRowIndex () const override
 
bool IsTableCellOrHeader () const override
 
std::optional< intGetTableCellIndex () const override
 
std::optional< intGetTableCellColIndex () const override
 
std::optional< intGetTableCellRowIndex () const override
 
std::optional< intGetTableCellColSpan () const override
 
std::optional< intGetTableCellRowSpan () const override
 
std::optional< intGetTableCellAriaColIndex () const override
 
std::optional< intGetTableCellAriaRowIndex () const override
 
std::optional< int32_t > GetCellId (int row_index, int col_index) const override
 
std::optional< int32_t > CellIndexToId (int cell_index) const override
 
bool IsCellOrHeaderOfARIATable () const override
 
bool IsCellOrHeaderOfARIAGrid () const override
 
bool IsOrderedSetItem () const override
 
bool IsOrderedSet () const override
 
std::optional< intGetPosInSet () const override
 
std::optional< intGetSetSize () const override
 
gfx::AcceleratedWidget GetTargetForNativeAccessibilityEvent () override
 
bool AccessibilityPerformAction (const AXActionData &data) override
 
std::u16string GetLocalizedStringForImageAnnotationStatus (ax::mojom::ImageAnnotationStatus status) const override
 
std::u16string GetLocalizedRoleDescriptionForUnlabeledImage () const override
 
std::u16string GetLocalizedStringForLandmarkType () const override
 
std::u16string GetLocalizedStringForRoleDescription () const override
 
std::u16string GetStyleNameAttributeAsLocalizedString () const override
 
bool ShouldIgnoreHoveredStateForTesting () override
 
- Public Member Functions inherited from ui::AXPlatformNodeDelegate
virtual ~AXPlatformNodeDelegate ()=default
 
virtual const AXNodeDataGetData () const =0
 
virtual const AXTreeDataGetTreeData () const =0
 
virtual std::u16string GetInnerText () const =0
 
virtual const AXTree::Selection GetUnignoredSelection () const =0
 
virtual AXNodePosition::AXPositionInstance CreateTextPositionAt (int offset) const =0
 
virtual gfx::NativeViewAccessible GetNSWindow ()=0
 
virtual gfx::NativeViewAccessible GetNativeViewAccessible ()=0
 
virtual gfx::NativeViewAccessible GetParent ()=0
 
virtual int GetIndexInParent ()=0
 
virtual int GetChildCount () const =0
 
virtual gfx::NativeViewAccessible ChildAtIndex (int index)=0
 
virtual bool HasModalDialog () const =0
 
virtual gfx::NativeViewAccessible GetFirstChild ()=0
 
virtual gfx::NativeViewAccessible GetLastChild ()=0
 
virtual gfx::NativeViewAccessible GetNextSibling ()=0
 
virtual gfx::NativeViewAccessible GetPreviousSibling ()=0
 
virtual bool IsChildOfLeaf () const =0
 
virtual bool IsChildOfPlainTextField () const =0
 
virtual bool IsLeaf () const =0
 
virtual bool IsToplevelBrowserWindow ()=0
 
virtual gfx::NativeViewAccessible GetClosestPlatformObject () const =0
 
virtual std::unique_ptr< AXPlatformNodeDelegate::ChildIteratorChildrenBegin ()=0
 
virtual std::unique_ptr< AXPlatformNodeDelegate::ChildIteratorChildrenEnd ()=0
 
virtual std::string GetName () const =0
 
virtual std::u16string GetHypertext () const =0
 
virtual bool SetHypertextSelection (int start_offset, int end_offset)=0
 
virtual TextAttributeMap ComputeTextAttributeMap (const TextAttributeList &default_attributes) const =0
 
virtual std::string GetInheritedFontFamilyName () const =0
 
virtual gfx::Rect GetBoundsRect (const AXCoordinateSystem coordinate_system, const AXClippingBehavior clipping_behavior, AXOffscreenResult *offscreen_result=nullptr) const =0
 
virtual gfx::Rect GetClippedScreenBoundsRect (AXOffscreenResult *offscreen_result=nullptr) const =0
 
virtual gfx::Rect GetHypertextRangeBoundsRect (const int start_offset, const int end_offset, const AXCoordinateSystem coordinate_system, const AXClippingBehavior clipping_behavior, AXOffscreenResult *offscreen_result=nullptr) const =0
 
virtual gfx::Rect GetInnerTextRangeBoundsRect (const int start_offset, const int end_offset, const AXCoordinateSystem coordinate_system, const AXClippingBehavior clipping_behavior, AXOffscreenResult *offscreen_result=nullptr) const =0
 
virtual gfx::NativeViewAccessible HitTestSync (int screen_physical_pixel_x, int screen_physical_pixel_y) const =0
 
virtual gfx::NativeViewAccessible GetFocus ()=0
 
virtual bool IsOffscreen () const =0
 
virtual bool IsMinimized () const =0
 
virtual bool IsText () const =0
 
virtual bool IsWebContent () const =0
 
virtual bool HasVisibleCaretOrSelection () const =0
 
virtual AXPlatformNodeGetFromNodeID (int32_t id)=0
 
virtual AXPlatformNodeGetFromTreeIDAndNodeID (const ui::AXTreeID &ax_tree_id, int32_t id)=0
 
virtual AXPlatformNodeGetTargetNodeForRelation (ax::mojom::IntAttribute attr)=0
 
virtual std::vector< AXPlatformNode * > GetTargetNodesForRelation (ax::mojom::IntListAttribute attr)=0
 
virtual std::set< AXPlatformNode * > GetReverseRelations (ax::mojom::IntAttribute attr)=0
 
virtual std::set< AXPlatformNode * > GetReverseRelations (ax::mojom::IntListAttribute attr)=0
 
virtual std::u16string GetAuthorUniqueId () const =0
 
virtual const AXUniqueIdGetUniqueId () const =0
 
virtual std::optional< intFindTextBoundary (ax::mojom::TextBoundary boundary, int offset, ax::mojom::MoveDirection direction, ax::mojom::TextAffinity affinity) const =0
 
virtual const std::vector< gfx::NativeViewAccessibleGetUIADescendants () const =0
 
virtual std::string GetLanguage () const =0
 
virtual bool IsTable () const =0
 
virtual std::optional< intGetTableColCount () const =0
 
virtual std::optional< intGetTableRowCount () const =0
 
virtual std::optional< intGetTableAriaColCount () const =0
 
virtual std::optional< intGetTableAriaRowCount () const =0
 
virtual std::optional< intGetTableCellCount () const =0
 
virtual std::optional< bool > GetTableHasColumnOrRowHeaderNode () const =0
 
virtual std::vector< int32_t > GetColHeaderNodeIds () const =0
 
virtual std::vector< int32_t > GetColHeaderNodeIds (int col_index) const =0
 
virtual std::vector< int32_t > GetRowHeaderNodeIds () const =0
 
virtual std::vector< int32_t > GetRowHeaderNodeIds (int row_index) const =0
 
virtual AXPlatformNodeGetTableCaption () const =0
 
virtual bool IsTableRow () const =0
 
virtual std::optional< intGetTableRowRowIndex () const =0
 
virtual bool IsTableCellOrHeader () const =0
 
virtual std::optional< intGetTableCellIndex () const =0
 
virtual std::optional< intGetTableCellColIndex () const =0
 
virtual std::optional< intGetTableCellRowIndex () const =0
 
virtual std::optional< intGetTableCellColSpan () const =0
 
virtual std::optional< intGetTableCellRowSpan () const =0
 
virtual std::optional< intGetTableCellAriaColIndex () const =0
 
virtual std::optional< intGetTableCellAriaRowIndex () const =0
 
virtual std::optional< int32_t > GetCellId (int row_index, int col_index) const =0
 
virtual std::optional< int32_t > CellIndexToId (int cell_index) const =0
 
virtual bool IsCellOrHeaderOfARIATable () const =0
 
virtual bool IsCellOrHeaderOfARIAGrid () const =0
 
virtual bool IsOrderedSetItem () const =0
 
virtual bool IsOrderedSet () const =0
 
virtual std::optional< intGetPosInSet () const =0
 
virtual std::optional< intGetSetSize () const =0
 
virtual gfx::AcceleratedWidget GetTargetForNativeAccessibilityEvent ()=0
 
virtual bool AccessibilityPerformAction (const AXActionData &data)=0
 
virtual std::u16string GetLocalizedRoleDescriptionForUnlabeledImage () const =0
 
virtual std::u16string GetLocalizedStringForImageAnnotationStatus (ax::mojom::ImageAnnotationStatus status) const =0
 
virtual std::u16string GetLocalizedStringForLandmarkType () const =0
 
virtual std::u16string GetLocalizedStringForRoleDescription () const =0
 
virtual std::u16string GetStyleNameAttributeAsLocalizedString () const =0
 
virtual bool ShouldIgnoreHoveredStateForTesting ()=0
 
virtual gfx::NativeViewAccessible GetLowestPlatformAncestor () const =0
 
std::string ToString ()
 
std::string SubtreeToString ()
 

Additional Inherited Members

- Protected Member Functions inherited from ui::AXPlatformNodeDelegateBase
std::string SubtreeToStringHelper (size_t level) override
 
std::set< ui::AXPlatformNode * > GetNodesForNodeIds (const std::set< int32_t > &ids)
 
AXPlatformNodeDelegateGetParentDelegate ()
 
- Protected Member Functions inherited from ui::AXPlatformNodeDelegate
 AXPlatformNodeDelegate ()=default
 
virtual std::string SubtreeToStringHelper (size_t level)=0
 

Detailed Description

The macOS implementation of FlutterPlatformNodeDelegate. This class uses AXPlatformNodeMac to manage the macOS-specific accessibility objects.

Definition at line 22 of file FlutterPlatformNodeDelegateMac.h.

Constructor & Destructor Documentation

◆ FlutterPlatformNodeDelegateMac()

flutter::FlutterPlatformNodeDelegateMac::FlutterPlatformNodeDelegateMac ( std::weak_ptr< AccessibilityBridge bridge,
__weak FlutterViewController view_controller 
)

Definition at line 23 of file FlutterPlatformNodeDelegateMac.mm.

26 : bridge_(std::move(bridge)), view_controller_(view_controller) {}

◆ ~FlutterPlatformNodeDelegateMac()

flutter::FlutterPlatformNodeDelegateMac::~FlutterPlatformNodeDelegateMac ( )
virtual

Definition at line 38 of file FlutterPlatformNodeDelegateMac.mm.

38 {
39 // Destroy() also calls delete on itself.
40 ax_platform_node_->Destroy();
41}
virtual void Destroy()

Member Function Documentation

◆ GetBoundsRect()

gfx::Rect flutter::FlutterPlatformNodeDelegateMac::GetBoundsRect ( const ui::AXCoordinateSystem  coordinate_system,
const ui::AXClippingBehavior  clipping_behavior,
ui::AXOffscreenResult offscreen_result 
) const
overridevirtual

Reimplemented from flutter::FlutterPlatformNodeDelegate.

Definition at line 57 of file FlutterPlatformNodeDelegateMac.mm.

60 {
62 coordinate_system, clipping_behavior, offscreen_result);
63 gfx::RectF local_bounds_f(local_bounds);
64 gfx::RectF screen_bounds = ConvertBoundsFromLocalToScreen(local_bounds_f);
65 return gfx::ToEnclosingRect(ConvertBoundsFromScreenToGlobal(screen_bounds));
66}
gfx::Rect GetBoundsRect(const ui::AXCoordinateSystem coordinate_system, const ui::AXClippingBehavior clipping_behavior, ui::AXOffscreenResult *offscreen_result) const override
Definition: rect.h:36
Rect ToEnclosingRect(const RectF &r)

◆ GetLiveRegionText()

std::string flutter::FlutterPlatformNodeDelegateMac::GetLiveRegionText ( ) const

Gets the live region text of this node in UTF-8 format. This is useful to determine the changes in between semantics updates when generating accessibility events.

Definition at line 73 of file FlutterPlatformNodeDelegateMac.mm.

73 {
74 if (GetAXNode()->IsIgnored()) {
75 return "";
76 }
77
79 if (!text.empty()) {
80 return text;
81 };
82 auto bridge_ptr = bridge_.lock();
83 NSCAssert(bridge_ptr, @"Accessibility bridge in flutter engine must not be null.");
84 for (int32_t child : GetData().child_ids) {
85 auto delegate_child = bridge_ptr->GetFlutterPlatformNodeDelegateFromID(child).lock();
86 if (!delegate_child) {
87 continue;
88 }
89 text += std::static_pointer_cast<FlutterPlatformNodeDelegateMac>(delegate_child)
90 ->GetLiveRegionText();
91 }
92 return text;
93}
ui::AXNode * GetAXNode() const
Gets the underlying ax node for this platform node delegate.
const ui::AXNodeData & GetData() const override
std::u16string text
const std::string & GetStringAttribute(ax::mojom::StringAttribute attribute) const

◆ GetNativeViewAccessible()

gfx::NativeViewAccessible flutter::FlutterPlatformNodeDelegateMac::GetNativeViewAccessible ( )
overridevirtual

Implements ui::AXPlatformNodeDelegate.

Definition at line 43 of file FlutterPlatformNodeDelegateMac.mm.

43 {
44 NSCAssert(ax_platform_node_, @"Platform node does not exist.");
45 return ax_platform_node_->GetNativeViewAccessible();
46}
virtual gfx::NativeViewAccessible GetNativeViewAccessible()=0

◆ GetNSWindow()

gfx::NativeViewAccessible flutter::FlutterPlatformNodeDelegateMac::GetNSWindow ( )
overridevirtual

Implements ui::AXPlatformNodeDelegate.

Definition at line 68 of file FlutterPlatformNodeDelegateMac.mm.

68 {
69 FlutterAppDelegate* appDelegate = (FlutterAppDelegate*)[NSApp delegate];
70 return appDelegate.mainFlutterWindow;
71}
IBOutlet NSWindow * mainFlutterWindow

◆ GetParent()

gfx::NativeViewAccessible flutter::FlutterPlatformNodeDelegateMac::GetParent ( )
overridevirtual

Reimplemented from flutter::FlutterPlatformNodeDelegate.

Definition at line 48 of file FlutterPlatformNodeDelegateMac.mm.

48 {
50 if (!parent) {
51 NSCAssert(view_controller_.viewLoaded, @"Flutter view must be loaded");
52 return view_controller_.flutterView;
53 }
54 return parent;
55}
gfx::NativeViewAccessible GetParent() override
UnimplementedNativeViewAccessible * NativeViewAccessible

◆ Init()

void flutter::FlutterPlatformNodeDelegateMac::Init ( std::weak_ptr< OwnerBridge bridge,
ui::AXNode node 
)
overridevirtual

Called only once, immediately after construction. The constructor doesn't take any arguments because in the Windows subclass we use a special function to construct a COM object. Subclasses must call super.

Reimplemented from flutter::FlutterPlatformNodeDelegate.

Definition at line 28 of file FlutterPlatformNodeDelegateMac.mm.

28 {
30 if (GetData().IsTextField()) {
31 ax_platform_node_ = new FlutterTextPlatformNode(this, view_controller_);
32 } else {
33 ax_platform_node_ = ui::AXPlatformNode::Create(this);
34 }
35 NSCAssert(ax_platform_node_, @"Failed to create platform node.");
36}
virtual void Init(std::weak_ptr< OwnerBridge > bridge, ui::AXNode *node)
Called only once, immediately after construction. The constructor doesn't take any arguments because ...
static AXPlatformNode * Create(AXPlatformNodeDelegate *delegate)

The documentation for this class was generated from the following files: