chromium/ui/wm/core/shadow_controller.h

// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef UI_WM_CORE_SHADOW_CONTROLLER_H_
#define UI_WM_CORE_SHADOW_CONTROLLER_H_

#include <map>
#include <memory>

#include "base/component_export.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/scoped_refptr.h"
#include "ui/compositor_extra/shadow.h"
#include "ui/wm/public/activation_change_observer.h"

namespace aura {
class Env;
class Window;
}

namespace ui {
class ColorProvider;
class Shadow;
}

namespace wm {

class ActivationClient;
class ShadowControllerDelegate;

// ShadowController observes changes to windows and creates and updates drop
// shadows as needed. ShadowController itself is light weight and per
// ActivationClient. ShadowController delegates to its implementation class,
// which observes all window creation.
class COMPONENT_EXPORT(UI_WM) ShadowController
    : public ActivationChangeObserver {};

}  // namespace wm

#endif  // UI_WM_CORE_SHADOW_CONTROLLER_H_