aboutsummaryrefslogtreecommitdiff
path: root/include/cru
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
parentfb992c554110ddd28c18b2cbed79eee8e10cd4a9 (diff)
downloadcru-e7da93f75ba57fa4ab1ae1fd8053266ed09f92d8.tar.gz
cru-e7da93f75ba57fa4ab1ae1fd8053266ed09f92d8.tar.bz2
cru-e7da93f75ba57fa4ab1ae1fd8053266ed09f92d8.zip
...
Diffstat (limited to 'include/cru')
-rw-r--r--include/cru/common/platform/win/Exception.hpp2
-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
4 files changed, 26 insertions, 2 deletions
diff --git a/include/cru/common/platform/win/Exception.hpp b/include/cru/common/platform/win/Exception.hpp
index 0774327f..4e332b4f 100644
--- a/include/cru/common/platform/win/Exception.hpp
+++ b/include/cru/common/platform/win/Exception.hpp
@@ -38,9 +38,7 @@ class CRU_BASE_API Win32Error : public platform::PlatformException {
public:
// ::GetLastError is automatically called to get the error code.
// The same as Win32Error(::GetLastError(), message)
- [[deprecated]] explicit Win32Error(std::string_view message);
explicit Win32Error(String message);
- [[deprecated]] Win32Error(DWORD error_code, std::string_view message);
Win32Error(DWORD error_code, String message);
CRU_DEFAULT_COPY(Win32Error)
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_;
};