forked from chromium/chromium
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Implement basic accessibility hierarchy support for MacViews, bridging the View hierarchy to a hierarchy of Objective-C objects that implement the NSAccessibility informal protocol. AXPlatformNode is introduced as the accessibility abstraction that will be used for views and browser content, for both Mac and Windows. This initial patch includes the basic views on Mac implementation. BUG=396137 Review URL: https://codereview.chromium.org/420653003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@286768 0039d316-1c4b-4281-b951-d872f2087c98
- Loading branch information
andresantoso@chromium.org
committed
Jul 31, 2014
1 parent
52daf4f
commit bacf713
Showing
18 changed files
with
757 additions
and
204 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
// Copyright 2014 The Chromium Authors. All rights reserved. | ||
// Use of this source code is governed by a BSD-style license that can be | ||
// found in the LICENSE file. | ||
|
||
#include "ui/accessibility/platform/ax_platform_node.h" | ||
|
||
#include "ui/accessibility/ax_node_data.h" | ||
#include "ui/accessibility/platform/ax_platform_node_delegate.h" | ||
|
||
namespace ui { | ||
|
||
#if !defined(OS_MACOSX) | ||
// static | ||
AXPlatformNode* AXPlatformNode::Create(AXPlatformNodeDelegate* delegate) { | ||
return NULL; | ||
} | ||
#endif | ||
|
||
AXPlatformNode::AXPlatformNode() { | ||
} | ||
|
||
AXPlatformNode::~AXPlatformNode() { | ||
} | ||
|
||
} // namespace ui |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
// Copyright 2014 The Chromium Authors. All rights reserved. | ||
// 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_H_ | ||
#define UI_ACCESSIBILITY_PLATFORM_AX_PLATFORM_NODE_H_ | ||
|
||
#include "ui/accessibility/ax_export.h" | ||
#include "ui/gfx/native_widget_types.h" | ||
|
||
namespace ui { | ||
|
||
class AXPlatformNodeDelegate; | ||
|
||
class AX_EXPORT AXPlatformNode { | ||
public: | ||
// Create a platform appropriate instance. | ||
static AXPlatformNode* Create(AXPlatformNodeDelegate* delegate); | ||
|
||
// Call Destroy rather than deleting this, because the subclass may | ||
// use reference counting. | ||
virtual void Destroy() = 0; | ||
|
||
virtual gfx::NativeViewAccessible GetNativeViewAccessible() = 0; | ||
|
||
protected: | ||
AXPlatformNode(); | ||
virtual ~AXPlatformNode(); | ||
}; | ||
|
||
} // namespace ui | ||
|
||
#endif // UI_ACCESSIBILITY_PLATFORM_AX_PLATFORM_NODE_H_ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
// Copyright 2014 The Chromium Authors. All rights reserved. | ||
// Use of this source code is governed by a BSD-style license that can be | ||
// found in the LICENSE file. | ||
|
||
#include "ui/accessibility/platform/ax_platform_node_base.h" | ||
|
||
#include "ui/accessibility/ax_node_data.h" | ||
#include "ui/accessibility/platform/ax_platform_node_delegate.h" | ||
|
||
namespace ui { | ||
|
||
AXPlatformNodeBase::AXPlatformNodeBase() { | ||
} | ||
|
||
AXPlatformNodeBase::~AXPlatformNodeBase() { | ||
} | ||
|
||
void AXPlatformNodeBase::Init(AXPlatformNodeDelegate* delegate) { | ||
delegate_ = delegate; | ||
} | ||
|
||
AXRole AXPlatformNodeBase::GetRole() const { | ||
return delegate_ ? delegate_->GetData()->role : AX_ROLE_UNKNOWN; | ||
} | ||
|
||
gfx::Rect AXPlatformNodeBase::GetBoundsInScreen() const { | ||
if (!delegate_) | ||
return gfx::Rect(); | ||
gfx::Rect bounds = delegate_->GetData()->location; | ||
bounds.Offset(delegate_->GetGlobalCoordinateOffset()); | ||
return bounds; | ||
} | ||
|
||
gfx::NativeViewAccessible AXPlatformNodeBase::GetParent() { | ||
return delegate_ ? delegate_->GetParent() : NULL; | ||
} | ||
|
||
int AXPlatformNodeBase::GetChildCount() { | ||
return delegate_ ? delegate_->GetChildCount() : 0; | ||
} | ||
|
||
gfx::NativeViewAccessible AXPlatformNodeBase::ChildAtIndex(int index) { | ||
return delegate_ ? delegate_->ChildAtIndex(index) : NULL; | ||
} | ||
|
||
// AXPlatformNode | ||
|
||
void AXPlatformNodeBase::Destroy() { | ||
delegate_ = NULL; | ||
delete this; | ||
} | ||
|
||
gfx::NativeViewAccessible AXPlatformNodeBase::GetNativeViewAccessible() { | ||
return NULL; | ||
} | ||
|
||
|
||
} // namespace ui |
Oops, something went wrong.