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 14 namespace aura { 15 class Window; 16 } 17 18 namespace ash { 19 namespace test { 20 21 // A test ActivationDelegate that can be used to track activation changes for 22 // an aura::Window. 23 class 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