// 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_
