Updating trunk VERSION from 2139.0 to 2140.0
[chromium-blink-merge.git] / ui / base / win / accessibility_misc_utils.h
blobe17f1d3c6b027d33b99c0e671528a4aaf5f3d455
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 #ifndef UI_BASE_WIN_ACCESSIBILITY_MISC_UTILS_H_
5 #define UI_BASE_WIN_ACCESSIBILITY_MISC_UTILS_H_
7 #include <atlbase.h>
8 #include <atlcom.h>
9 #include <UIAutomationCore.h>
11 #include "base/compiler_specific.h"
12 #include "base/strings/string16.h"
13 #include "ui/base/ui_base_export.h"
15 namespace base {
16 namespace win {
18 // UIA Text provider implementation for edit controls.
19 class UI_BASE_EXPORT UIATextProvider
20 : public NON_EXPORTED_BASE(CComObjectRootEx<CComMultiThreadModel>),
21 public IValueProvider,
22 public ITextProvider {
23 public:
24 BEGIN_COM_MAP(UIATextProvider)
25 COM_INTERFACE_ENTRY2(IUnknown, ITextProvider)
26 COM_INTERFACE_ENTRY(IValueProvider)
27 COM_INTERFACE_ENTRY(ITextProvider)
28 END_COM_MAP()
30 UIATextProvider();
32 // Creates an instance of the UIATextProvider class.
33 // Returns true on success
34 static bool CreateTextProvider(const string16& value,
35 bool editable,
36 IUnknown** provider);
38 void set_editable(bool editable) {
39 editable_ = editable;
42 void set_value(const string16& value) { value_ = value; }
45 // IValueProvider methods.
47 STDMETHOD(get_IsReadOnly)(BOOL* read_only);
50 // IValueProvider methods not implemented.
52 STDMETHOD(SetValue)(const wchar_t* val) {
53 return E_NOTIMPL;
56 STDMETHOD(get_Value)(BSTR* value);
59 // ITextProvider methods.
61 STDMETHOD(GetSelection)(SAFEARRAY** ret) {
62 return E_NOTIMPL;
65 STDMETHOD(GetVisibleRanges)(SAFEARRAY** ret) {
66 return E_NOTIMPL;
69 STDMETHOD(RangeFromChild)(IRawElementProviderSimple* child,
70 ITextRangeProvider** ret) {
71 return E_NOTIMPL;
74 STDMETHOD(RangeFromPoint)(struct UiaPoint point,
75 ITextRangeProvider** ret) {
76 return E_NOTIMPL;
79 STDMETHOD(get_DocumentRange)(ITextRangeProvider** ret) {
80 return E_NOTIMPL;
83 STDMETHOD(get_SupportedTextSelection)(enum SupportedTextSelection* ret) {
84 return E_NOTIMPL;
87 private:
88 bool editable_;
89 string16 value_;
92 } // win
93 } // base
95 #endif // UI_BASE_WIN_ACCESSIBILITY_MISC_UTILS_H_