Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2019)

Unified Diff: ash/wm/overview/scoped_transform_overview_window.h

Issue 2087153003: Moves common code in ash/wm/overview to ash/common/wm/overview (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ash/wm/overview/scoped_transform_overview_window.h
diff --git a/ash/wm/overview/scoped_transform_overview_window.h b/ash/wm/overview/scoped_transform_overview_window.h
deleted file mode 100644
index 32e277d2614e56e1879c8342e4726251863c5994..0000000000000000000000000000000000000000
--- a/ash/wm/overview/scoped_transform_overview_window.h
+++ /dev/null
@@ -1,156 +0,0 @@
-// 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_OVERVIEW_SCOPED_TRANSFORM_OVERVIEW_WINDOW_H_
-#define ASH_WM_OVERVIEW_SCOPED_TRANSFORM_OVERVIEW_WINDOW_H_
-
-#include <memory>
-#include <vector>
-
-#include "ash/ash_export.h"
-#include "ash/wm/overview/overview_animation_type.h"
-#include "base/macros.h"
-#include "ui/gfx/geometry/size.h"
-#include "ui/gfx/transform.h"
-
-namespace gfx {
-class Rect;
-}
-
-namespace ash {
-
-class ScopedOverviewAnimationSettings;
-class WmWindow;
-
-// Manages a window, and it's transient children, in the overview mode. This
-// class allows transforming the windows with a helper to determine the best
-// fit in certain bounds. The window's state is restored on destruction of this
-// object.
-class ASH_EXPORT ScopedTransformOverviewWindow {
- public:
- using ScopedAnimationSettings =
- std::vector<std::unique_ptr<ScopedOverviewAnimationSettings>>;
-
- // Calculates and returns an optimal scale ratio. With MD this is only
- // taking into account |size.height()| as the width can vary. Without MD this
- // returns the scale that allows the item to fully fit within |size|.
- static float GetItemScale(const gfx::Size& source,
- const gfx::Size& target,
- int top_view_inset,
- int title_height);
-
- // Returns |rect| having been shrunk to fit within |bounds| (preserving the
- // aspect ratio). Takes into account a window header that is |top_view_inset|
- // tall in the original window getting replaced by a window caption that is
- // |title_height| tall in transformed window.
- static gfx::Rect ShrinkRectToFitPreservingAspectRatio(const gfx::Rect& rect,
- const gfx::Rect& bounds,
- int top_view_inset,
- int title_height);
-
- // Returns the transform turning |src_rect| into |dst_rect|.
- static gfx::Transform GetTransformForRect(const gfx::Rect& src_rect,
- const gfx::Rect& dst_rect);
-
- explicit ScopedTransformOverviewWindow(WmWindow* window);
- ~ScopedTransformOverviewWindow();
-
- gfx::Transform get_overview_transform() const { return overview_transform_; }
-
- void set_overview_transform(const gfx::Transform& transform) {
- overview_transform_ = transform;
- }
-
- // Starts an animation sequence which will use animation settings specified by
- // |animation_type|. The |animation_settings| container is populated with
- // scoped entities and the container should be destroyed at the end of the
- // animation sequence.
- //
- // Example:
- // ScopedTransformOverviewWindow overview_window(window);
- // ScopedTransformOverviewWindow::ScopedAnimationSettings scoped_settings;
- // overview_window.BeginScopedAnimation(
- // OverviewAnimationType::OVERVIEW_ANIMATION_SELECTOR_ITEM_SCROLL_CANCEL,
- // &animation_settings);
- // // Calls to SetTransform & SetOpacity will use the same animation settings
- // // until scoped_settings is destroyed.
- // overview_window.SetTransform(root_window, new_transform);
- // overview_window.SetOpacity(1);
- void BeginScopedAnimation(
- OverviewAnimationType animation_type,
- ScopedAnimationSettings* animation_settings);
-
- // Returns true if this window selector window contains the |target|.
- bool Contains(const WmWindow* target) const;
-
- // Returns the original target bounds of all transformed windows.
- gfx::Rect GetTargetBoundsInScreen() const;
-
- // Restores and animates the managed window to it's non overview mode state.
- void RestoreWindow();
-
- // Forces the managed window to be shown (ie not hidden or minimized) when
- // calling RestoreWindow().
- void ShowWindowOnExit();
-
- // Informs the ScopedTransformOverviewWindow that the window being watched was
- // destroyed. This resets the internal window pointer.
- void OnWindowDestroyed();
-
- // Prepares for overview mode by doing any necessary actions before entering.
- void PrepareForOverview();
-
- // Applies the |transform| to the overview window and all of its transient
- // children. With Material Design creates a mask layer with the bottom edge
- // using rounded corners of |radius|.
- void SetTransform(WmWindow* root_window,
- const gfx::Transform& transform,
- int radius);
-
- // Set's the opacity of the managed windows.
- void SetOpacity(float opacity);
-
- WmWindow* window() const { return window_; }
-
- // Closes the transient root of the window managed by |this|.
- void Close();
-
- private:
- class OverviewContentMask;
-
- // Shows the window if it was minimized.
- void ShowWindowIfMinimized();
-
- // A weak pointer to the real window in the overview.
- WmWindow* window_;
-
- // Mask layer that hides the original window header.
- std::unique_ptr<OverviewContentMask> mask_;
-
- // If true, the window was minimized and should be restored if the window
- // was not selected.
- bool minimized_;
-
- // Tracks if this window was ignored by the shelf.
- bool ignored_by_shelf_;
-
- // True if the window has been transformed for overview mode.
- bool overview_started_;
-
- // The original transform of the window before entering overview mode.
- gfx::Transform original_transform_;
-
- // Keeps track of the original transform used when |this| has been positioned
- // during SelectorItem layout.
- gfx::Transform overview_transform_;
-
- // The original opacity of the window before entering overview mode.
- float original_opacity_;
-
- DISALLOW_COPY_AND_ASSIGN(ScopedTransformOverviewWindow);
-};
-
-} // namespace ash
-
-#endif // ASH_WM_OVERVIEW_SCOPED_TRANSFORM_OVERVIEW_WINDOW_H_
« no previous file with comments | « ash/wm/overview/scoped_overview_animation_settings_factory_aura.h ('k') | ash/wm/overview/scoped_transform_overview_window.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698