| // Copyright 2014 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_HOST_ROOT_WINDOW_TRANSFORMER_H_ |
| #define ASH_HOST_ROOT_WINDOW_TRANSFORMER_H_ |
| |
| #include "ash/ash_export.h" |
| |
| namespace gfx { |
| class Insets; |
| class Rect; |
| class Size; |
| class Transform; |
| } |
| |
| namespace ash { |
| |
| // RootWindowTransformer controls how RootWindow should be placed and |
| // transformed inside the host window. |
| class ASH_EXPORT RootWindowTransformer { |
| public: |
| virtual ~RootWindowTransformer() {} |
| |
| // Returns the transform the root window in DIP. |
| virtual gfx::Transform GetTransform() const = 0; |
| |
| // Returns the inverse of the transform above. This method is to |
| // provie an accurate inverse of the transform because the result of |
| // |gfx::Transform::GetInverse| may contains computational error. |
| virtual gfx::Transform GetInverseTransform() const = 0; |
| |
| // Returns the root window's bounds for given host window size in DIP. |
| // This is necessary to handle the case where the root window's size |
| // is bigger than the host window. (Screen magnifier for example). |
| virtual gfx::Rect GetRootWindowBounds(const gfx::Size& host_size) const = 0; |
| |
| // Returns the insets that specifies the effective area of |
| // the host window. |
| virtual gfx::Insets GetHostInsets() const = 0; |
| }; |
| |
| } // namespace ash |
| |
| #endif // ASH_HOST_ROOT_WINDOW_TRANSFORMER_H_ |