OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef UI_AURA_SCOPED_WINDOW_TARGETER_H_ | 5 #ifndef UI_AURA_SCOPED_WINDOW_TARGETER_H_ |
6 #define UI_AURA_SCOPED_WINDOW_TARGETER_H_ | 6 #define UI_AURA_SCOPED_WINDOW_TARGETER_H_ |
7 | 7 |
8 #include "base/macros.h" | 8 #include "base/macros.h" |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "ui/aura/window_observer.h" | 10 #include "ui/aura/window_observer.h" |
11 | 11 |
12 namespace ui { | 12 namespace ui { |
13 class EventTargeter; | 13 class EventTargeter; |
14 } | 14 } |
15 | 15 |
16 namespace aura { | 16 namespace aura { |
17 | 17 |
18 class Window; | 18 class Window; |
19 | 19 |
20 // ScopedWindowTargeter is used to temporarily replace the event-targeter for a | 20 // ScopedWindowTargeter is used to temporarily replace the event-targeter for a |
21 // window. Upon construction, it installs a new targeter on the window, and upon | 21 // window. Upon construction, it installs a new targeter on the window, and upon |
22 // destruction, it restores the previous event-targeter on the window. | 22 // destruction, it restores the previous event-targeter on the window. |
23 class AURA_EXPORT ScopedWindowTargeter : public WindowObserver { | 23 class AURA_EXPORT ScopedWindowTargeter : public WindowObserver { |
24 public: | 24 public: |
25 ScopedWindowTargeter(Window* window, | 25 ScopedWindowTargeter(Window* window, |
26 scoped_ptr<ui::EventTargeter> new_targeter); | 26 scoped_ptr<ui::EventTargeter> new_targeter); |
27 | 27 |
28 virtual ~ScopedWindowTargeter(); | 28 virtual ~ScopedWindowTargeter(); |
29 | 29 |
| 30 ui::EventTargeter* old_targeter() { |
| 31 return old_targeter_.get(); |
| 32 } |
| 33 |
30 private: | 34 private: |
31 // WindowObserver: | 35 // WindowObserver: |
32 virtual void OnWindowDestroyed(Window* window) OVERRIDE; | 36 virtual void OnWindowDestroyed(Window* window) OVERRIDE; |
33 | 37 |
34 Window* window_; | 38 Window* window_; |
35 scoped_ptr<ui::EventTargeter> old_targeter_; | 39 scoped_ptr<ui::EventTargeter> old_targeter_; |
36 | 40 |
37 DISALLOW_COPY_AND_ASSIGN(ScopedWindowTargeter); | 41 DISALLOW_COPY_AND_ASSIGN(ScopedWindowTargeter); |
38 }; | 42 }; |
39 | 43 |
40 } // namespace aura | 44 } // namespace aura |
41 | 45 |
42 #endif // UI_AURA_SCOPED_WINDOW_TARGETER_H_ | 46 #endif // UI_AURA_SCOPED_WINDOW_TARGETER_H_ |
OLD | NEW |