15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#ifndef UI_WM_PUBLIC_ACTIVATION_CHANGE_OBSERVER_H_ 6effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#define UI_WM_PUBLIC_ACTIVATION_CHANGE_OBSERVER_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/aura/aura_export.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace aura { 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class Window; 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace client { 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class AURA_EXPORT ActivationChangeObserver { 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Called when |active| gains focus, or there is no active window 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // (|active| is NULL in this case.) |old_active| refers to the 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // previous active window or NULL if there was no previously active 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // window. 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void OnWindowActivated(Window* gained_active, 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Window* lost_active) = 0; 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Called when during window activation the currently active window is 25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // selected for activation. This can happen when a window requested for 26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // activation cannot be activated because a system modal window is active. 27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void OnAttemptToReactivateWindow(aura::Window* request_active, 28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) aura::Window* actual_active) {} 29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) protected: 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual ~ActivationChangeObserver() {} 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Gets/Sets the ActivationChangeObserver for a specific window. This observer 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// is notified after the ActivationClient notifies all registered observers. 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)AURA_EXPORT void SetActivationChangeObserver( 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Window* window, 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ActivationChangeObserver* observer); 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)AURA_EXPORT ActivationChangeObserver* GetActivationChangeObserver( 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Window* window); 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace client 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace aura 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 45effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#endif // UI_WM_PUBLIC_ACTIVATION_CHANGE_OBSERVER_H_ 46