#ifndef UI_VIEWS_LAYOUT_LAYOUT_TYPES_H_
#define UI_VIEWS_LAYOUT_LAYOUT_TYPES_H_
#include <algorithm>
#include <optional>
#include <ostream>
#include <string>
#include <tuple>
#include <utility>
#include "base/check.h"
#include "ui/gfx/geometry/insets.h"
#include "ui/gfx/geometry/size.h"
#include "ui/views/views_export.h"
namespace views {
enum class LayoutAlignment { … };
enum class LayoutOrientation { … };
class VIEWS_EXPORT SizeBound { … };
constexpr SizeBound::SizeBound() = default;
constexpr SizeBound::SizeBound(int bound) : … { … }
constexpr SizeBound::SizeBound(const SizeBound&) = default;
constexpr SizeBound::SizeBound(SizeBound&&) = default;
VIEWS_EXPORT SizeBound operator+(const SizeBound& lhs, const SizeBound& rhs);
VIEWS_EXPORT SizeBound operator-(const SizeBound& lhs, const SizeBound& rhs);
constexpr bool operator<(const SizeBound& lhs, const SizeBound& rhs) { … }
constexpr bool operator>(const SizeBound& lhs, const SizeBound& rhs) { … }
constexpr bool operator<=(const SizeBound& lhs, const SizeBound& rhs) { … }
constexpr bool operator>=(const SizeBound& lhs, const SizeBound& rhs) { … }
constexpr bool operator==(const SizeBound& lhs, const SizeBound& rhs) { … }
constexpr bool operator!=(const SizeBound& lhs, const SizeBound& rhs) { … }
class VIEWS_EXPORT SizeBounds { … };
constexpr SizeBounds::SizeBounds() = default;
constexpr SizeBounds::SizeBounds(SizeBound width, SizeBound height)
: … { … }
constexpr SizeBounds::SizeBounds(const gfx::Size& size)
: … { … }
constexpr SizeBounds::SizeBounds(const SizeBounds&) = default;
constexpr SizeBounds::SizeBounds(SizeBounds&&) = default;
constexpr bool operator==(const SizeBounds& lhs, const SizeBounds& rhs) { … }
constexpr bool operator!=(const SizeBounds& lhs, const SizeBounds& rhs) { … }
constexpr bool operator<(const SizeBounds& lhs, const SizeBounds& rhs) { … }
VIEWS_EXPORT bool CanFitInBounds(const gfx::Size& size,
const SizeBounds& bounds);
void PrintTo(const SizeBounds& size_bounds, ::std::ostream* os);
void PrintTo(LayoutOrientation layout_orientation, ::std::ostream* os);
}
#endif