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/Samples/Runtime/InputFieldDataSource.cs |   55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 55 insertions(+), 0 deletions(-)

diff --git a/Assets/Flexalon/Samples/Runtime/InputFieldDataSource.cs b/Assets/Flexalon/Samples/Runtime/InputFieldDataSource.cs
new file mode 100644
index 0000000..b9a3ee3
--- /dev/null
+++ b/Assets/Flexalon/Samples/Runtime/InputFieldDataSource.cs
@@ -0,0 +1,55 @@
+#if UNITY_TMPRO
+
+using System;
+using System.Collections.Generic;
+using TMPro;
+using UnityEngine;
+
+namespace Flexalon.Samples
+{
+    // Provides the text of an TMP_InputField as a data source which can be assigned to a FlexalonCloner.
+    [AddComponentMenu("Flexalon Samples/Input Field Data Source")]
+    public class InputFieldDataSource : MonoBehaviour, DataSource
+    {
+        [SerializeField]
+        private TMP_InputField _inputField;
+        public TMP_InputField InputField
+        {
+            get => _inputField;
+            set
+            {
+                _inputField = value;
+                UpdateData(_inputField.text);
+            }
+        }
+
+        public event Action DataChanged;
+
+        private List<string> _data = new List<string>();
+        public IReadOnlyList<object> Data => _data;
+
+        void OnEnable()
+        {
+            _inputField.onValueChanged.AddListener(UpdateData);
+            UpdateData(_inputField.text);
+        }
+
+        void OnDisable()
+        {
+            _inputField.onValueChanged.RemoveListener(UpdateData);
+        }
+
+        private void UpdateData(string text)
+        {
+            _data.Clear();
+            foreach (char c in text)
+            {
+                _data.Add(c.ToString());
+            }
+
+            DataChanged?.Invoke();
+        }
+    }
+}
+
+#endif
\ No newline at end of file

--
Gitblit v1.9.3