aura: Draw drop shadows under browsers and menus.
This is largely a port of the existing X window manager's
code for drawing shadows around windows. It adds an
ImageGrid class for drawing a scaled 3x3 grid of gfx::Images
and a Shadow class (managed by aura_shell::ShadowController)
that uses ImageGrid to draw a shadow. Shadows can be
disabled via --aura-no-shadows.
BUG=101977
TEST=added unit tests; also manually checked that shadows get drawn
Review URL: http://codereview.chromium.org/8555025
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@111009 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/ui/aura_shell/shell.h b/ui/aura_shell/shell.h
index fd0d596..3f4e3ac 100644
--- a/ui/aura_shell/shell.h
+++ b/ui/aura_shell/shell.h
@@ -31,6 +31,7 @@
namespace internal {
class DragDropController;
+class ShadowController;
class ShelfLayoutController;
class WorkspaceController;
}
@@ -64,6 +65,11 @@
ShellDelegate* delegate() { return delegate_.get(); }
Launcher* launcher() { return launcher_.get(); }
+ // Made available for tests.
+ internal::ShadowController* shadow_controller() {
+ return shadow_controller_.get();
+ }
+
private:
typedef std::pair<aura::Window*, gfx::Rect> WindowAndBoundsPair;
@@ -88,6 +94,7 @@
scoped_ptr<internal::DragDropController> drag_drop_controller_;
scoped_ptr<internal::WorkspaceController> workspace_controller_;
scoped_ptr<internal::ShelfLayoutController> shelf_layout_controller_;
+ scoped_ptr<internal::ShadowController> shadow_controller_;
DISALLOW_COPY_AND_ASSIGN(Shell);
};