scoped_window_targeter.h revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
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 3// found in the LICENSE file. 4 5#ifndef UI_AURA_SCOPED_WINDOW_TARGETER_H_ 6#define UI_AURA_SCOPED_WINDOW_TARGETER_H_ 7 8#include "base/macros.h" 9#include "base/memory/scoped_ptr.h" 10#include "ui/aura/window_observer.h" 11 12namespace ui { 13class EventTargeter; 14} 15 16namespace aura { 17 18class Window; 19 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 22// destruction, it restores the previous event-targeter on the window. 23class AURA_EXPORT ScopedWindowTargeter : public WindowObserver { 24 public: 25 ScopedWindowTargeter(Window* window, 26 scoped_ptr<ui::EventTargeter> new_targeter); 27 28 virtual ~ScopedWindowTargeter(); 29 30 private: 31 // WindowObserver: 32 virtual void OnWindowDestroyed(Window* window) OVERRIDE; 33 34 Window* window_; 35 scoped_ptr<ui::EventTargeter> old_targeter_; 36 37 DISALLOW_COPY_AND_ASSIGN(ScopedWindowTargeter); 38}; 39 40} // namespace aura 41 42#endif // UI_AURA_SCOPED_WINDOW_TARGETER_H_ 43