1 // Copyright (c) 2011 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 CHROME_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_MAC_H_ 6 #define CHROME_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_MAC_H_ 7 #pragma once 8 9 #include <map> 10 #include <utility> 11 #include <vector> 12 13 #include "base/memory/scoped_nsobject.h" 14 #include "chrome/browser/accessibility/browser_accessibility.h" 15 16 @class BrowserAccessibilityCocoa; 17 18 class BrowserAccessibilityMac : public BrowserAccessibility { 19 public: 20 // Implementation of BrowserAccessibility. 21 virtual void Initialize(); 22 virtual void NativeReleaseReference(); 23 24 // Overrides from BrowserAccessibility. 25 // Used to know when to update the cocoa children. 26 virtual void ReplaceChild( 27 BrowserAccessibility* old_acc, 28 BrowserAccessibility* new_acc); 29 30 // The BrowserAccessibilityCocoa associated with us. 31 BrowserAccessibilityCocoa* native_view() const { 32 return browser_accessibility_cocoa_; 33 } 34 35 private: 36 // This gives BrowserAccessibility::Create access to the class constructor. 37 friend class BrowserAccessibility; 38 39 BrowserAccessibilityMac(); 40 41 // Allows access to the BrowserAccessibilityCocoa which wraps this. 42 // BrowserAccessibility. 43 // We own this object until our manager calls ReleaseReference; 44 // thereafter, the cocoa object owns us. 45 BrowserAccessibilityCocoa* browser_accessibility_cocoa_; 46 DISALLOW_COPY_AND_ASSIGN(BrowserAccessibilityMac); 47 }; 48 49 #endif // CHROME_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_MAC_H_ 50