From e7da93f75ba57fa4ab1ae1fd8053266ed09f92d8 Mon Sep 17 00:00:00 2001 From: crupest Date: Fri, 28 Jan 2022 22:56:28 +0800 Subject: ... --- include/cru/common/platform/win/Exception.hpp | 2 -- include/cru/win/gui/Base.hpp | 1 + include/cru/win/gui/Clipboard.hpp | 24 ++++++++++++++++++++++++ include/cru/win/gui/UiApplication.hpp | 1 + 4 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 include/cru/win/gui/Clipboard.hpp (limited to 'include') 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 window_manager_; std::unique_ptr cursor_manager_; + std::unique_ptr clipboard_; std::vector> quit_handlers_; }; -- cgit v1.2.3