From 057fe451f220dc42edfb79f47fb5d13a355bbcd1 Mon Sep 17 00:00:00 2001
From: Face <69168154+face-hh@users.noreply.github.com>
Date: Wed, 6 Aug 2025 16:41:01 +0300
Subject: [PATCH] Clipboard API (Clipboard.write(string))
---
flumi/Scripts/Constants.gd | 40 ++++++++++++++++++++++++
flumi/Scripts/Utils/Lua/Clipboard.gd | 17 ++++++++++
flumi/Scripts/Utils/Lua/Clipboard.gd.uid | 1 +
flumi/Scripts/Utils/Lua/Function.gd | 3 ++
4 files changed, 61 insertions(+)
create mode 100644 flumi/Scripts/Utils/Lua/Clipboard.gd
create mode 100644 flumi/Scripts/Utils/Lua/Clipboard.gd.uid
diff --git a/flumi/Scripts/Constants.gd b/flumi/Scripts/Constants.gd
index 8484032..793a708 100644
--- a/flumi/Scripts/Constants.gd
+++ b/flumi/Scripts/Constants.gd
@@ -871,6 +871,46 @@ var HTML_CONTENT_DOM_MANIPULATION = """
""".to_utf8_buffer()
var HTML_CONTENT = """
+ Network & Clipboard API Demo
+
+
+
+
+
+
+
+
+
+
+ Clipboard API
+
+
+
Clipboard Operations
+
+
+
+
+
+""".to_utf8_buffer()
+
+var HTML_CONTENTx = """
Signal API Demo
diff --git a/flumi/Scripts/Utils/Lua/Clipboard.gd b/flumi/Scripts/Utils/Lua/Clipboard.gd
new file mode 100644
index 0000000..7111cdc
--- /dev/null
+++ b/flumi/Scripts/Utils/Lua/Clipboard.gd
@@ -0,0 +1,17 @@
+class_name LuaClipboardUtils
+extends RefCounted
+
+static func clipboard_write_handler(vm: LuauVM) -> int:
+ var text: String = vm.luaL_checkstring(1)
+
+ DisplayServer.clipboard_set(text)
+
+ return 0
+
+static func setup_clipboard_api(vm: LuauVM) -> void:
+ vm.lua_newtable()
+
+ vm.lua_pushcallable(clipboard_write_handler, "Clipboard.write")
+ vm.lua_setfield(-2, "write")
+
+ vm.lua_setglobal("Clipboard")
diff --git a/flumi/Scripts/Utils/Lua/Clipboard.gd.uid b/flumi/Scripts/Utils/Lua/Clipboard.gd.uid
new file mode 100644
index 0000000..718dccf
--- /dev/null
+++ b/flumi/Scripts/Utils/Lua/Clipboard.gd.uid
@@ -0,0 +1 @@
+uid://dkfeh10fhve26
diff --git a/flumi/Scripts/Utils/Lua/Function.gd b/flumi/Scripts/Utils/Lua/Function.gd
index 0c24152..3535437 100644
--- a/flumi/Scripts/Utils/Lua/Function.gd
+++ b/flumi/Scripts/Utils/Lua/Function.gd
@@ -33,6 +33,9 @@ static func setup_gurt_api(vm: LuauVM, lua_api, dom_parser: HTMLParser) -> void:
# Setup Time API
LuaTimeUtils.setup_time_api(vm)
+ # Setup Clipboard API
+ LuaClipboardUtils.setup_clipboard_api(vm)
+
vm.lua_newtable()
vm.lua_pushcallable(LuaPrintUtils.lua_print, "gurt.log")