| Index: ash/common/wm/window_dimmer.h
|
| diff --git a/ash/wm/dim_window.h b/ash/common/wm/window_dimmer.h
|
| similarity index 22%
|
| rename from ash/wm/dim_window.h
|
| rename to ash/common/wm/window_dimmer.h
|
| index 8d86c63d02dbeba44449d2a25a40698ce950a786..5250575518a451fc52a5725ff150ad25aaeb394e 100644
|
| --- a/ash/wm/dim_window.h
|
| +++ b/ash/common/wm/window_dimmer.h
|
| @@ -2,34 +2,52 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| +#ifndef ASH_COMMON_WINDOW_DIMMER_H_
|
| +#define ASH_COMMON_WINDOW_DIMMER_H_
|
| +
|
| #include "ash/ash_export.h"
|
| +#include "ash/common/wm_window_observer.h"
|
| #include "base/macros.h"
|
| -#include "ui/aura/window.h"
|
| -#include "ui/aura/window_observer.h"
|
|
|
| namespace ash {
|
|
|
| -// A window used to dim the child windows of the given container.
|
| -class ASH_EXPORT DimWindow : public aura::Window, public aura::WindowObserver {
|
| +// WindowDimmer creates a window whose opacity is animated by way of
|
| +// SetDimOpacity() and whose size matches that of its parent. WindowDimmer is
|
| +// intended to be used in cases where a certain set of windows need to appear
|
| +// partially obscured. This is achieved by creating WindowDimmer, setting the
|
| +// opacity, and then stacking window() above the windows that are to appear
|
| +// obscured. The window created by WindowDimmer is owned by the parent, but also
|
| +// deleted if WindowDimmer is deleted. It is expected that WindowDimmer is
|
| +// deleted when the parent window is deleted (such as happens with
|
| +// WmWindowUserData).
|
| +class ASH_EXPORT WindowDimmer : public WmWindowObserver {
|
| public:
|
| - // Return a dim window for the container if any, or nullptr.
|
| - static DimWindow* Get(aura::Window* container);
|
| -
|
| - explicit DimWindow(aura::Window* parent);
|
| - ~DimWindow() override;
|
| + // Creates a new WindowDimmer. The window() created by WindowDimmer is added
|
| + // to |parent| and stacked above all other child windows.
|
| + explicit WindowDimmer(WmWindow* parent);
|
| + ~WindowDimmer() override;
|
|
|
| void SetDimOpacity(float target_opacity);
|
|
|
| - // aura::WindowObserver:
|
| - void OnWindowBoundsChanged(aura::Window* window,
|
| + WmWindow* parent() { return parent_; }
|
| + WmWindow* window() { return window_; }
|
| +
|
| + // NOTE: WindowDimmer is an observer for both |parent_| and |window_|.
|
| + // WmWindowObserver:
|
| + void OnWindowBoundsChanged(WmWindow* window,
|
| const gfx::Rect& old_bounds,
|
| const gfx::Rect& new_bounds) override;
|
| - void OnWindowDestroying(aura::Window* window) override;
|
| + void OnWindowDestroying(WmWindow* window) override;
|
| + void OnWindowTreeChanging(WmWindow* window,
|
| + const TreeChangeParams& params) override;
|
|
|
| private:
|
| - aura::Window* parent_;
|
| + WmWindow* parent_;
|
| + WmWindow* window_;
|
|
|
| - DISALLOW_COPY_AND_ASSIGN(DimWindow);
|
| + DISALLOW_COPY_AND_ASSIGN(WindowDimmer);
|
| };
|
|
|
| } // namespace ash
|
| +
|
| +#endif // ASH_COMMON_WINDOW_DIMMER_H_
|
|
|