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 5 #ifndef CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_WIN_H_ 6 #define CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_WIN_H_ 7 8 #include <vector> 9 10 #include "base/win/atl.h" 11 #include "content/browser/accessibility/browser_accessibility.h" 12 #include "content/browser/accessibility/browser_accessibility_com_win.h" 13 #include "content/common/content_export.h" 14 15 namespace content { 16 17 class CONTENT_EXPORT BrowserAccessibilityWin : public BrowserAccessibility { 18 public: 19 BrowserAccessibilityWin(); 20 ~BrowserAccessibilityWin() override; 21 22 // This is used to call UpdateStep1ComputeWinAttributes, ... above when 23 // a node needs to be updated for some other reason other than via 24 // OnAtomicUpdateFinished. 25 void UpdatePlatformAttributes() override; 26 27 // 28 // BrowserAccessibility overrides. 29 // 30 31 bool CanFireEvents() const override; 32 ui::AXPlatformNode* GetAXPlatformNode() const override; 33 void OnLocationChanged() override; 34 base::string16 GetText() const override; 35 base::string16 GetHypertext() const override; 36 37 const std::vector<gfx::NativeViewAccessible> GetUIADescendants() 38 const override; 39 40 gfx::NativeViewAccessible GetNativeViewAccessible() override; 41 42 class BrowserAccessibilityComWin* GetCOM() const; 43 44 protected: 45 ui::TextAttributeList ComputeTextAttributes() const override; 46 47 bool ShouldHideChildrenForUIA() const; 48 49 private: 50 CComObject<BrowserAccessibilityComWin>* browser_accessibility_com_; 51 // Give BrowserAccessibility::Create access to our constructor. 52 friend class BrowserAccessibility; 53 DISALLOW_COPY_AND_ASSIGN(BrowserAccessibilityWin); 54 }; 55 56 CONTENT_EXPORT BrowserAccessibilityWin* ToBrowserAccessibilityWin( 57 BrowserAccessibility* obj); 58 59 CONTENT_EXPORT const BrowserAccessibilityWin* ToBrowserAccessibilityWin( 60 const BrowserAccessibility* obj); 61 62 } // namespace content 63 64 #endif // CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_WIN_H_ 65