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. 4 5#ifndef ASH_TEST_TEST_ACTIVATION_DELEGATE_H_ 6#define ASH_TEST_TEST_ACTIVATION_DELEGATE_H_ 7 8#include "base/compiler_specific.h" 9#include "base/logging.h" 10#include "ui/aura/client/activation_change_observer.h" 11#include "ui/aura/client/activation_delegate.h" 12#include "ui/base/events/event_handler.h" 13 14namespace aura { 15class Window; 16} 17 18namespace ash { 19namespace test { 20 21// A test ActivationDelegate that can be used to track activation changes for 22// an aura::Window. 23class TestActivationDelegate : public aura::client::ActivationDelegate, 24 public aura::client::ActivationChangeObserver { 25 public: 26 TestActivationDelegate(); 27 explicit TestActivationDelegate(bool activate); 28 29 // Associates this delegate with a Window. 30 void SetWindow(aura::Window* window); 31 32 bool window_was_active() const { return window_was_active_; } 33 void set_activate(bool v) { activate_ = v; } 34 int activated_count() const { return activated_count_; } 35 int lost_active_count() const { return lost_active_count_; } 36 int should_activate_count() const { return should_activate_count_; } 37 void Clear() { 38 activated_count_ = lost_active_count_ = should_activate_count_ = 0; 39 window_was_active_ = false; 40 } 41 42 // Overridden from aura::client::ActivationDelegate: 43 virtual bool ShouldActivate() const OVERRIDE; 44 45 private: 46 // Overridden from aura::client::ActivationChangeObserver: 47 virtual void OnWindowActivated(aura::Window* gained_active, 48 aura::Window* lost_active) OVERRIDE; 49 50 aura::Window* window_; 51 bool window_was_active_; 52 bool activate_; 53 int activated_count_; 54 int lost_active_count_; 55 mutable int should_activate_count_; 56 57 DISALLOW_COPY_AND_ASSIGN(TestActivationDelegate); 58}; 59 60} // namespace test 61} // namespace ash 62 63#endif // ASH_TEST_TEST_ACTIVATION_DELEGATE_H_ 64