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

summaryrefslogtreecommitdiff
path: root/source/frontend
diff options
context:
space:
mode:
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