17d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 27d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 37d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// found in the LICENSE file. 47d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 5f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "athena/activity/public/activity_manager.h" 67d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 7f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include <vector> 868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 9f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "base/macros.h" 107d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "base/observer_list.h" 11a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "ui/views/widget/widget_observer.h" 12f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)namespace athena { 147d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 157d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)class ActivityManagerObserver; 167d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 177d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)class ActivityManagerImpl : public ActivityManager, 187d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) public views::WidgetObserver { 1968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) public: 207d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) ActivityManagerImpl(); 217d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) virtual ~ActivityManagerImpl(); 22effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 2368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) int num_activities() const { return activities_.size(); } 2468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 2568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) // ActivityManager: 2668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) virtual void AddActivity(Activity* activity) OVERRIDE; 2768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) virtual void RemoveActivity(Activity* activity) OVERRIDE; 2868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) virtual void UpdateActivity(Activity* activity) OVERRIDE; 2968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) virtual Activity* GetActivityForWindow(aura::Window* window) OVERRIDE; 3068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) virtual void AddObserver(ActivityManagerObserver* observer) OVERRIDE; 3168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) virtual void RemoveObserver(ActivityManagerObserver* observer) OVERRIDE; 327d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 3368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) // views::WidgetObserver 347d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) virtual void OnWidgetDestroying(views::Widget* widget) OVERRIDE; 357d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 367d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) private: 37effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch std::vector<Activity*> activities_; 387d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 39f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) ObserverList<ActivityManagerObserver> observers_; 40effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 41f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(ActivityManagerImpl); 42f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}; 43f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 44f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} // namespace athena 45f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)