// Copyright 2016 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.

[DartPackage="mojo_services"]
module mojo.ui;

import "mojo/services/geometry/interfaces/geometry.mojom";

// Parameters and contextual information for a view provided by its container.
//
// When a container sets properties for its children, any properties which
// are set to null are inherited from the container's own ancestors.
struct ViewProperties {
  DisplayMetrics? display_metrics;
  ViewLayout? view_layout;
};

// Provides information about the physical characteristics of the display.
struct DisplayMetrics {
  // The ratio between the size of one display device pixel to the size
  // of one logical pixel, assuming pixels are square.  This value changes
  // in relation to display density and zoom level.
  // Must be > 0.
  float device_pixel_ratio = 1.0;
};

// Provides layout constraints for a view.
//
// TODO(jeffbrown): Decide how measurement should be performed.  Perhaps
// bring back |BoxConstraints| or introduce some other protocol just for
// measurement.
struct ViewLayout {
  // The size of the view in device pixels.
  // Must be non-negative.
  mojo.Size size;
};
