aboutsummaryrefslogtreecommitdiff
path: root/include/cru/win
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-01-28 22:56:28 +0800
committercrupest <crupest@outlook.com>2022-01-28 22:56:28 +0800
commite7da93f75ba57fa4ab1ae1fd8053266ed09f92d8 (patch)
tree33f5017ebed5227f2066029237a736f53f7adcf9 /include/cru/win
parentfb992c554110ddd28c18b2cbed79eee8e10cd4a9 (diff)
downloadcru-e7da93f75ba57fa4ab1ae1fd8053266ed09f92d8.tar.gz
cru-e7da93f75ba57fa4ab1ae1fd8053266ed09f92d8.tar.bz2
cru-e7da93f75ba57fa4ab1ae1fd8053266ed09f92d8.zip
...
Diffstat (limited to 'include/cru/win')
-rw-r--r--include/cru/win/gui/Base.hpp1
-rw-r--r--include/cru/win/gui/Clipboard.hpp24
-rw-r--r--include/cru/win/gui/UiApplication.hpp1
3 files changed, 26 insertions, 0 deletions
diff --git a/include/cru/win/gui/Base.hpp b/include/cru/win/gui/Base.hpp
index e6807710..2a0d0247 100644
--- a/include/cru/win/gui/Base.hpp
+++ b/include/cru/win/gui/Base.hpp
@@ -23,4 +23,5 @@ class WindowManager;
class WinNativeWindow;
class WinUiApplication;
class WinInputMethodContext;
+class WinClipboard;
} // namespace cru::platform::gui::win
diff --git a/include/cru/win/gui/Clipboard.hpp b/include/cru/win/gui/Clipboard.hpp
new file mode 100644
index 00000000..63d4906a
--- /dev/null
+++ b/include/cru/win/gui/Clipboard.hpp
@@ -0,0 +1,24 @@
+#pragma once
+#include "Resource.hpp"
+#include "cru/common/Base.hpp"
+#include "cru/platform/gui/Clipboard.hpp"
+#include "cru/win/gui/Base.hpp"
+
+namespace cru::platform::gui::win {
+class WinClipboard : public WinNativeResource, public virtual IClipboard {
+ public:
+ explicit WinClipboard(WinUiApplication* application);
+
+ CRU_DELETE_COPY(WinClipboard)
+ CRU_DELETE_MOVE(WinClipboard)
+
+ ~WinClipboard() override;
+
+ public:
+ String GetText() override;
+ void SetText(String text) override;
+
+ private:
+ WinUiApplication* application_;
+};
+} // namespace cru::platform::gui::win
diff --git a/include/cru/win/gui/UiApplication.hpp b/include/cru/win/gui/UiApplication.hpp
index a13dc932..1280e7a6 100644
--- a/include/cru/win/gui/UiApplication.hpp
+++ b/include/cru/win/gui/UiApplication.hpp
@@ -80,6 +80,7 @@ class CRU_WIN_GUI_API WinUiApplication : public WinNativeResource,
std::unique_ptr<WindowManager> window_manager_;
std::unique_ptr<WinCursorManager> cursor_manager_;
+ std::unique_ptr<WinClipboard> clipboard_;
std::vector<std::function<void()>> quit_handlers_;
};