diff options
Diffstat (limited to 'chromium/ash/wm/boot_splash_screen_chromeos.h')
-rw-r--r-- | chromium/ash/wm/boot_splash_screen_chromeos.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/chromium/ash/wm/boot_splash_screen_chromeos.h b/chromium/ash/wm/boot_splash_screen_chromeos.h new file mode 100644 index 00000000000..e844275ad5f --- /dev/null +++ b/chromium/ash/wm/boot_splash_screen_chromeos.h @@ -0,0 +1,53 @@ +// Copyright 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef ASH_WM_BOOT_SPLASH_SCREEN_CHROMEOS_H_ +#define ASH_WM_BOOT_SPLASH_SCREEN_CHROMEOS_H_ + +#include <string> + +#include "base/basictypes.h" +#include "base/memory/scoped_ptr.h" +#include "base/time/time.h" + +namespace aura { +class RootWindow; +} + +namespace ui { +class Layer; +class LayerDelegate; +} + +namespace ash { +namespace internal { + +// BootSplashScreen manages a ui::Layer, stacked at the top of the root layer's +// children, that displays a copy of the initial contents of the host window. +// This allows us to continue displaying the Chrome OS boot splash screen (which +// is displayed before Ash starts) after the compositor has taken over so we can +// animate the transition between the splash screen and the login screen. +class BootSplashScreen { + public: + explicit BootSplashScreen(aura::RootWindow* root_window); + ~BootSplashScreen(); + + // Begins animating |layer_|'s opacity to 0 over |duration|. + void StartHideAnimation(base::TimeDelta duration); + + private: + class CopyHostContentLayerDelegate; + + // Copies the host window's content to |layer_|. + scoped_ptr<CopyHostContentLayerDelegate> layer_delegate_; + + scoped_ptr<ui::Layer> layer_; + + DISALLOW_COPY_AND_ASSIGN(BootSplashScreen); +}; + +} // namespace internal +} // namespace ash + +#endif // ASH_WM_BOOT_SPLASH_SCREEN_CHROMEOS_H_ |