Index: chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.h |
diff --git a/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.h b/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.h |
index 644d5ca3f8b52ee1d0e45fce495ba75e402935de..1cc1a0c4e54ac5fb1940e49aafdcc22eee30672e 100644 |
--- a/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.h |
+++ b/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.h |
@@ -12,7 +12,6 @@ |
#include "base/compiler_specific.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/observer_list.h" |
-#include "base/timer/timer.h" |
#include "chrome/browser/ui/ash/multi_user/multi_user_window_manager.h" |
#include "content/public/browser/notification_observer.h" |
#include "content/public/browser/notification_registrar.h" |
@@ -40,6 +39,7 @@ class MultiUserWindowManagerChromeOSTest; |
namespace chrome { |
class AppObserver; |
+class UserSwichAnimatorChromeOS; |
// This ChromeOS implementation of the MultiUserWindowManager interface is |
// detecting app and browser creations, tagging their windows automatically and |
@@ -112,9 +112,8 @@ class MultiUserWindowManagerChromeOS |
// Returns the current user for unit tests. |
const std::string& GetCurrentUserForTest(); |
- private: |
- friend class ::MultiUserNotificationBlockerChromeOSTest; |
- friend class ash::test::MultiUserWindowManagerChromeOSTest; |
+ protected: |
+ friend class UserSwichAnimatorChromeOS; |
class WindowEntry { |
public: |
@@ -156,35 +155,12 @@ class MultiUserWindowManagerChromeOS |
}; |
typedef std::map<aura::Window*, WindowEntry*> WindowToEntryMap; |
- typedef std::map<std::string, AppObserver*> UserIDToAppWindowObserver; |
- typedef std::map<aura::Window*, bool> TransientWindowToVisibility; |
- |
- // The animation step for the user change animation. First the old user gets |
- // hidden and then the new one gets presented. |
- enum AnimationStep { |
- HIDE_OLD_USER, |
- SHOW_NEW_USER |
- }; |
// Show a window for a user without switching the user. |
// Returns true when the window moved to a new desktop. |
bool ShowWindowForUserIntern(aura::Window* window, |
const std::string& user_id); |
- // Start the user change animation required for |animation_step|. |
- // Note that a call with SHOW_NEW_USER will finalize the animation and kill |
- // the timer (if there is one). |
- void TransitionUser(AnimationStep animtion_step); |
- |
- // Start the user wallpaper animations. |
- void TransitionWallpaper(AnimationStep animtion_step); |
- |
- // Start the user shelf animations. |
- void TransitionUserShelf(AnimationStep animtion_step); |
- |
- // Add a browser window to the system so that the owner can be remembered. |
- void AddBrowserWindow(Browser* browser); |
- |
// Show / hide the given window. Note: By not doing this within the functions, |
// this allows to either switching to different ways to show/hide and / or to |
// distinguish state changes performed by this class vs. state changes |
@@ -196,6 +172,21 @@ class MultiUserWindowManagerChromeOS |
bool visible, |
int animation_time_in_ms); |
+ const WindowToEntryMap& window_to_entry() { return window_to_entry_; } |
+ MultiUserNotificationBlockerChromeOS* notification_blocker() { |
+ return notification_blocker_.get(); |
+ } |
+ |
+ private: |
+ friend class ::MultiUserNotificationBlockerChromeOSTest; |
+ friend class ash::test::MultiUserWindowManagerChromeOSTest; |
+ |
+ typedef std::map<std::string, AppObserver*> UserIDToAppWindowObserver; |
+ typedef std::map<aura::Window*, bool> TransientWindowToVisibility; |
+ |
+ // Add a browser window to the system so that the owner can be remembered. |
+ void AddBrowserWindow(Browser* browser); |
+ |
// Show the window and its transient children. However - if a transient child |
// was turned invisible by some other operation, it will stay invisible. |
// Use the given |animation_time_in_ms| for transitioning. |
@@ -253,13 +244,12 @@ class MultiUserWindowManagerChromeOS |
// used is quite expensive. |
static MultiProfileMode multi_user_mode_; |
- // A timer which watches to executes the second part of a "user changed" |
- // animation. Note that this timer exists only during such an animation. |
- scoped_ptr<base::Timer> user_changed_animation_timer_; |
- |
// If true, all animations will be suppressed. |
bool animations_disabled_; |
+ // The animation between users. |
+ scoped_ptr<UserSwichAnimatorChromeOS> animation_; |
+ |
DISALLOW_COPY_AND_ASSIGN(MultiUserWindowManagerChromeOS); |
}; |