Chromium Code Reviews| Index: ui/accessibility/platform/ax_fake_caret_win.h |
| diff --git a/ui/accessibility/platform/ax_fake_caret_win.h b/ui/accessibility/platform/ax_fake_caret_win.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..c8d4de5c7708d1226fc05112aefc11e57fe76c4d |
| --- /dev/null |
| +++ b/ui/accessibility/platform/ax_fake_caret_win.h |
| @@ -0,0 +1,58 @@ |
| +// Copyright (c) 2017 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_FAKE_CARET_WIN_H_ |
| +#define UI_ACCESSIBILITY_PLATFORM_AX_FAKE_CARET_WIN_H_ |
| + |
| +#include <oleacc.h> |
| + |
| +#include "base/lazy_instance.h" |
| +#include "base/macros.h" |
| +#include "base/win/scoped_comptr.h" |
| +#include "ui/accessibility/ax_export.h" |
| +#include "ui/accessibility/ax_node_data.h" |
| +#include "ui/accessibility/platform/ax_platform_node_delegate.h" |
| +#include "ui/gfx/geometry/rect.h" |
| +#include "ui/gfx/native_widget_types.h" |
| + |
| +namespace ui { |
| + |
| +class AXPlatformNodeWin; |
| + |
| +// A class representing the position of the caret to assistive software on |
| +// Windows. This is required because Chrome doesn't use the standard system |
| +// caret and because some assistive software still relies on specific |
| +// accessibility APIs to retrieve the caret position. |
| +class AX_EXPORT AXFakeCaretWin : private AXPlatformNodeDelegate { |
| + public: |
| + AXFakeCaretWin(); |
| + virtual ~AXFakeCaretWin(); |
| + |
| + base::win::ScopedComPtr<IAccessible> GetCaret() const; |
| + void SetBounds(gfx::Rect bounds); |
| + |
| + private: |
| + // |AXPlatformNodeDelegate| members. |
| + const AXNodeData& GetData() const override; |
| + gfx::NativeWindow GetTopLevelWidget() override; |
| + gfx::NativeViewAccessible GetParent() override; |
| + int GetChildCount() override; |
| + gfx::NativeViewAccessible ChildAtIndex(int index) override; |
| + gfx::Rect GetScreenBoundsRect() const override; |
| + gfx::NativeViewAccessible HitTestSync(int x, int y) override; |
| + gfx::NativeViewAccessible GetFocus() override; |
| + gfx::AcceleratedWidget GetTargetForNativeAccessibilityEvent() override; |
| + bool AccessibilityPerformAction(const ui::AXActionData& data) override; |
| + |
| + AXPlatformNodeWin* caret_; |
| + AXNodeData data_; |
| + DISALLOW_COPY_AND_ASSIGN(AXFakeCaretWin); |
| +}; |
| + |
| +AX_EXPORT base::LazyInstance<AXFakeCaretWin>::DestructorAtExit |
| + g_ax_fake_caret_win = LAZY_INSTANCE_INITIALIZER; |
|
dmazzoni
2017/04/17 05:07:35
Put this in the C++ file, and provide a method to
|
| + |
| +} // namespace ui |
| + |
| +#endif // UI_ACCESSIBILITY_PLATFORM_AX_FAKE_CARET_WIN_H_ |