Roll src/third_party/WebKit d67e6d4:0cefbbd (svn 194847:194848)
[chromium-blink-merge.git] / ui / wm / public / activation_change_observer.h
blob68d5b8a742acedbc5c99bd19867bb41d67f63a17
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.
5 #ifndef UI_WM_PUBLIC_ACTIVATION_CHANGE_OBSERVER_H_
6 #define UI_WM_PUBLIC_ACTIVATION_CHANGE_OBSERVER_H_
8 #include "ui/aura/aura_export.h"
10 namespace aura {
11 class Window;
13 namespace client {
15 class AURA_EXPORT ActivationChangeObserver {
16 public:
17 // Called when |active| gains focus, or there is no active window
18 // (|active| is NULL in this case.) |old_active| refers to the
19 // previous active window or NULL if there was no previously active
20 // window.
21 virtual void OnWindowActivated(Window* gained_active,
22 Window* lost_active) = 0;
24 // Called when during window activation the currently active window is
25 // selected for activation. This can happen when a window requested for
26 // activation cannot be activated because a system modal window is active.
27 virtual void OnAttemptToReactivateWindow(aura::Window* request_active,
28 aura::Window* actual_active) {}
30 protected:
31 virtual ~ActivationChangeObserver() {}
34 // Gets/Sets the ActivationChangeObserver for a specific window. This observer
35 // is notified after the ActivationClient notifies all registered observers.
36 AURA_EXPORT void SetActivationChangeObserver(
37 Window* window,
38 ActivationChangeObserver* observer);
39 AURA_EXPORT ActivationChangeObserver* GetActivationChangeObserver(
40 Window* window);
42 } // namespace client
43 } // namespace aura
45 #endif // UI_WM_PUBLIC_ACTIVATION_CHANGE_OBSERVER_H_