| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef UI_WM_PUBLIC_ACTIVATION_CHANGE_OBSERVER_H_ |
| #define UI_WM_PUBLIC_ACTIVATION_CHANGE_OBSERVER_H_ |
| |
| #include "ui/aura/aura_export.h" |
| |
| namespace aura { |
| class Window; |
| |
| namespace client { |
| |
| class AURA_EXPORT ActivationChangeObserver { |
| public: |
| // Called when |active| gains focus, or there is no active window |
| // (|active| is NULL in this case.) |old_active| refers to the |
| // previous active window or NULL if there was no previously active |
| // window. |
| virtual void OnWindowActivated(Window* gained_active, |
| Window* lost_active) = 0; |
| |
| // Called when during window activation the currently active window is |
| // selected for activation. This can happen when a window requested for |
| // activation cannot be activated because a system modal window is active. |
| virtual void OnAttemptToReactivateWindow(aura::Window* request_active, |
| aura::Window* actual_active) {} |
| |
| protected: |
| virtual ~ActivationChangeObserver() {} |
| }; |
| |
| // Gets/Sets the ActivationChangeObserver for a specific window. This observer |
| // is notified after the ActivationClient notifies all registered observers. |
| AURA_EXPORT void SetActivationChangeObserver( |
| Window* window, |
| ActivationChangeObserver* observer); |
| AURA_EXPORT ActivationChangeObserver* GetActivationChangeObserver( |
| Window* window); |
| |
| } // namespace client |
| } // namespace aura |
| |
| #endif // UI_WM_PUBLIC_ACTIVATION_CHANGE_OBSERVER_H_ |