From d2ab30e7a69bfe7efda63ae75812207377917bd3 Mon Sep 17 00:00:00 2001
From: miepzerino <o.skotnik@gmail.com>
Date: Sun, 30 Mar 2025 18:50:27 +0000
Subject: [PATCH] Merge branch 'Flexalon-UI-Layouts' into develop

---
 Assets/Flexalon/Runtime/Core/FlexalonLayout.cs |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)

diff --git a/Assets/Flexalon/Runtime/Core/FlexalonLayout.cs b/Assets/Flexalon/Runtime/Core/FlexalonLayout.cs
new file mode 100644
index 0000000..83b976b
--- /dev/null
+++ b/Assets/Flexalon/Runtime/Core/FlexalonLayout.cs
@@ -0,0 +1,21 @@
+using UnityEngine;
+
+namespace Flexalon
+{
+    /// <summary> A layout determines how the children of a node are positioned. </summary>
+    public interface Layout
+    {
+        /// <summary> Perform minimal work to determine what the size of node and available size for node's children. </summary>
+        Bounds Measure(FlexalonNode node, Vector3 size, Vector3 min, Vector3 max);
+
+        /// <summary> Position the children of node within the available bounds. </summary>
+        void Arrange(FlexalonNode node, Vector3 layoutSize);
+    }
+
+    /// <summary> A constraint runs whenever a target layout is updated. </summary>
+    public interface Constraint
+    {
+        GameObject Target { get; }
+        void Constrain(FlexalonNode node);
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.3