Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/frontend
diff options
context:
space:
mode:
authorErodeesFleurs <3353309908@qq.com>2024-03-16 20:00:53 +0800
committerErodeesFleurs <3353309908@qq.com>2024-03-16 20:00:53 +0800
commitc6a2f4fa7d5930fe54d99a688b428f469dbe0e4c (patch)
tree46ea465f2e0d903f6bb680c94f1162b66a96e96b /source/frontend
parent5499b04e9fd012402e966c5913274e8da8d5915e (diff)
add clipboard lua binds
Diffstat (limited to 'source/frontend')
-rw-r--r--source/frontend/CMakeLists.txt2
-rw-r--r--source/frontend/StarClipboardLuaBindings.cpp24
-rw-r--r--source/frontend/StarClipboardLuaBindings.hpp12
3 files changed, 38 insertions, 0 deletions
diff --git a/source/frontend/CMakeLists.txt b/source/frontend/CMakeLists.txt
index cae2d43..0934308 100644
--- a/source/frontend/CMakeLists.txt
+++ b/source/frontend/CMakeLists.txt
@@ -23,6 +23,7 @@ SET (star_frontend_HEADERS
StarChatBubbleManager.hpp
StarCinematic.hpp
StarClientCommandProcessor.hpp
+ StarClipboardLuaBindings.hpp
StarCodexInterface.hpp
StarConfirmationDialog.hpp
StarContainerInterface.hpp
@@ -74,6 +75,7 @@ SET (star_frontend_SOURCES
StarChatBubbleManager.cpp
StarCinematic.cpp
StarClientCommandProcessor.cpp
+ StarClipboardLuaBindings.cpp
StarCodexInterface.cpp
StarConfirmationDialog.cpp
StarContainerInterface.cpp
diff --git a/source/frontend/StarClipboardLuaBindings.cpp b/source/frontend/StarClipboardLuaBindings.cpp
new file mode 100644
index 0000000..c4fbc41
--- /dev/null
+++ b/source/frontend/StarClipboardLuaBindings.cpp
@@ -0,0 +1,24 @@
+#include "StarClipboardLuaBindings.hpp"
+#include "StarLuaConverters.hpp"
+
+#include "SDL2/SDL.h"
+
+namespace Star {
+
+LuaCallbacks LuaBindings::makeClipboardCallbacks(ApplicationControllerPtr appController) {
+ LuaCallbacks callbacks;
+
+ callbacks.registerCallback("hasText", []() -> bool { return SDL_HasClipboardText() == SDL_TRUE;});
+
+ callbacks.registerCallback("getText", [appController]() -> Maybe<String> {
+ return appController->getClipboard();
+ });
+
+ callbacks.registerCallback("setText", [appController](String const& text) {
+ appController->setClipboard(text);
+ });
+
+ return callbacks;
+};
+
+}// namespace Star
diff --git a/source/frontend/StarClipboardLuaBindings.hpp b/source/frontend/StarClipboardLuaBindings.hpp
new file mode 100644
index 0000000..7515c0b
--- /dev/null
+++ b/source/frontend/StarClipboardLuaBindings.hpp
@@ -0,0 +1,12 @@
+#pragma once
+
+#include "StarLua.hpp"
+#include "StarApplicationController.hpp"
+
+namespace Star {
+
+namespace LuaBindings {
+LuaCallbacks makeClipboardCallbacks(ApplicationControllerPtr appController);
+}
+
+}// namespace Star