1 // Copyright (c) 2012 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.
5 #ifndef UI_WM_CORE_SHADOW_CONTROLLER_H_
6 #define UI_WM_CORE_SHADOW_CONTROLLER_H_
10 #include "base/basictypes.h"
11 #include "base/compiler_specific.h"
12 #include "base/memory/ref_counted.h"
13 #include "ui/wm/public/activation_change_observer.h"
14 #include "ui/wm/wm_export.h"
19 class ActivationClient
;
30 // ShadowController observes changes to windows and creates and updates drop
31 // shadows as needed. ShadowController itself is light weight and per
32 // ActivationClient. ShadowController delegates to its implementation class,
33 // which observes all window creation.
34 class WM_EXPORT ShadowController
:
35 public aura::client::ActivationChangeObserver
{
37 class WM_EXPORT TestApi
{
39 explicit TestApi(ShadowController
* controller
) : controller_(controller
) {}
42 Shadow
* GetShadowForWindow(aura::Window
* window
);
45 ShadowController
* controller_
; // not owned
47 DISALLOW_COPY_AND_ASSIGN(TestApi
);
50 explicit ShadowController(aura::client::ActivationClient
* activation_client
);
51 ~ShadowController() override
;
53 // aura::client::ActivationChangeObserver overrides:
54 void OnWindowActivated(aura::Window
* gained_active
,
55 aura::Window
* lost_active
) override
;
60 aura::client::ActivationClient
* activation_client_
;
62 scoped_refptr
<Impl
> impl_
;
64 DISALLOW_COPY_AND_ASSIGN(ShadowController
);
69 #endif // UI_WM_CORE_SHADOW_CONTROLLER_H_