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) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef ASH_TEST_TEST_ACTIVATION_DELEGATE_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ASH_TEST_TEST_ACTIVATION_DELEGATE_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/compiler_specific.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/logging.h" 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ui/aura/client/activation_change_observer.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/aura/client/activation_delegate.h" 12d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "ui/events/event_handler.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace aura { 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class Window; 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ash { 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace test { 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// A test ActivationDelegate that can be used to track activation changes for 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// an aura::Window. 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class TestActivationDelegate : public aura::client::ActivationDelegate, 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public aura::client::ActivationChangeObserver { 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TestActivationDelegate(); 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) explicit TestActivationDelegate(bool activate); 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Associates this delegate with a Window. 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SetWindow(aura::Window* window); 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool window_was_active() const { return window_was_active_; } 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_activate(bool v) { activate_ = v; } 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int activated_count() const { return activated_count_; } 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int lost_active_count() const { return lost_active_count_; } 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int should_activate_count() const { return should_activate_count_; } 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void Clear() { 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) activated_count_ = lost_active_count_ = should_activate_count_ = 0; 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) window_was_active_ = false; 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Overridden from aura::client::ActivationDelegate: 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual bool ShouldActivate() const OVERRIDE; 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Overridden from aura::client::ActivationChangeObserver: 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void OnWindowActivated(aura::Window* gained_active, 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) aura::Window* lost_active) OVERRIDE; 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) aura::Window* window_; 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool window_was_active_; 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool activate_; 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int activated_count_; 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int lost_active_count_; 552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) mutable int should_activate_count_; 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(TestActivationDelegate); 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace test 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace ash 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // ASH_TEST_TEST_ACTIVATION_DELEGATE_H_ 64