1 // Copyright 2014 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 ATHENA_ACTIVITY_PUBLIC_ACTIVITY_MANAGER_H_ 6 #define ATHENA_ACTIVITY_PUBLIC_ACTIVITY_MANAGER_H_ 7 8 #include "athena/athena_export.h" 9 10 namespace athena { 11 12 class Activity; 13 14 // Manages a set of activities. 15 class ATHENA_EXPORT ActivityManager { 16 public: 17 static ActivityManager* Create(); 18 static ActivityManager* Get(); 19 static void Shutdown(); 20 21 virtual ~ActivityManager() {} 22 23 // Adds/Removes an activity. ActivityManager owns the activities. 24 virtual void AddActivity(Activity* activity) = 0; 25 virtual void RemoveActivity(Activity* activity) = 0; 26 27 // Updates the UI when the task color/title changes. 28 virtual void UpdateActivity(Activity* activity) = 0; 29 }; 30 31 } // namespace athena 32 33 #endif // ATHENA_ACTIVITY_PUBLIC_ACTIVITY_MANAGER_H_ 34