browser_accessibility_mac.h revision 513209b27ff55e2841eac0e4120199c23acce758
1// Copyright (c) 2010 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/scoped_nsobject.h"
14#include "chrome/browser/accessibility/browser_accessibility.h"
15
16@class BrowserAccessibilityCocoa;
17
18class BrowserAccessibilityMac : public BrowserAccessibility {
19 public:
20  // Implementation of BrowserAccessibility.
21  virtual void Initialize();
22  virtual void ReleaseReference();
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