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")