summaryrefslogtreecommitdiffstats
path: root/ash/root_window_controller.h
diff options
context:
space:
mode:
authorderat@chromium.org <derat@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-10 06:25:49 +0000
committerderat@chromium.org <derat@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-10 06:25:49 +0000
commitbca9a7ee39bf817edd4976ef2bf314d26feea11f (patch)
treea6b260a3c1d420878528469d49f4a9764bcee6bc /ash/root_window_controller.h
parent9badbe63637a07eb23112f30fda959f849fe923f (diff)
downloadchromium_src-bca9a7ee39bf817edd4976ef2bf314d26feea11f.zip
chromium_src-bca9a7ee39bf817edd4976ef2bf314d26feea11f.tar.gz
chromium_src-bca9a7ee39bf817edd4976ef2bf314d26feea11f.tar.bz2
ash: Add flag to animate transition from boot splash screen.
This adds an --ash-animate-from-boot-splash-screen flag that can be set to tell Ash to grab the Chrome OS boot splash screen and fade from it into the login screen's brightness/grayscale desktop background animation. I'm also making SystemBackgroundController just control a solid-color layer and moving its host-window-grabbing code into a new BootSplashScreen class. BUG=152309 TEST=add --ash-animate-from-boot-splash-screen to /sbin/session_manager_setup.sh, reboot, and see the animation Review URL: https://chromiumcodereview.appspot.com/11362067 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167068 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/root_window_controller.h')
-rw-r--r--ash/root_window_controller.h14
1 files changed, 11 insertions, 3 deletions
diff --git a/ash/root_window_controller.h b/ash/root_window_controller.h
index 50f4351..4d9cc8d 100644
--- a/ash/root_window_controller.h
+++ b/ash/root_window_controller.h
@@ -33,6 +33,7 @@ class ToplevelWindowEventHandler;
namespace internal {
+class BootSplashScreen;
class PanelLayoutManager;
class RootWindowLayoutManager;
class ScreenDimmer;
@@ -99,8 +100,8 @@ class ASH_EXPORT RootWindowController {
// creates
void InitForPrimaryDisplay();
- // Initializes |system_background_|. |is_first_run_after_boot| determines the
- // background's initial content.
+ // Initializes |system_background_| and possibly also |boot_splash_screen_|.
+ // |is_first_run_after_boot| determines the background's initial color.
void CreateSystemBackground(bool is_first_run_after_boot);
// Initializes |launcher_|. Does nothing if it's already initialized.
@@ -116,7 +117,13 @@ class ASH_EXPORT RootWindowController {
// TODO(oshima): Investigate if we can merge this and |OnLoginStateChanged|.
void UpdateAfterLoginStatusChange(user::LoginStatus status);
- // Updates |background_| to be black after the desktop background is visible.
+ // Called when the brightness/grayscale animation from white to the login
+ // desktop background image has started. Starts |boot_splash_screen_|'s
+ // hiding animation (if the screen is non-NULL).
+ void HandleInitialDesktopBackgroundAnimationStarted();
+
+ // Called when the login background is fully visible. Updates |background_|
+ // to be black and drops |boot_splash_screen_|.
void HandleDesktopBackgroundVisible();
// Deletes associated objects and clears the state, but doesn't delete
@@ -168,6 +175,7 @@ class ASH_EXPORT RootWindowController {
scoped_ptr<Launcher> launcher_;
scoped_ptr<SystemBackgroundController> system_background_;
+ scoped_ptr<BootSplashScreen> boot_splash_screen_;
scoped_ptr<ScreenDimmer> screen_dimmer_;
scoped_ptr<WorkspaceController> workspace_controller_;