| // Copyright (c) 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_ASH_ROOT_WINDOW_TRANSFORMER_H_ |
| #define ASH_ASH_ROOT_WINDOW_TRANSFORMER_H_ |
| |
| #include "ash/ash_export.h" |
| #include "base/basictypes.h" |
| #include "base/memory/scoped_ptr.h" |
| #include "ui/aura/root_window_transformer.h" |
| #include "ui/gfx/insets.h" |
| #include "ui/gfx/transform.h" |
| |
| namespace aura { |
| class RootWindow; |
| } |
| |
| namespace gfx { |
| class Display; |
| } |
| |
| namespace ash { |
| |
| // RootWindowTransformer for ash environment. |
| class ASH_EXPORT AshRootWindowTransformer : public aura::RootWindowTransformer { |
| public: |
| AshRootWindowTransformer(aura::RootWindow* root, |
| const gfx::Display& display); |
| // aura::RootWindowTransformer overrides: |
| virtual gfx::Transform GetTransform() const OVERRIDE; |
| virtual gfx::Transform GetInverseTransform() const OVERRIDE; |
| virtual gfx::Rect GetRootWindowBounds( |
| const gfx::Size& host_size) const OVERRIDE; |
| virtual gfx::Insets GetHostInsets() const OVERRIDE; |
| |
| private: |
| virtual ~AshRootWindowTransformer(); |
| |
| aura::RootWindow* root_window_; |
| gfx::Transform transform_; |
| |
| // The accurate representation of the inverse of the |transform_|. |
| // This is used to avoid computation error caused by |
| // |gfx::Transform::GetInverse|. |
| gfx::Transform invert_transform_; |
| |
| // The transform of the root window bounds. This is used to calculate |
| // the size of root window. |
| gfx::Transform root_window_bounds_transform_; |
| |
| // The scale of the root window. This is used to expand the |
| // area of the root window (useful in HighDPI display). |
| // Note that this should not be confused with the device scale |
| // factor, which specfies the pixel density of the display. |
| float root_window_ui_scale_; |
| |
| gfx::Insets host_insets_; |
| |
| DISALLOW_COPY_AND_ASSIGN(AshRootWindowTransformer); |
| }; |
| |
| } // namespace ash |
| |
| #endif // ASH_ASH_ROOT_WINDOW_TRANSFORMER_H_ |