- add sources.
[platform/framework/web/crosswalk.git] / src / ui / base / win / accessibility_misc_utils.h
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_
6
7 #include <atlbase.h>
8 #include <atlcom.h>
9 #include <UIAutomationCore.h>
10
11 #include "base/compiler_specific.h"
12 #include "ui/base/ui_export.h"
13
14 namespace base {
15 namespace win {
16
17   // UIA Text provider implementation for edit controls.
18 class UI_EXPORT UIATextProvider
19     : public NON_EXPORTED_BASE(CComObjectRootEx<CComMultiThreadModel>),
20       public IValueProvider,
21       public ITextProvider {
22  public:
23   BEGIN_COM_MAP(UIATextProvider)
24     COM_INTERFACE_ENTRY2(IUnknown, ITextProvider)
25     COM_INTERFACE_ENTRY(IValueProvider)
26     COM_INTERFACE_ENTRY(ITextProvider)
27   END_COM_MAP()
28
29   UIATextProvider();
30
31   // Creates an instance of the UIATextProvider class.
32   // Returns true on success
33   static bool CreateTextProvider(bool editable, IUnknown** provider);
34
35   void set_editable(bool editable) {
36     editable_ = editable;
37   }
38
39   //
40   // IValueProvider methods.
41   //
42   STDMETHOD(get_IsReadOnly)(BOOL* read_only);
43
44   //
45   // IValueProvider methods not implemented.
46   //
47   STDMETHOD(SetValue)(const wchar_t* val) {
48     return E_NOTIMPL;
49   }
50
51   STDMETHOD(get_Value)(BSTR* value) {
52     return E_NOTIMPL;
53   }
54
55   //
56   // ITextProvider methods.
57   //
58   STDMETHOD(GetSelection)(SAFEARRAY** ret) {
59     return E_NOTIMPL;
60   }
61
62   STDMETHOD(GetVisibleRanges)(SAFEARRAY** ret) {
63     return E_NOTIMPL;
64   }
65
66   STDMETHOD(RangeFromChild)(IRawElementProviderSimple* child,
67                             ITextRangeProvider** ret) {
68     return E_NOTIMPL;
69   }
70
71   STDMETHOD(RangeFromPoint)(struct UiaPoint point,
72                             ITextRangeProvider** ret) {
73     return E_NOTIMPL;
74   }
75
76   STDMETHOD(get_DocumentRange)(ITextRangeProvider** ret) {
77     return E_NOTIMPL;
78   }
79
80   STDMETHOD(get_SupportedTextSelection)(enum SupportedTextSelection* ret) {
81     return E_NOTIMPL;
82   }
83
84  private:
85   bool editable_;
86 };
87
88 }  // win
89 }  // base
90
91 #endif  // UI_BASE_WIN_ACCESSIBILITY_MISC_UTILS_H_