Supervised user whitelists: Cleanup
[chromium-blink-merge.git] / ui / base / win / accessibility_misc_utils.h
blob87eeec2b9f9c859081c676e78d22109cab8dae28
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) override;
50 // IValueProvider methods not implemented.
52 STDMETHOD(SetValue)(const wchar_t* val) override { return E_NOTIMPL; }
54 STDMETHOD(get_Value)(BSTR* value) override;
57 // ITextProvider methods.
59 STDMETHOD(GetSelection)(SAFEARRAY** ret) override { return E_NOTIMPL; }
61 STDMETHOD(GetVisibleRanges)(SAFEARRAY** ret) override { return E_NOTIMPL; }
63 STDMETHOD(RangeFromChild)(IRawElementProviderSimple* child,
64 ITextRangeProvider** ret) override {
65 return E_NOTIMPL;
68 STDMETHOD(RangeFromPoint)(struct UiaPoint point,
69 ITextRangeProvider** ret) override {
70 return E_NOTIMPL;
73 STDMETHOD(get_DocumentRange)(ITextRangeProvider** ret) override {
74 return E_NOTIMPL;
77 STDMETHOD(get_SupportedTextSelection)(
78 enum SupportedTextSelection* ret) override {
79 return E_NOTIMPL;
82 private:
83 bool editable_;
84 string16 value_;
87 } // win
88 } // base
90 #endif // UI_BASE_WIN_ACCESSIBILITY_MISC_UTILS_H_