diff options
author | crupest <crupest@outlook.com> | 2020-10-30 00:07:57 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2020-10-30 00:07:57 +0800 |
commit | 6aa2201797a9ed64ce0178215ae941d0c5f09579 (patch) | |
tree | 9a74ee8d9f616afbe693ef7825a71474850831b5 | |
parent | b4cb4fb7552d35c267bdb66913e4c822f16346ab (diff) | |
download | cru-6aa2201797a9ed64ce0178215ae941d0c5f09579.tar.gz cru-6aa2201797a9ed64ce0178215ae941d0c5f09579.tar.bz2 cru-6aa2201797a9ed64ce0178215ae941d0c5f09579.zip |
...
-rw-r--r-- | demos/CMakeLists.txt | 2 | ||||
-rw-r--r-- | demos/input_method/main.cpp | 16 | ||||
-rw-r--r-- | demos/main/main.cpp | 6 | ||||
-rw-r--r-- | include/cru/platform/graphics/Base.hpp (renamed from include/cru/platform/graph/Base.hpp) | 2 | ||||
-rw-r--r-- | include/cru/platform/graphics/Brush.hpp (renamed from include/cru/platform/graph/Brush.hpp) | 2 | ||||
-rw-r--r-- | include/cru/platform/graphics/Factory.hpp (renamed from include/cru/platform/graph/Factory.hpp) | 2 | ||||
-rw-r--r-- | include/cru/platform/graphics/Font.hpp (renamed from include/cru/platform/graph/Font.hpp) | 2 | ||||
-rw-r--r-- | include/cru/platform/graphics/Geometry.hpp (renamed from include/cru/platform/graph/Geometry.hpp) | 2 | ||||
-rw-r--r-- | include/cru/platform/graphics/Painter.hpp (renamed from include/cru/platform/graph/Painter.hpp) | 2 | ||||
-rw-r--r-- | include/cru/platform/graphics/Resource.hpp (renamed from include/cru/platform/graph/Resource.hpp) | 2 | ||||
-rw-r--r-- | include/cru/platform/graphics/TextLayout.hpp (renamed from include/cru/platform/graph/TextLayout.hpp) | 2 | ||||
-rw-r--r-- | include/cru/platform/graphics/util/Painter.hpp (renamed from include/cru/platform/graph/util/Painter.hpp) | 4 | ||||
-rw-r--r-- | include/cru/platform/gui/Base.hpp (renamed from include/cru/platform/native/Base.hpp) | 6 | ||||
-rw-r--r-- | include/cru/platform/gui/Cursor.hpp (renamed from include/cru/platform/native/Cursor.hpp) | 4 | ||||
-rw-r--r-- | include/cru/platform/gui/InputMethod.hpp (renamed from include/cru/platform/native/InputMethod.hpp) | 8 | ||||
-rw-r--r-- | include/cru/platform/gui/Keyboard.hpp (renamed from include/cru/platform/native/Keyboard.hpp) | 4 | ||||
-rw-r--r-- | include/cru/platform/gui/UiApplication.hpp (renamed from include/cru/platform/native/UiApplication.hpp) | 6 | ||||
-rw-r--r-- | include/cru/platform/gui/Window.hpp (renamed from include/cru/platform/native/Window.hpp) | 6 | ||||
-rw-r--r-- | include/cru/ui/Base.hpp | 20 | ||||
-rw-r--r-- | include/cru/ui/Control.hpp | 8 | ||||
-rw-r--r-- | include/cru/ui/ShortcutHub.hpp | 22 | ||||
-rw-r--r-- | include/cru/ui/UiEvent.hpp | 30 | ||||
-rw-r--r-- | include/cru/ui/UiManager.hpp | 8 | ||||
-rw-r--r-- | include/cru/ui/WindowHost.hpp | 42 | ||||
-rw-r--r-- | include/cru/ui/render/BorderRenderObject.hpp | 26 | ||||
-rw-r--r-- | include/cru/ui/render/CanvasRenderObject.hpp | 2 | ||||
-rw-r--r-- | include/cru/ui/render/LayoutRenderObject.hpp | 2 | ||||
-rw-r--r-- | include/cru/ui/render/RenderObject.hpp | 12 | ||||
-rw-r--r-- | include/cru/ui/render/ScrollRenderObject.hpp | 4 | ||||
-rw-r--r-- | include/cru/ui/render/TextRenderObject.hpp | 38 | ||||
-rw-r--r-- | include/cru/win/graphics/direct/Brush.hpp (renamed from include/cru/win/graph/direct/Brush.hpp) | 6 | ||||
-rw-r--r-- | include/cru/win/graphics/direct/ComResource.hpp (renamed from include/cru/win/graph/direct/ComResource.hpp) | 4 | ||||
-rw-r--r-- | include/cru/win/graphics/direct/ConvertUtil.hpp (renamed from include/cru/win/graph/direct/ConvertUtil.hpp) | 6 | ||||
-rw-r--r-- | include/cru/win/graphics/direct/Exception.hpp (renamed from include/cru/win/graph/direct/Exception.hpp) | 4 | ||||
-rw-r--r-- | include/cru/win/graphics/direct/Factory.hpp (renamed from include/cru/win/graph/direct/Factory.hpp) | 6 | ||||
-rw-r--r-- | include/cru/win/graphics/direct/Font.hpp (renamed from include/cru/win/graph/direct/Font.hpp) | 6 | ||||
-rw-r--r-- | include/cru/win/graphics/direct/Geometry.hpp (renamed from include/cru/win/graph/direct/Geometry.hpp) | 6 | ||||
-rw-r--r-- | include/cru/win/graphics/direct/Painter.hpp (renamed from include/cru/win/graph/direct/Painter.hpp) | 6 | ||||
-rw-r--r-- | include/cru/win/graphics/direct/Resource.hpp (renamed from include/cru/win/graph/direct/Resource.hpp) | 6 | ||||
-rw-r--r-- | include/cru/win/graphics/direct/TextLayout.hpp (renamed from include/cru/win/graph/direct/TextLayout.hpp) | 6 | ||||
-rw-r--r-- | include/cru/win/graphics/direct/WindowPainter.hpp (renamed from include/cru/win/graph/direct/WindowPainter.hpp) | 6 | ||||
-rw-r--r-- | include/cru/win/graphics/direct/WindowRenderTarget.hpp (renamed from include/cru/win/graph/direct/WindowRenderTarget.hpp) | 6 | ||||
-rw-r--r-- | include/cru/win/gui/Base.hpp (renamed from include/cru/win/native/Base.hpp) | 4 | ||||
-rw-r--r-- | include/cru/win/gui/Cursor.hpp (renamed from include/cru/win/native/Cursor.hpp) | 8 | ||||
-rw-r--r-- | include/cru/win/gui/Exception.hpp (renamed from include/cru/win/native/Exception.hpp) | 4 | ||||
-rw-r--r-- | include/cru/win/gui/GodWindow.hpp (renamed from include/cru/win/native/GodWindow.hpp) | 6 | ||||
-rw-r--r-- | include/cru/win/gui/InputMethod.hpp (renamed from include/cru/win/native/InputMethod.hpp) | 10 | ||||
-rw-r--r-- | include/cru/win/gui/Keyboard.hpp | 9 | ||||
-rw-r--r-- | include/cru/win/gui/Resource.hpp (renamed from include/cru/win/native/Resource.hpp) | 4 | ||||
-rw-r--r-- | include/cru/win/gui/UiApplication.hpp (renamed from include/cru/win/native/UiApplication.hpp) | 16 | ||||
-rw-r--r-- | include/cru/win/gui/Window.hpp (renamed from include/cru/win/native/Window.hpp) | 38 | ||||
-rw-r--r-- | include/cru/win/gui/WindowClass.hpp (renamed from include/cru/win/native/WindowClass.hpp) | 4 | ||||
-rw-r--r-- | include/cru/win/gui/WindowNativeMessageEventArgs.hpp (renamed from include/cru/win/native/WindowNativeMessageEventArgs.hpp) | 4 | ||||
-rw-r--r-- | include/cru/win/native/Keyboard.hpp | 9 | ||||
-rw-r--r-- | src/platform/CMakeLists.txt | 4 | ||||
-rw-r--r-- | src/platform/graph/CMakeLists.txt | 14 | ||||
-rw-r--r-- | src/platform/graphics/CMakeLists.txt | 14 | ||||
-rw-r--r-- | src/platform/gui/CMakeLists.txt | 14 | ||||
-rw-r--r-- | src/platform/gui/Keyboard.cpp (renamed from src/platform/native/Keyboard.cpp) | 6 | ||||
-rw-r--r-- | src/platform/gui/UiApplication.cpp (renamed from src/platform/native/UiApplication.cpp) | 6 | ||||
-rw-r--r-- | src/platform/native/CMakeLists.txt | 14 | ||||
-rw-r--r-- | src/ui/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/ui/Control.cpp | 10 | ||||
-rw-r--r-- | src/ui/Helper.cpp | 8 | ||||
-rw-r--r-- | src/ui/Helper.hpp | 4 | ||||
-rw-r--r-- | src/ui/UiManager.cpp | 12 | ||||
-rw-r--r-- | src/ui/WindowHost.cpp | 30 | ||||
-rw-r--r-- | src/ui/controls/Button.cpp | 10 | ||||
-rw-r--r-- | src/ui/controls/Container.cpp | 2 | ||||
-rw-r--r-- | src/ui/controls/TextControlService.hpp | 22 | ||||
-rw-r--r-- | src/ui/render/BorderRenderObject.cpp | 12 | ||||
-rw-r--r-- | src/ui/render/CanvasRenderObject.cpp | 2 | ||||
-rw-r--r-- | src/ui/render/FlexLayoutRenderObject.cpp | 2 | ||||
-rw-r--r-- | src/ui/render/RenderObject.cpp | 16 | ||||
-rw-r--r-- | src/ui/render/ScrollRenderObject.cpp | 10 | ||||
-rw-r--r-- | src/ui/render/TextRenderObject.cpp | 28 | ||||
-rw-r--r-- | src/win/CMakeLists.txt | 4 | ||||
-rw-r--r-- | src/win/graph/direct/CMakeLists.txt | 29 | ||||
-rw-r--r-- | src/win/graph/direct/Resource.cpp | 12 | ||||
-rw-r--r-- | src/win/graphics/CMakeLists.txt (renamed from src/win/graph/CMakeLists.txt) | 0 | ||||
-rw-r--r-- | src/win/graphics/direct/Brush.cpp (renamed from src/win/graph/direct/Brush.cpp) | 12 | ||||
-rw-r--r-- | src/win/graphics/direct/CMakeLists.txt | 29 | ||||
-rw-r--r-- | src/win/graphics/direct/Factory.cpp (renamed from src/win/graph/direct/Factory.cpp) | 16 | ||||
-rw-r--r-- | src/win/graphics/direct/Font.cpp (renamed from src/win/graph/direct/Font.cpp) | 10 | ||||
-rw-r--r-- | src/win/graphics/direct/Geometry.cpp (renamed from src/win/graph/direct/Geometry.cpp) | 12 | ||||
-rw-r--r-- | src/win/graphics/direct/Painter.cpp (renamed from src/win/graph/direct/Painter.cpp) | 16 | ||||
-rw-r--r-- | src/win/graphics/direct/Resource.cpp | 12 | ||||
-rw-r--r-- | src/win/graphics/direct/TextLayout.cpp (renamed from src/win/graph/direct/TextLayout.cpp) | 12 | ||||
-rw-r--r-- | src/win/graphics/direct/WindowPainter.cpp (renamed from src/win/graph/direct/WindowPainter.cpp) | 12 | ||||
-rw-r--r-- | src/win/graphics/direct/WindowRenderTarget.cpp (renamed from src/win/graph/direct/WindowRenderTarget.cpp) | 10 | ||||
-rw-r--r-- | src/win/gui/CMakeLists.txt | 31 | ||||
-rw-r--r-- | src/win/gui/Cursor.cpp (renamed from src/win/native/Cursor.cpp) | 8 | ||||
-rw-r--r-- | src/win/gui/GodWindow.cpp (renamed from src/win/native/GodWindow.cpp) | 12 | ||||
-rw-r--r-- | src/win/gui/InputMethod.cpp (renamed from src/win/native/InputMethod.cpp) | 8 | ||||
-rw-r--r-- | src/win/gui/Keyboard.cpp (renamed from src/win/native/Keyboard.cpp) | 6 | ||||
-rw-r--r-- | src/win/gui/TimerManager.cpp (renamed from src/win/native/TimerManager.cpp) | 8 | ||||
-rw-r--r-- | src/win/gui/TimerManager.hpp (renamed from src/win/native/TimerManager.hpp) | 8 | ||||
-rw-r--r-- | src/win/gui/UiApplication.cpp (renamed from src/win/native/UiApplication.cpp) | 28 | ||||
-rw-r--r-- | src/win/gui/Window.cpp (renamed from src/win/native/Window.cpp) | 46 | ||||
-rw-r--r-- | src/win/gui/WindowClass.cpp (renamed from src/win/native/WindowClass.cpp) | 8 | ||||
-rw-r--r-- | src/win/gui/WindowManager.cpp (renamed from src/win/native/WindowManager.cpp) | 10 | ||||
-rw-r--r-- | src/win/gui/WindowManager.hpp (renamed from src/win/native/WindowManager.hpp) | 4 | ||||
-rw-r--r-- | src/win/native/CMakeLists.txt | 31 |
103 files changed, 556 insertions, 556 deletions
diff --git a/demos/CMakeLists.txt b/demos/CMakeLists.txt index 64612bf9..16159d08 100644 --- a/demos/CMakeLists.txt +++ b/demos/CMakeLists.txt @@ -1,7 +1,7 @@ add_library(cru_demo_base INTERFACE) if(WIN32) - target_link_libraries(cru_demo_base INTERFACE cru_win_native) + target_link_libraries(cru_demo_base INTERFACE cru_win_gui) endif() add_subdirectory(main) diff --git a/demos/input_method/main.cpp b/demos/input_method/main.cpp index 06098253..5a6dc942 100644 --- a/demos/input_method/main.cpp +++ b/demos/input_method/main.cpp @@ -1,14 +1,14 @@ -#include "cru/platform/graph/Factory.hpp" -#include "cru/platform/graph/Font.hpp" -#include "cru/platform/graph/Painter.hpp" -#include "cru/platform/native/InputMethod.hpp" -#include "cru/platform/native/UiApplication.hpp" -#include "cru/platform/native/Window.hpp" +#include "cru/platform/graphics/Factory.hpp" +#include "cru/platform/graphics/Font.hpp" +#include "cru/platform/graphics/Painter.hpp" +#include "cru/platform/gui/InputMethod.hpp" +#include "cru/platform/gui/UiApplication.hpp" +#include "cru/platform/gui/Window.hpp" int main() { using namespace cru::platform; - using namespace cru::platform::graph; - using namespace cru::platform::native; + using namespace cru::platform::graphics; + using namespace cru::platform::gui; auto application = CreateUiApplication(); diff --git a/demos/main/main.cpp b/demos/main/main.cpp index e973682e..6bd7fb4e 100644 --- a/demos/main/main.cpp +++ b/demos/main/main.cpp @@ -1,6 +1,6 @@ #include "cru/platform/HeapDebug.hpp" -#include "cru/platform/native/UiApplication.hpp" -#include "cru/platform/native/Window.hpp" +#include "cru/platform/gui/UiApplication.hpp" +#include "cru/platform/gui/Window.hpp" #include "cru/ui/Base.hpp" #include "cru/ui/Window.hpp" #include "cru/ui/WindowHost.hpp" @@ -9,7 +9,7 @@ #include "cru/ui/controls/TextBlock.hpp" #include "cru/ui/controls/TextBox.hpp" -using cru::platform::native::CreateUiApplication; +using cru::platform::gui::CreateUiApplication; using cru::ui::Window; using cru::ui::controls::Button; using cru::ui::controls::FlexLayout; diff --git a/include/cru/platform/graph/Base.hpp b/include/cru/platform/graphics/Base.hpp index 61cfc5ef..e751ebdb 100644 --- a/include/cru/platform/graph/Base.hpp +++ b/include/cru/platform/graphics/Base.hpp @@ -5,7 +5,7 @@ #include <memory> -namespace cru::platform::graph { +namespace cru::platform::graphics { // forward declarations struct IGraphFactory; struct IBrush; diff --git a/include/cru/platform/graph/Brush.hpp b/include/cru/platform/graphics/Brush.hpp index e67384de..10c666b5 100644 --- a/include/cru/platform/graph/Brush.hpp +++ b/include/cru/platform/graphics/Brush.hpp @@ -1,7 +1,7 @@ #pragma once #include "Resource.hpp" -namespace cru::platform::graph { +namespace cru::platform::graphics { struct IBrush : virtual IGraphResource {}; struct ISolidColorBrush : virtual IBrush { diff --git a/include/cru/platform/graph/Factory.hpp b/include/cru/platform/graphics/Factory.hpp index b4e68f12..d1b37783 100644 --- a/include/cru/platform/graph/Factory.hpp +++ b/include/cru/platform/graphics/Factory.hpp @@ -9,7 +9,7 @@ #include <string> #include <string_view> -namespace cru::platform::graph { +namespace cru::platform::graphics { // Entry point of the graph module. struct IGraphFactory : virtual INativeResource { virtual std::unique_ptr<ISolidColorBrush> CreateSolidColorBrush() = 0; diff --git a/include/cru/platform/graph/Font.hpp b/include/cru/platform/graphics/Font.hpp index 182cc15b..70392a69 100644 --- a/include/cru/platform/graph/Font.hpp +++ b/include/cru/platform/graphics/Font.hpp @@ -1,7 +1,7 @@ #pragma once #include "Resource.hpp" -namespace cru::platform::graph { +namespace cru::platform::graphics { struct IFont : virtual IGraphResource { virtual float GetFontSize() = 0; }; diff --git a/include/cru/platform/graph/Geometry.hpp b/include/cru/platform/graphics/Geometry.hpp index 354efd97..b0ce6ad9 100644 --- a/include/cru/platform/graph/Geometry.hpp +++ b/include/cru/platform/graphics/Geometry.hpp @@ -1,7 +1,7 @@ #pragma once #include "Resource.hpp" -namespace cru::platform::graph { +namespace cru::platform::graphics { struct IGeometry : virtual IGraphResource { virtual bool FillContains(const Point& point) = 0; }; diff --git a/include/cru/platform/graph/Painter.hpp b/include/cru/platform/graphics/Painter.hpp index 27ae420b..76140c32 100644 --- a/include/cru/platform/graph/Painter.hpp +++ b/include/cru/platform/graphics/Painter.hpp @@ -1,7 +1,7 @@ #pragma once #include "Resource.hpp" -namespace cru::platform::graph { +namespace cru::platform::graphics { struct IPainter : virtual INativeResource { virtual Matrix GetTransform() = 0; diff --git a/include/cru/platform/graph/Resource.hpp b/include/cru/platform/graphics/Resource.hpp index 8859360c..a1625ce4 100644 --- a/include/cru/platform/graph/Resource.hpp +++ b/include/cru/platform/graphics/Resource.hpp @@ -1,7 +1,7 @@ #pragma once #include "Base.hpp" -namespace cru::platform::graph { +namespace cru::platform::graphics { struct IGraphFactory; struct IGraphResource : virtual INativeResource { diff --git a/include/cru/platform/graph/TextLayout.hpp b/include/cru/platform/graphics/TextLayout.hpp index a101983f..efd017d6 100644 --- a/include/cru/platform/graph/TextLayout.hpp +++ b/include/cru/platform/graphics/TextLayout.hpp @@ -4,7 +4,7 @@ #include <string> #include <vector> -namespace cru::platform::graph { +namespace cru::platform::graphics { struct ITextLayout : virtual IGraphResource { virtual std::u16string GetText() = 0; virtual std::u16string_view GetTextView() = 0; diff --git a/include/cru/platform/graph/util/Painter.hpp b/include/cru/platform/graphics/util/Painter.hpp index f9aec027..af3a1997 100644 --- a/include/cru/platform/graph/util/Painter.hpp +++ b/include/cru/platform/graphics/util/Painter.hpp @@ -4,7 +4,7 @@ #include <functional> #include <type_traits> -namespace cru::platform::graph::util { +namespace cru::platform::graphics::util { template <typename Fn> void WithTransform(IPainter* painter, const Matrix& matrix, const Fn& action) { static_assert(std::is_invocable_v<decltype(action), IPainter*>, @@ -14,4 +14,4 @@ void WithTransform(IPainter* painter, const Matrix& matrix, const Fn& action) { action(painter); painter->SetTransform(old); } -} // namespace cru::platform::graph::util +} // namespace cru::platform::graphics::util diff --git a/include/cru/platform/native/Base.hpp b/include/cru/platform/gui/Base.hpp index c3e87439..fb196f02 100644 --- a/include/cru/platform/native/Base.hpp +++ b/include/cru/platform/gui/Base.hpp @@ -2,11 +2,11 @@ #include "Keyboard.hpp" #include "cru/common/Base.hpp" #include "cru/common/Bitmask.hpp" -#include "cru/platform/graph/Base.hpp" +#include "cru/platform/graphics/Base.hpp" #include "../Resource.hpp" -namespace cru::platform::native { +namespace cru::platform::gui { struct ICursor; struct ICursorManager; struct IUiApplication; @@ -44,4 +44,4 @@ struct NativeKeyEventArgs { enum class FocusChangeType { Gain, Lost }; enum class MouseEnterLeaveType { Enter, Leave }; -} // namespace cru::platform::native +} // namespace cru::platform::gui diff --git a/include/cru/platform/native/Cursor.hpp b/include/cru/platform/gui/Cursor.hpp index 447cd694..3f1679e4 100644 --- a/include/cru/platform/native/Cursor.hpp +++ b/include/cru/platform/gui/Cursor.hpp @@ -3,7 +3,7 @@ #include <memory> -namespace cru::platform::native { +namespace cru::platform::gui { struct ICursor : virtual INativeResource {}; struct ICursorManager : virtual INativeResource { @@ -11,4 +11,4 @@ struct ICursorManager : virtual INativeResource { // TODO: Add method to create cursor. }; -} // namespace cru::platform::native +} // namespace cru::platform::gui diff --git a/include/cru/platform/native/InputMethod.hpp b/include/cru/platform/gui/InputMethod.hpp index de752417..53a8d671 100644 --- a/include/cru/platform/native/InputMethod.hpp +++ b/include/cru/platform/gui/InputMethod.hpp @@ -7,7 +7,7 @@ #include <memory> #include <vector> -namespace cru::platform::native { +namespace cru::platform::gui { struct CompositionClause { int start; int end; @@ -51,17 +51,17 @@ struct IInputMethodContext : virtual INativeResource { virtual IEvent<std::u16string_view>* TextEvent() = 0; }; -} // namespace cru::platform::native +} // namespace cru::platform::gui template <> -struct fmt::formatter<cru::platform::native::CompositionText, char16_t> +struct fmt::formatter<cru::platform::gui::CompositionText, char16_t> : fmt::formatter<std::u16string_view, char16_t> { auto parse(fmt::basic_format_parse_context<char16_t>& ctx) { return fmt::formatter<std::u16string_view, char16_t>::parse(ctx); } template <typename FormatContext> - auto format(const cru::platform::native::CompositionText& ct, + auto format(const cru::platform::gui::CompositionText& ct, FormatContext& ctx) { auto output = ctx.out(); output = format_to(output, u"text: {}\n", ct.text); diff --git a/include/cru/platform/native/Keyboard.hpp b/include/cru/platform/gui/Keyboard.hpp index 67a35c8a..e12cccda 100644 --- a/include/cru/platform/native/Keyboard.hpp +++ b/include/cru/platform/gui/Keyboard.hpp @@ -4,7 +4,7 @@ #include <string> #include <string_view> -namespace cru::platform::native { +namespace cru::platform::gui { // Because of the complexity of keyboard layout, I only add code in US keyboard // layout, the most widely used layout in China. We should try to make it easy // to add new keyboard layout. @@ -124,4 +124,4 @@ struct KeyModifiers { std::u16string_view ToString(KeyCode key_code); std::u16string ToString(KeyModifier key_modifier, std::u16string_view separator = u"+"); -} // namespace cru::platform::native +} // namespace cru::platform::gui diff --git a/include/cru/platform/native/UiApplication.hpp b/include/cru/platform/gui/UiApplication.hpp index 2b1b047a..6a2eb067 100644 --- a/include/cru/platform/native/UiApplication.hpp +++ b/include/cru/platform/gui/UiApplication.hpp @@ -6,7 +6,7 @@ #include <memory> #include <vector> -namespace cru::platform::native { +namespace cru::platform::gui { // The entry point of a ui application. struct IUiApplication : public virtual INativeResource { public: @@ -45,7 +45,7 @@ struct IUiApplication : public virtual INativeResource { virtual std::vector<INativeWindow*> GetAllWindow() = 0; virtual INativeWindow* CreateWindow(INativeWindow* parent) = 0; - virtual cru::platform::graph::IGraphFactory* GetGraphFactory() = 0; + virtual cru::platform::graphics::IGraphFactory* GetGraphFactory() = 0; virtual ICursorManager* GetCursorManager() = 0; }; @@ -106,4 +106,4 @@ class TimerListAutoCanceler { // Bootstrap from this. std::unique_ptr<IUiApplication> CreateUiApplication(); -} // namespace cru::platform::native +} // namespace cru::platform::gui diff --git a/include/cru/platform/native/Window.hpp b/include/cru/platform/gui/Window.hpp index c8abdeac..26d1a476 100644 --- a/include/cru/platform/native/Window.hpp +++ b/include/cru/platform/gui/Window.hpp @@ -5,7 +5,7 @@ #include <string_view> -namespace cru::platform::native { +namespace cru::platform::gui { // Represents a native window, which exposes some low-level events and // operations. struct INativeWindow : virtual INativeResource { @@ -38,7 +38,7 @@ struct INativeWindow : virtual INativeResource { virtual void RequestRepaint() = 0; // Remember to call EndDraw on return value and destroy it. - virtual std::unique_ptr<graph::IPainter> BeginPaint() = 0; + virtual std::unique_ptr<graphics::IPainter> BeginPaint() = 0; // Don't use this instance after receive this event. virtual IEvent<std::nullptr_t>* DestroyEvent() = 0; @@ -54,4 +54,4 @@ struct INativeWindow : virtual INativeResource { virtual IInputMethodContext* GetInputMethodContext() = 0; }; -} // namespace cru::platform::native +} // namespace cru::platform::gui diff --git a/include/cru/ui/Base.hpp b/include/cru/ui/Base.hpp index dd93f187..36d0eb78 100644 --- a/include/cru/ui/Base.hpp +++ b/include/cru/ui/Base.hpp @@ -1,7 +1,7 @@ #pragma once #include "cru/common/Base.hpp" -#include "cru/platform/graph/Base.hpp" -#include "cru/platform/native/Base.hpp" +#include "cru/platform/graphics/Base.hpp" +#include "cru/platform/gui/Base.hpp" #include <functional> #include <memory> @@ -19,9 +19,9 @@ using cru::platform::RoundedRect; using cru::platform::Size; using cru::platform::TextRange; using cru::platform::Thickness; -using cru::platform::native::MouseButton; +using cru::platform::gui::MouseButton; -namespace mouse_buttons = cru::platform::native::mouse_buttons; +namespace mouse_buttons = cru::platform::gui::mouse_buttons; namespace colors = cru::platform::colors; @@ -83,27 +83,27 @@ inline bool operator!=(const CornerRadius& left, const CornerRadius& right) { } struct BorderStyle { - std::shared_ptr<platform::graph::IBrush> border_brush; + std::shared_ptr<platform::graphics::IBrush> border_brush; Thickness border_thickness; CornerRadius border_radius; - std::shared_ptr<platform::graph::IBrush> foreground_brush; - std::shared_ptr<platform::graph::IBrush> background_brush; + std::shared_ptr<platform::graphics::IBrush> foreground_brush; + std::shared_ptr<platform::graphics::IBrush> background_brush; }; class CanvasPaintEventArgs { public: - CanvasPaintEventArgs(platform::graph::IPainter* painter, + CanvasPaintEventArgs(platform::graphics::IPainter* painter, const Size& paint_size) : painter_(painter), paint_size_(paint_size) {} CRU_DEFAULT_COPY(CanvasPaintEventArgs) CRU_DEFAULT_MOVE(CanvasPaintEventArgs) ~CanvasPaintEventArgs() = default; - platform::graph::IPainter* GetPainter() const { return painter_; } + platform::graphics::IPainter* GetPainter() const { return painter_; } Size GetPaintSize() const { return paint_size_; } private: - platform::graph::IPainter* painter_; + platform::graphics::IPainter* painter_; Size paint_size_; }; diff --git a/include/cru/ui/Control.hpp b/include/cru/ui/Control.hpp index 0021ad62..5f381965 100644 --- a/include/cru/ui/Control.hpp +++ b/include/cru/ui/Control.hpp @@ -58,13 +58,13 @@ class Control : public Object { // Cursor is inherited from parent recursively if not set. public: // null for not set - std::shared_ptr<platform::native::ICursor> GetCursor(); + std::shared_ptr<platform::gui::ICursor> GetCursor(); // will not return nullptr - std::shared_ptr<platform::native::ICursor> GetInheritedCursor(); + std::shared_ptr<platform::gui::ICursor> GetInheritedCursor(); // null to unset - void SetCursor(std::shared_ptr<platform::native::ICursor> cursor); + void SetCursor(std::shared_ptr<platform::gui::ICursor> cursor); //*************** region: events *************** public: @@ -146,6 +146,6 @@ class Control : public Object { private: bool is_mouse_over_ = false; - std::shared_ptr<platform::native::ICursor> cursor_ = nullptr; + std::shared_ptr<platform::gui::ICursor> cursor_ = nullptr; }; } // namespace cru::ui diff --git a/include/cru/ui/ShortcutHub.hpp b/include/cru/ui/ShortcutHub.hpp index 5382f63e..1145c661 100644 --- a/include/cru/ui/ShortcutHub.hpp +++ b/include/cru/ui/ShortcutHub.hpp @@ -3,7 +3,7 @@ #include "cru/common/Base.hpp" #include "cru/common/Event.hpp" -#include "cru/platform/native/Keyboard.hpp" +#include "cru/platform/gui/Keyboard.hpp" #include "cru/ui/UiEvent.hpp" #include <cstddef> @@ -20,8 +20,8 @@ namespace cru::ui { class ShortcutKeyBind { public: - ShortcutKeyBind(platform::native::KeyCode key, - platform::native::KeyModifier modifier) + ShortcutKeyBind(platform::gui::KeyCode key, + platform::gui::KeyModifier modifier) : key_(key), modifier_(modifier) {} CRU_DEFAULT_COPY(ShortcutKeyBind) @@ -29,11 +29,11 @@ class ShortcutKeyBind { ~ShortcutKeyBind() = default; - platform::native::KeyCode GetKey() const { return key_; } - platform::native::KeyModifier GetModifier() const { return modifier_; } + platform::gui::KeyCode GetKey() const { return key_; } + platform::gui::KeyModifier GetModifier() const { return modifier_; } - bool Is(platform::native::KeyCode key, - platform::native::KeyModifier modifier) const { + bool Is(platform::gui::KeyCode key, + platform::gui::KeyModifier modifier) const { return key == key_ && modifier == modifier_; } @@ -47,15 +47,15 @@ class ShortcutKeyBind { std::u16string ToString() { std::u16string result = u"("; - result += platform::native::ToString(modifier_); + result += platform::gui::ToString(modifier_); result += u")"; - result += platform::native::ToString(key_); + result += platform::gui::ToString(key_); return result; } private: - platform::native::KeyCode key_; - platform::native::KeyModifier modifier_; + platform::gui::KeyCode key_; + platform::gui::KeyModifier modifier_; }; } // namespace cru::ui diff --git a/include/cru/ui/UiEvent.hpp b/include/cru/ui/UiEvent.hpp index 5adace8a..c0b2a902 100644 --- a/include/cru/ui/UiEvent.hpp +++ b/include/cru/ui/UiEvent.hpp @@ -2,14 +2,14 @@ #include "Base.hpp" #include "cru/common/Event.hpp" -#include "cru/platform/native/Keyboard.hpp" +#include "cru/platform/gui/Keyboard.hpp" #include <memory> #include <optional> #include <string> #include <type_traits> -namespace cru::platform::graph { +namespace cru::platform::graphics { struct IPainter; } @@ -94,13 +94,13 @@ class MouseButtonEventArgs : public MouseEventArgs { public: MouseButtonEventArgs(Object* sender, Object* original_sender, const Point& point, const MouseButton button, - platform::native::KeyModifier key_modifier) + platform::gui::KeyModifier key_modifier) : MouseEventArgs(sender, original_sender, point), button_(button), key_modifier_(key_modifier) {} MouseButtonEventArgs(Object* sender, Object* original_sender, const MouseButton button, - platform::native::KeyModifier key_modifier) + platform::gui::KeyModifier key_modifier) : MouseEventArgs(sender, original_sender), button_(button), key_modifier_(key_modifier) {} @@ -111,11 +111,11 @@ class MouseButtonEventArgs : public MouseEventArgs { ~MouseButtonEventArgs() override = default; MouseButton GetButton() const { return button_; } - platform::native::KeyModifier GetKeyModifier() const { return key_modifier_; } + platform::gui::KeyModifier GetKeyModifier() const { return key_modifier_; } private: MouseButton button_; - platform::native::KeyModifier key_modifier_; + platform::gui::KeyModifier key_modifier_; }; class MouseWheelEventArgs : public MouseEventArgs { @@ -138,7 +138,7 @@ class MouseWheelEventArgs : public MouseEventArgs { class PaintEventArgs : public UiEventArgs { public: PaintEventArgs(Object* sender, Object* original_sender, - platform::graph::IPainter* painter) + platform::graphics::IPainter* painter) : UiEventArgs(sender, original_sender), painter_(painter) {} PaintEventArgs(const PaintEventArgs& other) = default; PaintEventArgs(PaintEventArgs&& other) = default; @@ -146,10 +146,10 @@ class PaintEventArgs : public UiEventArgs { PaintEventArgs& operator=(PaintEventArgs&& other) = default; ~PaintEventArgs() = default; - platform::graph::IPainter* GetPainter() const { return painter_; } + platform::graphics::IPainter* GetPainter() const { return painter_; } private: - platform::graph::IPainter* painter_; + platform::graphics::IPainter* painter_; }; class FocusChangeEventArgs : public UiEventArgs { @@ -191,8 +191,8 @@ class ToggleEventArgs : public UiEventArgs { class KeyEventArgs : public UiEventArgs { public: KeyEventArgs(Object* sender, Object* original_sender, - platform::native::KeyCode key_code, - platform::native::KeyModifier key_modifier) + platform::gui::KeyCode key_code, + platform::gui::KeyModifier key_modifier) : UiEventArgs(sender, original_sender), key_code_(key_code), key_modifier_(key_modifier) {} @@ -202,12 +202,12 @@ class KeyEventArgs : public UiEventArgs { KeyEventArgs& operator=(KeyEventArgs&& other) = default; ~KeyEventArgs() override = default; - platform::native::KeyCode GetKeyCode() const { return key_code_; } - platform::native::KeyModifier GetKeyModifier() const { return key_modifier_; } + platform::gui::KeyCode GetKeyCode() const { return key_code_; } + platform::gui::KeyModifier GetKeyModifier() const { return key_modifier_; } private: - platform::native::KeyCode key_code_; - platform::native::KeyModifier key_modifier_; + platform::gui::KeyCode key_code_; + platform::gui::KeyModifier key_modifier_; }; class CharEventArgs : public UiEventArgs { diff --git a/include/cru/ui/UiManager.hpp b/include/cru/ui/UiManager.hpp index 46f06ac2..64599d99 100644 --- a/include/cru/ui/UiManager.hpp +++ b/include/cru/ui/UiManager.hpp @@ -9,10 +9,10 @@ namespace cru::ui { struct ThemeResources { std::u16string default_font_family; - std::shared_ptr<platform::graph::IFont> default_font; - std::shared_ptr<platform::graph::IBrush> text_brush; - std::shared_ptr<platform::graph::IBrush> text_selection_brush; - std::shared_ptr<platform::graph::IBrush> caret_brush; + std::shared_ptr<platform::graphics::IFont> default_font; + std::shared_ptr<platform::graphics::IBrush> text_brush; + std::shared_ptr<platform::graphics::IBrush> text_selection_brush; + std::shared_ptr<platform::graphics::IBrush> caret_brush; controls::ButtonStyle button_style; controls::TextBoxBorderStyle text_box_border_style; }; diff --git a/include/cru/ui/WindowHost.hpp b/include/cru/ui/WindowHost.hpp index c3221dcf..97acf72e 100644 --- a/include/cru/ui/WindowHost.hpp +++ b/include/cru/ui/WindowHost.hpp @@ -2,8 +2,8 @@ #include "Base.hpp" #include "cru/common/Event.hpp" -#include "cru/platform/native/UiApplication.hpp" -#include "cru/platform/native/Window.hpp" +#include "cru/platform/gui/UiApplication.hpp" +#include "cru/platform/gui/Window.hpp" #include "render/Base.hpp" #include <functional> @@ -24,7 +24,7 @@ class WindowHost : public Object { ~WindowHost() override; public: - platform::native::INativeWindow* GetNativeWindow() { return native_window_; } + platform::gui::INativeWindow* GetNativeWindow() { return native_window_; } // Mark the layout as invalid, and arrange a re-layout later. // This method could be called more than one times in a message cycle. But @@ -87,30 +87,30 @@ class WindowHost : public Object { private: //*************** region: native messages *************** - void OnNativeDestroy(platform::native::INativeWindow* window, std::nullptr_t); - void OnNativePaint(platform::native::INativeWindow* window, std::nullptr_t); - void OnNativeResize(platform::native::INativeWindow* window, + void OnNativeDestroy(platform::gui::INativeWindow* window, std::nullptr_t); + void OnNativePaint(platform::gui::INativeWindow* window, std::nullptr_t); + void OnNativeResize(platform::gui::INativeWindow* window, const Size& size); - void OnNativeFocus(platform::native::INativeWindow* window, - cru::platform::native::FocusChangeType focus); + void OnNativeFocus(platform::gui::INativeWindow* window, + cru::platform::gui::FocusChangeType focus); void OnNativeMouseEnterLeave( - platform::native::INativeWindow* window, - cru::platform::native::MouseEnterLeaveType enter); - void OnNativeMouseMove(platform::native::INativeWindow* window, + platform::gui::INativeWindow* window, + cru::platform::gui::MouseEnterLeaveType enter); + void OnNativeMouseMove(platform::gui::INativeWindow* window, const Point& point); void OnNativeMouseDown( - platform::native::INativeWindow* window, - const platform::native::NativeMouseButtonEventArgs& args); + platform::gui::INativeWindow* window, + const platform::gui::NativeMouseButtonEventArgs& args); void OnNativeMouseUp( - platform::native::INativeWindow* window, - const platform::native::NativeMouseButtonEventArgs& args); + platform::gui::INativeWindow* window, + const platform::gui::NativeMouseButtonEventArgs& args); - void OnNativeKeyDown(platform::native::INativeWindow* window, - const platform::native::NativeKeyEventArgs& args); - void OnNativeKeyUp(platform::native::INativeWindow* window, - const platform::native::NativeKeyEventArgs& args); + void OnNativeKeyDown(platform::gui::INativeWindow* window, + const platform::gui::NativeKeyEventArgs& args); + void OnNativeKeyUp(platform::gui::INativeWindow* window, + const platform::gui::NativeKeyEventArgs& args); //*************** region: event dispatcher helper *************** @@ -123,10 +123,10 @@ class WindowHost : public Object { Control* root_control_ = nullptr; render::RenderObject* root_render_object_ = nullptr; - platform::native::INativeWindow* native_window_ = nullptr; + platform::gui::INativeWindow* native_window_ = nullptr; bool need_layout_ = false; - platform::native::TimerAutoCanceler relayout_timer_canceler_; + platform::gui::TimerAutoCanceler relayout_timer_canceler_; Event<AfterLayoutEventArgs> after_layout_event_; std::vector<std::function<void()> > after_layout_stable_action_; diff --git a/include/cru/ui/render/BorderRenderObject.hpp b/include/cru/ui/render/BorderRenderObject.hpp index 587f051a..f1b957cf 100644 --- a/include/cru/ui/render/BorderRenderObject.hpp +++ b/include/cru/ui/render/BorderRenderObject.hpp @@ -16,11 +16,11 @@ class BorderRenderObject : public RenderObject { bool IsBorderEnabled() const { return is_border_enabled_; } void SetBorderEnabled(bool enabled) { is_border_enabled_ = enabled; } - std::shared_ptr<platform::graph::IBrush> GetBorderBrush() { + std::shared_ptr<platform::graphics::IBrush> GetBorderBrush() { return border_brush_; } - void SetBorderBrush(std::shared_ptr<platform::graph::IBrush> brush) { + void SetBorderBrush(std::shared_ptr<platform::graphics::IBrush> brush) { if (brush == border_brush_) return; border_brush_ = std::move(brush); InvalidatePaint(); @@ -42,21 +42,21 @@ class BorderRenderObject : public RenderObject { RecreateGeometry(); } - std::shared_ptr<platform::graph::IBrush> GetForegroundBrush() { + std::shared_ptr<platform::graphics::IBrush> GetForegroundBrush() { return foreground_brush_; } - void SetForegroundBrush(std::shared_ptr<platform::graph::IBrush> brush) { + void SetForegroundBrush(std::shared_ptr<platform::graphics::IBrush> brush) { if (brush == foreground_brush_) return; foreground_brush_ = std::move(brush); InvalidatePaint(); } - std::shared_ptr<platform::graph::IBrush> GetBackgroundBrush() { + std::shared_ptr<platform::graphics::IBrush> GetBackgroundBrush() { return background_brush_; } - void SetBackgroundBrush(std::shared_ptr<platform::graph::IBrush> brush) { + void SetBackgroundBrush(std::shared_ptr<platform::graphics::IBrush> brush) { if (brush == background_brush_) return; background_brush_ = std::move(brush); InvalidatePaint(); @@ -67,7 +67,7 @@ class BorderRenderObject : public RenderObject { RenderObject* HitTest(const Point& point) override; protected: - void OnDrawCore(platform::graph::IPainter* painter) override; + void OnDrawCore(platform::graphics::IPainter* painter) override; Size OnMeasureCore(const MeasureRequirement& requirement, const MeasureSize& preferred_size) override; @@ -87,19 +87,19 @@ class BorderRenderObject : public RenderObject { private: bool is_border_enabled_ = false; - std::shared_ptr<platform::graph::IBrush> border_brush_; + std::shared_ptr<platform::graphics::IBrush> border_brush_; Thickness border_thickness_; CornerRadius border_radius_; - std::shared_ptr<platform::graph::IBrush> foreground_brush_; - std::shared_ptr<platform::graph::IBrush> background_brush_; + std::shared_ptr<platform::graphics::IBrush> foreground_brush_; + std::shared_ptr<platform::graphics::IBrush> background_brush_; // The ring. Used for painting. - std::unique_ptr<platform::graph::IGeometry> geometry_; + std::unique_ptr<platform::graphics::IGeometry> geometry_; // Area including inner area of the border. Used for painting foreground and // background. - std::unique_ptr<platform::graph::IGeometry> border_inner_geometry_; + std::unique_ptr<platform::graphics::IGeometry> border_inner_geometry_; // Area including border ring and inner area. Used for hit test. - std::unique_ptr<platform::graph::IGeometry> border_outer_geometry_; + std::unique_ptr<platform::graphics::IGeometry> border_outer_geometry_; }; } // namespace cru::ui::render diff --git a/include/cru/ui/render/CanvasRenderObject.hpp b/include/cru/ui/render/CanvasRenderObject.hpp index 3216f08c..58fee59c 100644 --- a/include/cru/ui/render/CanvasRenderObject.hpp +++ b/include/cru/ui/render/CanvasRenderObject.hpp @@ -22,7 +22,7 @@ class CanvasRenderObject : public RenderObject { IEvent<CanvasPaintEventArgs>* PaintEvent() { return &paint_event_; } protected: - void OnDrawContent(platform::graph::IPainter* painter) override; + void OnDrawContent(platform::graphics::IPainter* painter) override; Size OnMeasureContent(const MeasureRequirement& requirement, const MeasureSize& preferred_size) override; diff --git a/include/cru/ui/render/LayoutRenderObject.hpp b/include/cru/ui/render/LayoutRenderObject.hpp index b46ba0d0..732031a1 100644 --- a/include/cru/ui/render/LayoutRenderObject.hpp +++ b/include/cru/ui/render/LayoutRenderObject.hpp @@ -1,7 +1,7 @@ #pragma once #include "RenderObject.hpp" -#include "cru/platform/graph/util/Painter.hpp" +#include "cru/platform/graphics/util/Painter.hpp" namespace cru::ui::render { template <typename TChildLayoutData> diff --git a/include/cru/ui/render/RenderObject.hpp b/include/cru/ui/render/RenderObject.hpp index 20e095fa..436cf6b2 100644 --- a/include/cru/ui/render/RenderObject.hpp +++ b/include/cru/ui/render/RenderObject.hpp @@ -33,7 +33,7 @@ namespace cru::ui::render { // // To write a custom RenderObject, override following methods: // public: -// void Draw(platform::graph::IPainter* painter) override; +// void Draw(platform::graphics::IPainter* painter) override; // RenderObject* HitTest(const Point& point) override; // protected: // Size OnMeasureContent(const MeasureRequirement& requirement) override; @@ -129,7 +129,7 @@ class RenderObject : public Object { // This will set offset of this render object and call OnLayoutCore. void Layout(const Point& offset); - void Draw(platform::graph::IPainter* painter); + void Draw(platform::graphics::IPainter* painter); // Param point must be relative the lefttop of render object including margin. // Add offset before pass point to children. @@ -163,15 +163,15 @@ class RenderObject : public Object { virtual void OnRemoveChild(RenderObject* removed_child, Index position); // Draw all children with offset. - void DefaultDrawChildren(platform::graph::IPainter* painter); + void DefaultDrawChildren(platform::graphics::IPainter* painter); // Draw all children with translation of content rect lefttop. - void DefaultDrawContent(platform::graph::IPainter* painter); + void DefaultDrawContent(platform::graphics::IPainter* painter); // Call DefaultDrawContent. Then call DefaultDrawChildren. - virtual void OnDrawCore(platform::graph::IPainter* painter); + virtual void OnDrawCore(platform::graphics::IPainter* painter); - virtual void OnDrawContent(platform::graph::IPainter* painter); + virtual void OnDrawContent(platform::graphics::IPainter* painter); // Size measure including margin and padding. Please reduce margin and padding // or other custom things and pass the result content measure requirement and diff --git a/include/cru/ui/render/ScrollRenderObject.hpp b/include/cru/ui/render/ScrollRenderObject.hpp index 9b0cbf9a..3cc0e4c4 100644 --- a/include/cru/ui/render/ScrollRenderObject.hpp +++ b/include/cru/ui/render/ScrollRenderObject.hpp @@ -1,7 +1,7 @@ #pragma once #include "RenderObject.hpp" -#include "cru/platform/graph/util/Painter.hpp" +#include "cru/platform/graphics/util/Painter.hpp" #include <optional> @@ -44,7 +44,7 @@ class ScrollRenderObject : public RenderObject { void ScrollToContain(const Rect& rect, const Thickness& margin = Thickness{}); protected: - void OnDrawCore(platform::graph::IPainter* painter) override; + void OnDrawCore(platform::graphics::IPainter* painter) override; // Logic: // If available size is bigger than child's preferred size, then child's diff --git a/include/cru/ui/render/TextRenderObject.hpp b/include/cru/ui/render/TextRenderObject.hpp index 3be42bbb..fa569c8c 100644 --- a/include/cru/ui/render/TextRenderObject.hpp +++ b/include/cru/ui/render/TextRenderObject.hpp @@ -24,10 +24,10 @@ class TextRenderObject : public RenderObject { constexpr static float default_caret_width = 2; public: - TextRenderObject(std::shared_ptr<platform::graph::IBrush> brush, - std::shared_ptr<platform::graph::IFont> font, - std::shared_ptr<platform::graph::IBrush> selection_brush, - std::shared_ptr<platform::graph::IBrush> caret_brush); + TextRenderObject(std::shared_ptr<platform::graphics::IBrush> brush, + std::shared_ptr<platform::graphics::IFont> font, + std::shared_ptr<platform::graphics::IBrush> selection_brush, + std::shared_ptr<platform::graphics::IBrush> caret_brush); TextRenderObject(const TextRenderObject& other) = delete; TextRenderObject(TextRenderObject&& other) = delete; TextRenderObject& operator=(const TextRenderObject& other) = delete; @@ -38,25 +38,25 @@ class TextRenderObject : public RenderObject { std::u16string_view GetTextView() const; void SetText(std::u16string new_text); - std::shared_ptr<platform::graph::IBrush> GetBrush() const { return brush_; } - void SetBrush(std::shared_ptr<platform::graph::IBrush> new_brush); + std::shared_ptr<platform::graphics::IBrush> GetBrush() const { return brush_; } + void SetBrush(std::shared_ptr<platform::graphics::IBrush> new_brush); - std::shared_ptr<platform::graph::IFont> GetFont() const; - void SetFont(std::shared_ptr<platform::graph::IFont> font); + std::shared_ptr<platform::graphics::IFont> GetFont() const; + void SetFont(std::shared_ptr<platform::graphics::IFont> font); std::vector<Rect> TextRangeRect(const TextRange& text_range); Point TextSinglePoint(gsl::index position, bool trailing); - platform::graph::TextHitTestResult TextHitTest(const Point& point); + platform::graphics::TextHitTestResult TextHitTest(const Point& point); std::optional<TextRange> GetSelectionRange() const { return selection_range_; } void SetSelectionRange(std::optional<TextRange> new_range); - std::shared_ptr<platform::graph::IBrush> GetSelectionBrush() const { + std::shared_ptr<platform::graphics::IBrush> GetSelectionBrush() const { return selection_brush_; } - void SetSelectionBrush(std::shared_ptr<platform::graph::IBrush> new_brush); + void SetSelectionBrush(std::shared_ptr<platform::graphics::IBrush> new_brush); bool IsDrawCaret() const { return draw_caret_; } void SetDrawCaret(bool draw_caret); @@ -72,10 +72,10 @@ class TextRenderObject : public RenderObject { // Lefttop relative to render object lefttop. Rect GetCaretRect(); - std::shared_ptr<platform::graph::IBrush> GetCaretBrush() const { + std::shared_ptr<platform::graphics::IBrush> GetCaretBrush() const { return caret_brush_; } - void GetCaretBrush(std::shared_ptr<platform::graph::IBrush> brush); + void GetCaretBrush(std::shared_ptr<platform::graphics::IBrush> brush); float GetCaretWidth() const { return caret_width_; } void SetCaretWidth(float width); @@ -83,7 +83,7 @@ class TextRenderObject : public RenderObject { RenderObject* HitTest(const Point& point) override; protected: - void OnDrawContent(platform::graph::IPainter* painter) override; + void OnDrawContent(platform::graphics::IPainter* painter) override; // See remarks of this class. Size OnMeasureContent(const MeasureRequirement& requirement, @@ -93,16 +93,16 @@ class TextRenderObject : public RenderObject { void OnAfterLayout() override; private: - std::shared_ptr<platform::graph::IBrush> brush_; - std::shared_ptr<platform::graph::IFont> font_; - std::unique_ptr<platform::graph::ITextLayout> text_layout_; + std::shared_ptr<platform::graphics::IBrush> brush_; + std::shared_ptr<platform::graphics::IFont> font_; + std::unique_ptr<platform::graphics::ITextLayout> text_layout_; std::optional<TextRange> selection_range_ = std::nullopt; - std::shared_ptr<platform::graph::IBrush> selection_brush_; + std::shared_ptr<platform::graphics::IBrush> selection_brush_; bool draw_caret_ = false; gsl::index caret_position_ = 0; - std::shared_ptr<platform::graph::IBrush> caret_brush_; + std::shared_ptr<platform::graphics::IBrush> caret_brush_; float caret_width_ = default_caret_width; }; } // namespace cru::ui::render diff --git a/include/cru/win/graph/direct/Brush.hpp b/include/cru/win/graphics/direct/Brush.hpp index df1debe3..fbff83b5 100644 --- a/include/cru/win/graph/direct/Brush.hpp +++ b/include/cru/win/graphics/direct/Brush.hpp @@ -2,9 +2,9 @@ #include "ComResource.hpp" #include "Resource.hpp" -#include "cru/platform/graph/Brush.hpp" +#include "cru/platform/graphics/Brush.hpp" -namespace cru::platform::graph::win::direct { +namespace cru::platform::graphics::win::direct { struct ID2DBrush : virtual IBrush { virtual ID2D1Brush* GetD2DBrushInterface() const = 0; }; @@ -36,4 +36,4 @@ class D2DSolidColorBrush : public DirectGraphResource, Microsoft::WRL::ComPtr<ID2D1SolidColorBrush> brush_; }; -} // namespace cru::platform::graph::win::direct +} // namespace cru::platform::graphics::win::direct diff --git a/include/cru/win/graph/direct/ComResource.hpp b/include/cru/win/graphics/direct/ComResource.hpp index 2ac332cd..34ea39ed 100644 --- a/include/cru/win/graph/direct/ComResource.hpp +++ b/include/cru/win/graphics/direct/ComResource.hpp @@ -3,9 +3,9 @@ #include "cru/common/Base.hpp" -namespace cru::platform::graph::win::direct { +namespace cru::platform::graphics::win::direct { template <typename TInterface> struct IComResource : virtual Interface { virtual TInterface* GetComInterface() const = 0; }; -} // namespace cru::platform::graph::win::direct +} // namespace cru::platform::graphics::win::direct diff --git a/include/cru/win/graph/direct/ConvertUtil.hpp b/include/cru/win/graphics/direct/ConvertUtil.hpp index 12a04c7b..0d8da8a1 100644 --- a/include/cru/win/graph/direct/ConvertUtil.hpp +++ b/include/cru/win/graphics/direct/ConvertUtil.hpp @@ -1,9 +1,9 @@ #pragma once #include "../../WinPreConfig.hpp" -#include "cru/platform/graph/Base.hpp" +#include "cru/platform/graphics/Base.hpp" -namespace cru::platform::graph::win::direct { +namespace cru::platform::graphics::win::direct { inline D2D1_MATRIX_3X2_F Convert(const platform::Matrix& matrix) { D2D1_MATRIX_3X2_F m; m._11 = matrix.m11; @@ -104,4 +104,4 @@ inline bool operator==(const D2D1_ELLIPSE& left, const D2D1_ELLIPSE& right) { inline bool operator!=(const D2D1_ELLIPSE& left, const D2D1_ELLIPSE& right) { return !(left == right); } -} // namespace cru::platform::graph::win::direct +} // namespace cru::platform::graphics::win::direct diff --git a/include/cru/win/graph/direct/Exception.hpp b/include/cru/win/graphics/direct/Exception.hpp index 8b62e8fa..72493f2f 100644 --- a/include/cru/win/graph/direct/Exception.hpp +++ b/include/cru/win/graphics/direct/Exception.hpp @@ -1,7 +1,7 @@ #pragma once #include "../../Exception.hpp" -namespace cru::platform::graph::win::direct { +namespace cru::platform::graphics::win::direct { using platform::win::HResultError; using platform::win::ThrowIfFailed; -} // namespace cru::platform::graph::win::direct
\ No newline at end of file +} // namespace cru::platform::graphics::win::direct diff --git a/include/cru/win/graph/direct/Factory.hpp b/include/cru/win/graphics/direct/Factory.hpp index e70454f5..70f3ede1 100644 --- a/include/cru/win/graph/direct/Factory.hpp +++ b/include/cru/win/graphics/direct/Factory.hpp @@ -1,9 +1,9 @@ #pragma once #include "Resource.hpp" -#include "cru/platform/graph/Factory.hpp" +#include "cru/platform/graphics/Factory.hpp" -namespace cru::platform::graph::win::direct { +namespace cru::platform::graphics::win::direct { class DirectGraphFactory : public DirectResource, public virtual IGraphFactory { public: DirectGraphFactory(); @@ -55,4 +55,4 @@ class DirectGraphFactory : public DirectResource, public virtual IGraphFactory { Microsoft::WRL::ComPtr<IDWriteFactory> dwrite_factory_; Microsoft::WRL::ComPtr<IDWriteFontCollection> dwrite_system_font_collection_; }; -} // namespace cru::platform::graph::win::direct +} // namespace cru::platform::graphics::win::direct diff --git a/include/cru/win/graph/direct/Font.hpp b/include/cru/win/graphics/direct/Font.hpp index 2195f3e4..fd3921a3 100644 --- a/include/cru/win/graph/direct/Font.hpp +++ b/include/cru/win/graphics/direct/Font.hpp @@ -2,11 +2,11 @@ #include "ComResource.hpp" #include "Resource.hpp" -#include "cru/platform/graph/Font.hpp" +#include "cru/platform/graphics/Font.hpp" #include <string_view> -namespace cru::platform::graph::win::direct { +namespace cru::platform::graphics::win::direct { class DWriteFont : public DirectGraphResource, public virtual IFont, public virtual IComResource<IDWriteTextFormat> { @@ -30,4 +30,4 @@ class DWriteFont : public DirectGraphResource, std::u16string font_family_; Microsoft::WRL::ComPtr<IDWriteTextFormat> text_format_; }; -} // namespace cru::platform::graph::win::direct +} // namespace cru::platform::graphics::win::direct diff --git a/include/cru/win/graph/direct/Geometry.hpp b/include/cru/win/graphics/direct/Geometry.hpp index 87987d3e..edfec590 100644 --- a/include/cru/win/graph/direct/Geometry.hpp +++ b/include/cru/win/graphics/direct/Geometry.hpp @@ -2,9 +2,9 @@ #include "ComResource.hpp" #include "Resource.hpp" -#include "cru/platform/graph/Geometry.hpp" +#include "cru/platform/graphics/Geometry.hpp" -namespace cru::platform::graph::win::direct { +namespace cru::platform::graphics::win::direct { class D2DGeometryBuilder : public DirectGraphResource, public virtual IGeometryBuilder { public: @@ -54,4 +54,4 @@ class D2DGeometry : public DirectGraphResource, private: Microsoft::WRL::ComPtr<ID2D1PathGeometry> geometry_; }; -} // namespace cru::platform::graph::win::direct +} // namespace cru::platform::graphics::win::direct diff --git a/include/cru/win/graph/direct/Painter.hpp b/include/cru/win/graphics/direct/Painter.hpp index a50f962d..93c768e7 100644 --- a/include/cru/win/graph/direct/Painter.hpp +++ b/include/cru/win/graphics/direct/Painter.hpp @@ -2,11 +2,11 @@ #include "ComResource.hpp" #include "Resource.hpp" -#include "cru/platform/graph/Painter.hpp" +#include "cru/platform/graphics/Painter.hpp" #include <vector> -namespace cru::platform::graph::win::direct { +namespace cru::platform::graphics::win::direct { class D2DPainter : public DirectResource, public virtual IPainter, public virtual IComResource<ID2D1RenderTarget> { @@ -57,4 +57,4 @@ class D2DPainter : public DirectResource, bool is_drawing_ = true; }; -} // namespace cru::platform::graph::win::direct +} // namespace cru::platform::graphics::win::direct diff --git a/include/cru/win/graph/direct/Resource.hpp b/include/cru/win/graphics/direct/Resource.hpp index 6162ebd8..f60f373e 100644 --- a/include/cru/win/graph/direct/Resource.hpp +++ b/include/cru/win/graphics/direct/Resource.hpp @@ -1,11 +1,11 @@ #pragma once #include "../../WinPreConfig.hpp" -#include "cru/platform/graph/Resource.hpp" +#include "cru/platform/graphics/Resource.hpp" #include <string_view> -namespace cru::platform::graph::win::direct { +namespace cru::platform::graphics::win::direct { class DirectGraphFactory; class DirectResource : public Object, public virtual INativeResource { @@ -46,4 +46,4 @@ class DirectGraphResource : public DirectResource, private: DirectGraphFactory* factory_; }; -} // namespace cru::platform::graph::win::direct +} // namespace cru::platform::graphics::win::direct diff --git a/include/cru/win/graph/direct/TextLayout.hpp b/include/cru/win/graphics/direct/TextLayout.hpp index 016009ab..3320431f 100644 --- a/include/cru/win/graph/direct/TextLayout.hpp +++ b/include/cru/win/graphics/direct/TextLayout.hpp @@ -2,12 +2,12 @@ #include "ComResource.hpp" #include "Resource.hpp" -#include "cru/platform/graph/TextLayout.hpp" +#include "cru/platform/graphics/TextLayout.hpp" #include <limits> #include <memory> -namespace cru::platform::graph::win::direct { +namespace cru::platform::graphics::win::direct { class DWriteFont; class DWriteTextLayout : public DirectGraphResource, @@ -52,4 +52,4 @@ class DWriteTextLayout : public DirectGraphResource, float max_height_ = std::numeric_limits<float>::max(); Microsoft::WRL::ComPtr<IDWriteTextLayout> text_layout_; }; -} // namespace cru::platform::graph::win::direct +} // namespace cru::platform::graphics::win::direct diff --git a/include/cru/win/graph/direct/WindowPainter.hpp b/include/cru/win/graphics/direct/WindowPainter.hpp index 53961586..b5faf7b5 100644 --- a/include/cru/win/graph/direct/WindowPainter.hpp +++ b/include/cru/win/graphics/direct/WindowPainter.hpp @@ -2,8 +2,8 @@ #include "Painter.hpp" #include "WindowRenderTarget.hpp" -namespace cru::platform::graph::win::direct { -class D2DWindowPainter : public graph::win::direct::D2DPainter { +namespace cru::platform::graphics::win::direct { +class D2DWindowPainter : public graphics::win::direct::D2DPainter { public: explicit D2DWindowPainter(D2DWindowRenderTarget* window); @@ -18,4 +18,4 @@ class D2DWindowPainter : public graph::win::direct::D2DPainter { private: D2DWindowRenderTarget* render_target_; }; -} // namespace cru::platform::graph::win::direct +} // namespace cru::platform::graphics::win::direct diff --git a/include/cru/win/graph/direct/WindowRenderTarget.hpp b/include/cru/win/graphics/direct/WindowRenderTarget.hpp index c9ee098f..75b1bf20 100644 --- a/include/cru/win/graph/direct/WindowRenderTarget.hpp +++ b/include/cru/win/graphics/direct/WindowRenderTarget.hpp @@ -1,7 +1,7 @@ #pragma once #include "Factory.hpp" -namespace cru::platform::graph::win::direct { +namespace cru::platform::graphics::win::direct { // Represents a window render target. class D2DWindowRenderTarget : public Object { public: @@ -13,7 +13,7 @@ class D2DWindowRenderTarget : public Object { ~D2DWindowRenderTarget() override = default; public: - graph::win::direct::DirectGraphFactory* GetDirectFactory() const { + graphics::win::direct::DirectGraphFactory* GetDirectFactory() const { return factory_; } @@ -39,4 +39,4 @@ class D2DWindowRenderTarget : public Object { Microsoft::WRL::ComPtr<IDXGISwapChain1> dxgi_swap_chain_; Microsoft::WRL::ComPtr<ID2D1Bitmap1> target_bitmap_; }; -} // namespace cru::platform::graph::win::direct +} // namespace cru::platform::graphics::win::direct diff --git a/include/cru/win/native/Base.hpp b/include/cru/win/gui/Base.hpp index 881dd8b1..00782663 100644 --- a/include/cru/win/native/Base.hpp +++ b/include/cru/win/gui/Base.hpp @@ -3,7 +3,7 @@ #include "cru/common/Base.hpp" -namespace cru::platform::native::win { +namespace cru::platform::gui::win { class GodWindow; class TimerManager; class WinCursor; @@ -13,4 +13,4 @@ class WindowManager; class WinNativeWindow; class WinUiApplication; class WinInputMethodContext; -} // namespace cru::platform::native::win +} // namespace cru::platform::gui::win diff --git a/include/cru/win/native/Cursor.hpp b/include/cru/win/gui/Cursor.hpp index 373b9170..cd13ded7 100644 --- a/include/cru/win/native/Cursor.hpp +++ b/include/cru/win/gui/Cursor.hpp @@ -1,13 +1,13 @@ #pragma once #include "Resource.hpp" -#include "cru/platform/native/Cursor.hpp" +#include "cru/platform/gui/Cursor.hpp" #include <memory> -namespace cru::platform::native::win { +namespace cru::platform::gui::win { class WinCursor : public WinNativeResource, public virtual ICursor { - CRU_DEFINE_CLASS_LOG_TAG(u"cru::platform::native::win::WinCursor") + CRU_DEFINE_CLASS_LOG_TAG(u"cru::platform::gui::win::WinCursor") public: WinCursor(HCURSOR handle, bool auto_destroy); @@ -46,4 +46,4 @@ class WinCursorManager : public WinNativeResource, std::shared_ptr<WinCursor> sys_arrow_; std::shared_ptr<WinCursor> sys_hand_; }; -} // namespace cru::platform::native::win +} // namespace cru::platform::gui::win diff --git a/include/cru/win/native/Exception.hpp b/include/cru/win/gui/Exception.hpp index 6a5265c1..895e6c14 100644 --- a/include/cru/win/native/Exception.hpp +++ b/include/cru/win/gui/Exception.hpp @@ -1,7 +1,7 @@ #pragma once #include "../Exception.hpp" -namespace cru::platform::native::win { +namespace cru::platform::gui::win { using platform::win::Win32Error; using platform::win::HResultError; -} // namespace cru::platform::native::win +} // namespace cru::platform::gui::win diff --git a/include/cru/win/native/GodWindow.hpp b/include/cru/win/gui/GodWindow.hpp index 93d1acad..0343b159 100644 --- a/include/cru/win/native/GodWindow.hpp +++ b/include/cru/win/gui/GodWindow.hpp @@ -6,9 +6,9 @@ #include <memory> -namespace cru::platform::native::win { +namespace cru::platform::gui::win { class GodWindow : public Object { - CRU_DEFINE_CLASS_LOG_TAG(u"cru::platform::native::win::GodWindow") + CRU_DEFINE_CLASS_LOG_TAG(u"cru::platform::gui::win::GodWindow") public: explicit GodWindow(WinUiApplication* application); @@ -35,4 +35,4 @@ class GodWindow : public Object { Event<WindowNativeMessageEventArgs&> message_event_; }; -} // namespace cru::platform::native::win +} // namespace cru::platform::gui::win diff --git a/include/cru/win/native/InputMethod.hpp b/include/cru/win/gui/InputMethod.hpp index f3dc15c0..51a007d8 100644 --- a/include/cru/win/native/InputMethod.hpp +++ b/include/cru/win/gui/InputMethod.hpp @@ -6,13 +6,13 @@ #include "Resource.hpp" #include "WindowNativeMessageEventArgs.hpp" -#include "cru/platform/native/InputMethod.hpp" +#include "cru/platform/gui/InputMethod.hpp" #include <imm.h> -namespace cru::platform::native::win { +namespace cru::platform::gui::win { class AutoHIMC : public Object { - CRU_DEFINE_CLASS_LOG_TAG(u"cru::platform::native::win::AutoHIMC") + CRU_DEFINE_CLASS_LOG_TAG(u"cru::platform::gui::win::AutoHIMC") public: explicit AutoHIMC(HWND hwnd); @@ -35,7 +35,7 @@ class AutoHIMC : public Object { class WinInputMethodContext : public WinNativeResource, public virtual IInputMethodContext { - CRU_DEFINE_CLASS_LOG_TAG(u"cru::platform::native::win::WinInputMethodContext") + CRU_DEFINE_CLASS_LOG_TAG(u"cru::platform::gui::win::WinInputMethodContext") public: WinInputMethodContext(gsl::not_null<WinNativeWindow*> window); @@ -84,4 +84,4 @@ class WinInputMethodContext : public WinNativeResource, Event<std::nullptr_t> composition_event_; Event<std::u16string_view> text_event_; }; -} // namespace cru::platform::native::win +} // namespace cru::platform::gui::win diff --git a/include/cru/win/gui/Keyboard.hpp b/include/cru/win/gui/Keyboard.hpp new file mode 100644 index 00000000..5b98833c --- /dev/null +++ b/include/cru/win/gui/Keyboard.hpp @@ -0,0 +1,9 @@ +#pragma once +#include "Base.hpp" + +#include "cru/platform/gui/Keyboard.hpp" + +namespace cru::platform::gui::win { +KeyCode VirtualKeyToKeyCode(int virtual_key); +KeyModifier RetrieveKeyMofifier(); +} // namespace cru::platform::gui::win diff --git a/include/cru/win/native/Resource.hpp b/include/cru/win/gui/Resource.hpp index 0de0e1a8..1f6f0a4a 100644 --- a/include/cru/win/native/Resource.hpp +++ b/include/cru/win/gui/Resource.hpp @@ -3,7 +3,7 @@ #include "cru/platform/Resource.hpp" -namespace cru::platform::native::win { +namespace cru::platform::gui::win { class WinNativeResource : public Object, public virtual INativeResource { public: static constexpr std::u16string_view k_platform_id = u"Windows"; @@ -20,4 +20,4 @@ class WinNativeResource : public Object, public virtual INativeResource { public: std::u16string_view GetPlatformId() const final { return k_platform_id; } }; -} // namespace cru::platform::native::win +} // namespace cru::platform::gui::win diff --git a/include/cru/win/native/UiApplication.hpp b/include/cru/win/gui/UiApplication.hpp index 170be532..0f733cd4 100644 --- a/include/cru/win/native/UiApplication.hpp +++ b/include/cru/win/gui/UiApplication.hpp @@ -1,16 +1,16 @@ #pragma once #include "Resource.hpp" -#include "cru/platform/native/Base.hpp" -#include "cru/platform/native/UiApplication.hpp" +#include "cru/platform/gui/Base.hpp" +#include "cru/platform/gui/UiApplication.hpp" #include <memory> -namespace cru::platform::graph::win::direct { +namespace cru::platform::graphics::win::direct { class DirectGraphFactory; } -namespace cru::platform::native::win { +namespace cru::platform::gui::win { class WinUiApplication : public WinNativeResource, public virtual IUiApplication { public: @@ -43,9 +43,9 @@ class WinUiApplication : public WinNativeResource, std::vector<INativeWindow*> GetAllWindow() override; INativeWindow* CreateWindow(INativeWindow* parent) override; - cru::platform::graph::IGraphFactory* GetGraphFactory() override; + cru::platform::graphics::IGraphFactory* GetGraphFactory() override; - cru::platform::graph::win::direct::DirectGraphFactory* GetDirectFactory() { + cru::platform::graphics::win::direct::DirectGraphFactory* GetDirectFactory() { return graph_factory_.get(); } @@ -60,7 +60,7 @@ class WinUiApplication : public WinNativeResource, private: HINSTANCE instance_handle_; - std::unique_ptr<cru::platform::graph::win::direct::DirectGraphFactory> + std::unique_ptr<cru::platform::graphics::win::direct::DirectGraphFactory> graph_factory_; std::unique_ptr<GodWindow> god_window_; @@ -71,4 +71,4 @@ class WinUiApplication : public WinNativeResource, std::vector<std::function<void()>> quit_handlers_; }; -} // namespace cru::platform::native::win +} // namespace cru::platform::gui::win diff --git a/include/cru/win/native/Window.hpp b/include/cru/win/gui/Window.hpp index 6bf71601..3ba9ef68 100644 --- a/include/cru/win/native/Window.hpp +++ b/include/cru/win/gui/Window.hpp @@ -3,15 +3,15 @@ #include "WindowNativeMessageEventArgs.hpp" #include "cru/platform/GraphBase.hpp" -#include "cru/platform/native/Base.hpp" -#include "cru/platform/native/Window.hpp" -#include "cru/win/graph/direct/WindowRenderTarget.hpp" +#include "cru/platform/gui/Base.hpp" +#include "cru/platform/gui/Window.hpp" +#include "cru/win/graphics/direct/WindowRenderTarget.hpp" #include <memory> -namespace cru::platform::native::win { +namespace cru::platform::gui::win { class WinNativeWindow : public WinNativeResource, public virtual INativeWindow { - CRU_DEFINE_CLASS_LOG_TAG(u"cru::platform::native::win::WinNativeWindow") + CRU_DEFINE_CLASS_LOG_TAG(u"cru::platform::gui::win::WinNativeWindow") public: WinNativeWindow(WinUiApplication* application, WindowClass* window_class, @@ -47,7 +47,7 @@ class WinNativeWindow : public WinNativeResource, public virtual INativeWindow { bool ReleaseMouse() override; void RequestRepaint() override; - std::unique_ptr<graph::IPainter> BeginPaint() override; + std::unique_ptr<graphics::IPainter> BeginPaint() override; void SetCursor(std::shared_ptr<ICursor> cursor) override; @@ -59,18 +59,18 @@ class WinNativeWindow : public WinNativeResource, public virtual INativeWindow { return &mouse_enter_leave_event_; } IEvent<Point>* MouseMoveEvent() override { return &mouse_move_event_; } - IEvent<platform::native::NativeMouseButtonEventArgs>* MouseDownEvent() + IEvent<platform::gui::NativeMouseButtonEventArgs>* MouseDownEvent() override { return &mouse_down_event_; } - IEvent<platform::native::NativeMouseButtonEventArgs>* MouseUpEvent() + IEvent<platform::gui::NativeMouseButtonEventArgs>* MouseUpEvent() override { return &mouse_up_event_; } - IEvent<platform::native::NativeKeyEventArgs>* KeyDownEvent() override { + IEvent<platform::gui::NativeKeyEventArgs>* KeyDownEvent() override { return &key_down_event_; } - IEvent<platform::native::NativeKeyEventArgs>* KeyUpEvent() override { + IEvent<platform::gui::NativeKeyEventArgs>* KeyUpEvent() override { return &key_up_event_; } @@ -86,7 +86,7 @@ class WinNativeWindow : public WinNativeResource, public virtual INativeWindow { bool HandleNativeWindowMessage(HWND hwnd, UINT msg, WPARAM w_param, LPARAM l_param, LRESULT* result); - graph::win::direct::D2DWindowRenderTarget* GetWindowRenderTarget() const { + graphics::win::direct::D2DWindowRenderTarget* GetWindowRenderTarget() const { return window_render_target_.get(); } @@ -127,8 +127,8 @@ class WinNativeWindow : public WinNativeResource, public virtual INativeWindow { void OnMouseMoveInternal(POINT point); void OnMouseLeaveInternal(); - void OnMouseDownInternal(platform::native::MouseButton button, POINT point); - void OnMouseUpInternal(platform::native::MouseButton button, POINT point); + void OnMouseDownInternal(platform::gui::MouseButton button, POINT point); + void OnMouseUpInternal(platform::gui::MouseButton button, POINT point); void OnMouseWheelInternal(short delta, POINT point); void OnKeyDownInternal(int virtual_code); @@ -155,7 +155,7 @@ class WinNativeWindow : public WinNativeResource, public virtual INativeWindow { bool has_focus_ = false; bool is_mouse_in_ = false; - std::unique_ptr<graph::win::direct::D2DWindowRenderTarget> + std::unique_ptr<graphics::win::direct::D2DWindowRenderTarget> window_render_target_; std::shared_ptr<WinCursor> cursor_; @@ -168,11 +168,11 @@ class WinNativeWindow : public WinNativeResource, public virtual INativeWindow { Event<FocusChangeType> focus_event_; Event<MouseEnterLeaveType> mouse_enter_leave_event_; Event<Point> mouse_move_event_; - Event<platform::native::NativeMouseButtonEventArgs> mouse_down_event_; - Event<platform::native::NativeMouseButtonEventArgs> mouse_up_event_; - Event<platform::native::NativeKeyEventArgs> key_down_event_; - Event<platform::native::NativeKeyEventArgs> key_up_event_; + Event<platform::gui::NativeMouseButtonEventArgs> mouse_down_event_; + Event<platform::gui::NativeMouseButtonEventArgs> mouse_up_event_; + Event<platform::gui::NativeKeyEventArgs> key_down_event_; + Event<platform::gui::NativeKeyEventArgs> key_up_event_; Event<WindowNativeMessageEventArgs&> native_message_event_; }; -} // namespace cru::platform::native::win +} // namespace cru::platform::gui::win diff --git a/include/cru/win/native/WindowClass.hpp b/include/cru/win/gui/WindowClass.hpp index fdd55065..2c07b68f 100644 --- a/include/cru/win/native/WindowClass.hpp +++ b/include/cru/win/gui/WindowClass.hpp @@ -3,7 +3,7 @@ #include <string> -namespace cru::platform::native::win { +namespace cru::platform::gui::win { class WindowClass : public Object { public: WindowClass(std::wstring name, WNDPROC window_proc, HINSTANCE h_instance); @@ -21,4 +21,4 @@ class WindowClass : public Object { std::wstring name_; ATOM atom_; }; -} // namespace cru::platform::native::win +} // namespace cru::platform::gui::win diff --git a/include/cru/win/native/WindowNativeMessageEventArgs.hpp b/include/cru/win/gui/WindowNativeMessageEventArgs.hpp index 84a7a123..834ba3c2 100644 --- a/include/cru/win/native/WindowNativeMessageEventArgs.hpp +++ b/include/cru/win/gui/WindowNativeMessageEventArgs.hpp @@ -3,7 +3,7 @@ #include "cru/common/Base.hpp" -namespace cru::platform::native::win { +namespace cru::platform::gui::win { struct WindowNativeMessage { HWND hwnd; UINT msg; @@ -37,4 +37,4 @@ class WindowNativeMessageEventArgs : public Object { LRESULT result_; bool handled_ = false; }; -} // namespace cru::platform::native::win +} // namespace cru::platform::gui::win diff --git a/include/cru/win/native/Keyboard.hpp b/include/cru/win/native/Keyboard.hpp deleted file mode 100644 index 790e0015..00000000 --- a/include/cru/win/native/Keyboard.hpp +++ /dev/null @@ -1,9 +0,0 @@ -#pragma once -#include "Base.hpp" - -#include "cru/platform/native/Keyboard.hpp" - -namespace cru::platform::native::win { -KeyCode VirtualKeyToKeyCode(int virtual_key); -KeyModifier RetrieveKeyMofifier(); -} // namespace cru::platform::native::win diff --git a/src/platform/CMakeLists.txt b/src/platform/CMakeLists.txt index 51253b56..623ec08f 100644 --- a/src/platform/CMakeLists.txt +++ b/src/platform/CMakeLists.txt @@ -10,5 +10,5 @@ target_sources(cru_platform_base INTERFACE ) target_link_libraries(cru_platform_base INTERFACE cru_base) -add_subdirectory(graph) -add_subdirectory(native) +add_subdirectory(graphics) +add_subdirectory(gui) diff --git a/src/platform/graph/CMakeLists.txt b/src/platform/graph/CMakeLists.txt deleted file mode 100644 index 3bf11e8d..00000000 --- a/src/platform/graph/CMakeLists.txt +++ /dev/null @@ -1,14 +0,0 @@ -set(CRU_PLATFORM_GRAPH_INCLUDE_DIR ${CRU_INCLUDE_DIR}/cru/platform/graph) -add_library(cru_platform_graph INTERFACE) -target_sources(cru_platform_graph INTERFACE - ${CRU_PLATFORM_GRAPH_INCLUDE_DIR}/Base.hpp - ${CRU_PLATFORM_GRAPH_INCLUDE_DIR}/Brush.hpp - ${CRU_PLATFORM_GRAPH_INCLUDE_DIR}/Font.hpp - ${CRU_PLATFORM_GRAPH_INCLUDE_DIR}/Geometry.hpp - ${CRU_PLATFORM_GRAPH_INCLUDE_DIR}/Factory.hpp - ${CRU_PLATFORM_GRAPH_INCLUDE_DIR}/Resource.hpp - ${CRU_PLATFORM_GRAPH_INCLUDE_DIR}/Painter.hpp - ${CRU_PLATFORM_GRAPH_INCLUDE_DIR}/TextLayout.hpp - ${CRU_PLATFORM_GRAPH_INCLUDE_DIR}/util/Painter.hpp -) -target_link_libraries(cru_platform_graph INTERFACE cru_platform_base) diff --git a/src/platform/graphics/CMakeLists.txt b/src/platform/graphics/CMakeLists.txt new file mode 100644 index 00000000..5f841267 --- /dev/null +++ b/src/platform/graphics/CMakeLists.txt @@ -0,0 +1,14 @@ +set(CRU_PLATFORM_GRAPHICS_INCLUDE_DIR ${CRU_INCLUDE_DIR}/cru/platform/graphics) +add_library(cru_platform_graphics INTERFACE) +target_sources(cru_platform_graphics INTERFACE + ${CRU_PLATFORM_GRAPHICS_INCLUDE_DIR}/Base.hpp + ${CRU_PLATFORM_GRAPHICS_INCLUDE_DIR}/Brush.hpp + ${CRU_PLATFORM_GRAPHICS_INCLUDE_DIR}/Font.hpp + ${CRU_PLATFORM_GRAPHICS_INCLUDE_DIR}/Geometry.hpp + ${CRU_PLATFORM_GRAPHICS_INCLUDE_DIR}/Factory.hpp + ${CRU_PLATFORM_GRAPHICS_INCLUDE_DIR}/Resource.hpp + ${CRU_PLATFORM_GRAPHICS_INCLUDE_DIR}/Painter.hpp + ${CRU_PLATFORM_GRAPHICS_INCLUDE_DIR}/TextLayout.hpp + ${CRU_PLATFORM_GRAPHICS_INCLUDE_DIR}/util/Painter.hpp +) +target_link_libraries(cru_platform_graphics INTERFACE cru_platform_base) diff --git a/src/platform/gui/CMakeLists.txt b/src/platform/gui/CMakeLists.txt new file mode 100644 index 00000000..aca7620c --- /dev/null +++ b/src/platform/gui/CMakeLists.txt @@ -0,0 +1,14 @@ +set(CRU_PLATFORM_GUI_INCLUDE_DIR ${CRU_INCLUDE_DIR}/cru/platform/gui) +add_library(cru_platform_gui STATIC + Keyboard.cpp + UiApplication.cpp +) +target_sources(cru_platform_gui PUBLIC + ${CRU_PLATFORM_GUI_INCLUDE_DIR}/Base.hpp + ${CRU_PLATFORM_GUI_INCLUDE_DIR}/Cursor.hpp + ${CRU_PLATFORM_GUI_INCLUDE_DIR}/InputMethod.hpp + ${CRU_PLATFORM_GUI_INCLUDE_DIR}/Keyboard.hpp + ${CRU_PLATFORM_GUI_INCLUDE_DIR}/Window.hpp + ${CRU_PLATFORM_GUI_INCLUDE_DIR}/UiApplication.hpp +) +target_link_libraries(cru_platform_gui PUBLIC cru_platform_graphics) diff --git a/src/platform/native/Keyboard.cpp b/src/platform/gui/Keyboard.cpp index dd0e8f23..24880e00 100644 --- a/src/platform/native/Keyboard.cpp +++ b/src/platform/gui/Keyboard.cpp @@ -1,10 +1,10 @@ -#include "cru/platform/native/Keyboard.hpp" +#include "cru/platform/gui/Keyboard.hpp" #include <array> #include <string> #include <string_view> -namespace cru::platform::native { +namespace cru::platform::gui { constexpr std::array<std::u16string_view, static_cast<int>(KeyCode::NumPad9) + 1> key_code_string_list{u"Unknown", @@ -139,4 +139,4 @@ std::u16string ToString(KeyModifier key_modifier, return result; } -} // namespace cru::platform::native +} // namespace cru::platform::gui diff --git a/src/platform/native/UiApplication.cpp b/src/platform/gui/UiApplication.cpp index 200b10e0..f095361e 100644 --- a/src/platform/native/UiApplication.cpp +++ b/src/platform/gui/UiApplication.cpp @@ -1,6 +1,6 @@ -#include "cru/platform/native/UiApplication.hpp" +#include "cru/platform/gui/UiApplication.hpp" -namespace cru::platform::native { +namespace cru::platform::gui { IUiApplication* IUiApplication::instance = nullptr; IUiApplication::IUiApplication() { @@ -12,4 +12,4 @@ IUiApplication::IUiApplication() { } IUiApplication::~IUiApplication() { instance = nullptr; } -} // namespace cru::platform::native +} // namespace cru::platform::gui diff --git a/src/platform/native/CMakeLists.txt b/src/platform/native/CMakeLists.txt deleted file mode 100644 index 3fe4370a..00000000 --- a/src/platform/native/CMakeLists.txt +++ /dev/null @@ -1,14 +0,0 @@ -set(CRU_PLATFORM_NATIVE_INCLUDE_DIR ${CRU_INCLUDE_DIR}/cru/platform/native) -add_library(cru_platform_native STATIC - Keyboard.cpp - UiApplication.cpp -) -target_sources(cru_platform_native PUBLIC - ${CRU_PLATFORM_NATIVE_INCLUDE_DIR}/Base.hpp - ${CRU_PLATFORM_NATIVE_INCLUDE_DIR}/Cursor.hpp - ${CRU_PLATFORM_NATIVE_INCLUDE_DIR}/InputMethod.hpp - ${CRU_PLATFORM_NATIVE_INCLUDE_DIR}/Keyboard.hpp - ${CRU_PLATFORM_NATIVE_INCLUDE_DIR}/Window.hpp - ${CRU_PLATFORM_NATIVE_INCLUDE_DIR}/UiApplication.hpp -) -target_link_libraries(cru_platform_native PUBLIC cru_platform_graph) diff --git a/src/ui/CMakeLists.txt b/src/ui/CMakeLists.txt index 045fea24..45f64c88 100644 --- a/src/ui/CMakeLists.txt +++ b/src/ui/CMakeLists.txt @@ -63,4 +63,4 @@ target_sources(cru_ui PUBLIC ${CRU_UI_INCLUDE_DIR}/render/StackLayoutRenderObject.hpp ${CRU_UI_INCLUDE_DIR}/render/TextRenderObject.hpp ) -target_link_libraries(cru_ui PUBLIC cru_platform_native) +target_link_libraries(cru_ui PUBLIC cru_platform_gui) diff --git a/src/ui/Control.cpp b/src/ui/Control.cpp index 13b1c780..cae48c66 100644 --- a/src/ui/Control.cpp +++ b/src/ui/Control.cpp @@ -2,8 +2,8 @@ #include "RoutedEventDispatch.hpp" #include "cru/common/Base.hpp" -#include "cru/platform/native/Cursor.hpp" -#include "cru/platform/native/UiApplication.hpp" +#include "cru/platform/gui/Cursor.hpp" +#include "cru/platform/gui/UiApplication.hpp" #include "cru/ui/Base.hpp" #include "cru/ui/WindowHost.hpp" #include "cru/ui/render/RenderObject.hpp" @@ -11,9 +11,9 @@ #include <memory> namespace cru::ui { -using platform::native::ICursor; -using platform::native::IUiApplication; -using platform::native::SystemCursorType; +using platform::gui::ICursor; +using platform::gui::IUiApplication; +using platform::gui::SystemCursorType; Control::Control() { MouseEnterEvent()->Direct()->AddHandler([this](event::MouseEventArgs&) { diff --git a/src/ui/Helper.cpp b/src/ui/Helper.cpp index 6f67e701..88ead993 100644 --- a/src/ui/Helper.cpp +++ b/src/ui/Helper.cpp @@ -1,11 +1,11 @@ #include "Helper.hpp" -#include "cru/platform/graph/Factory.hpp" -#include "cru/platform/native/UiApplication.hpp" +#include "cru/platform/graphics/Factory.hpp" +#include "cru/platform/gui/UiApplication.hpp" namespace cru::ui { -using cru::platform::graph::IGraphFactory; -using cru::platform::native::IUiApplication; +using cru::platform::graphics::IGraphFactory; +using cru::platform::gui::IUiApplication; IGraphFactory* GetGraphFactory() { return IUiApplication::GetInstance()->GetGraphFactory(); diff --git a/src/ui/Helper.hpp b/src/ui/Helper.hpp index 6923852f..327f91ff 100644 --- a/src/ui/Helper.hpp +++ b/src/ui/Helper.hpp @@ -12,6 +12,6 @@ struct IUiApplication; } // namespace cru::platform namespace cru::ui { -cru::platform::graph::IGraphFactory* GetGraphFactory(); -cru::platform::native::IUiApplication* GetUiApplication(); +cru::platform::graphics::IGraphFactory* GetGraphFactory(); +cru::platform::gui::IUiApplication* GetUiApplication(); } // namespace cru::ui diff --git a/src/ui/UiManager.cpp b/src/ui/UiManager.cpp index 8a2029b9..62995f86 100644 --- a/src/ui/UiManager.cpp +++ b/src/ui/UiManager.cpp @@ -1,13 +1,13 @@ #include "cru/ui/UiManager.hpp" #include "Helper.hpp" -#include "cru/platform/graph/Brush.hpp" -#include "cru/platform/graph/Factory.hpp" -#include "cru/platform/graph/Font.hpp" -#include "cru/platform/native/UiApplication.hpp" +#include "cru/platform/graphics/Brush.hpp" +#include "cru/platform/graphics/Factory.hpp" +#include "cru/platform/graphics/Font.hpp" +#include "cru/platform/gui/UiApplication.hpp" namespace cru::ui { -using namespace cru::platform::graph; +using namespace cru::platform::graphics; namespace { std::unique_ptr<ISolidColorBrush> CreateSolidColorBrush(IGraphFactory* factory, @@ -35,7 +35,7 @@ UiManager::UiManager() { theme_resource_.default_font = factory->CreateFont(theme_resource_.default_font_family, 24.0f); - const auto black_brush = std::shared_ptr<platform::graph::ISolidColorBrush>( + const auto black_brush = std::shared_ptr<platform::graphics::ISolidColorBrush>( CreateSolidColorBrush(factory, colors::black)); theme_resource_.text_brush = black_brush; theme_resource_.text_selection_brush = diff --git a/src/ui/WindowHost.cpp b/src/ui/WindowHost.cpp index 8c61d27d..4b32467b 100644 --- a/src/ui/WindowHost.cpp +++ b/src/ui/WindowHost.cpp @@ -2,10 +2,10 @@ #include "RoutedEventDispatch.hpp" #include "cru/common/Logger.hpp" -#include "cru/platform/graph/Painter.hpp" -#include "cru/platform/native/InputMethod.hpp" -#include "cru/platform/native/UiApplication.hpp" -#include "cru/platform/native/Window.hpp" +#include "cru/platform/graphics/Painter.hpp" +#include "cru/platform/gui/InputMethod.hpp" +#include "cru/platform/gui/UiApplication.hpp" +#include "cru/platform/gui/Window.hpp" #include "cru/ui/DebugFlags.hpp" #include "cru/ui/Window.hpp" #include "cru/ui/render/MeasureRequirement.hpp" @@ -14,8 +14,8 @@ #include <cstddef> namespace cru::ui { -using platform::native::INativeWindow; -using platform::native::IUiApplication; +using platform::gui::INativeWindow; +using platform::gui::IUiApplication; namespace event_names { #ifdef CRU_DEBUG @@ -149,7 +149,7 @@ void WindowHost::InvalidateLayout() { if constexpr (debug_flags::layout) log::TagDebug(log_tag, u"A relayout is requested."); if (!need_layout_) { - platform::native::IUiApplication::GetInstance()->SetImmediate([this] { + platform::gui::IUiApplication::GetInstance()->SetImmediate([this] { Relayout(); need_layout_ = false; InvalidatePaint(); @@ -272,10 +272,10 @@ void WindowHost::OnNativeResize(INativeWindow* window, const Size& size) { } void WindowHost::OnNativeFocus(INativeWindow* window, - platform::native::FocusChangeType focus) { + platform::gui::FocusChangeType focus) { CRU_UNUSED(window) - focus == platform::native::FocusChangeType::Gain + focus == platform::gui::FocusChangeType::Gain ? DispatchEvent(event_names::GainFocus, focus_control_, &Control::GainFocusEvent, nullptr, true) : DispatchEvent(event_names::LoseFocus, focus_control_, @@ -283,10 +283,10 @@ void WindowHost::OnNativeFocus(INativeWindow* window, } void WindowHost::OnNativeMouseEnterLeave( - INativeWindow* window, platform::native::MouseEnterLeaveType type) { + INativeWindow* window, platform::gui::MouseEnterLeaveType type) { CRU_UNUSED(window) - if (type == platform::native::MouseEnterLeaveType::Leave) { + if (type == platform::gui::MouseEnterLeaveType::Leave) { DispatchEvent(event_names::MouseLeave, mouse_hover_control_, &Control::MouseLeaveEvent, nullptr); mouse_hover_control_ = nullptr; @@ -328,7 +328,7 @@ void WindowHost::OnNativeMouseMove(INativeWindow* window, const Point& point) { void WindowHost::OnNativeMouseDown( INativeWindow* window, - const platform::native::NativeMouseButtonEventArgs& args) { + const platform::gui::NativeMouseButtonEventArgs& args) { CRU_UNUSED(window) Control* control = @@ -339,7 +339,7 @@ void WindowHost::OnNativeMouseDown( void WindowHost::OnNativeMouseUp( INativeWindow* window, - const platform::native::NativeMouseButtonEventArgs& args) { + const platform::gui::NativeMouseButtonEventArgs& args) { CRU_UNUSED(window) Control* control = @@ -349,7 +349,7 @@ void WindowHost::OnNativeMouseUp( } void WindowHost::OnNativeKeyDown( - INativeWindow* window, const platform::native::NativeKeyEventArgs& args) { + INativeWindow* window, const platform::gui::NativeKeyEventArgs& args) { CRU_UNUSED(window) DispatchEvent(event_names::KeyDown, focus_control_, &Control::KeyDownEvent, @@ -357,7 +357,7 @@ void WindowHost::OnNativeKeyDown( } void WindowHost::OnNativeKeyUp( - INativeWindow* window, const platform::native::NativeKeyEventArgs& args) { + INativeWindow* window, const platform::gui::NativeKeyEventArgs& args) { CRU_UNUSED(window) DispatchEvent(event_names::KeyUp, focus_control_, &Control::KeyUpEvent, diff --git a/src/ui/controls/Button.cpp b/src/ui/controls/Button.cpp index 6f6af878..5f7ed143 100644 --- a/src/ui/controls/Button.cpp +++ b/src/ui/controls/Button.cpp @@ -2,15 +2,15 @@ #include <memory> #include "../Helper.hpp" -#include "cru/platform/graph/Brush.hpp" -#include "cru/platform/native/Cursor.hpp" -#include "cru/platform/native/UiApplication.hpp" +#include "cru/platform/graphics/Brush.hpp" +#include "cru/platform/gui/Cursor.hpp" +#include "cru/platform/gui/UiApplication.hpp" #include "cru/ui/render/BorderRenderObject.hpp" #include "cru/ui/UiManager.hpp" #include "cru/ui/Window.hpp" namespace cru::ui::controls { -using cru::platform::native::SystemCursorType; +using cru::platform::gui::SystemCursorType; namespace { void Set(render::BorderRenderObject* o, const ButtonStateStyle& s) { @@ -21,7 +21,7 @@ void Set(render::BorderRenderObject* o, const ButtonStateStyle& s) { o->SetBackgroundBrush(s.background_brush); } -std::shared_ptr<platform::native::ICursor> GetSystemCursor( +std::shared_ptr<platform::gui::ICursor> GetSystemCursor( SystemCursorType type) { return GetUiApplication()->GetCursorManager()->GetSystemCursor(type); } diff --git a/src/ui/controls/Container.cpp b/src/ui/controls/Container.cpp index de58ee64..8b15c566 100644 --- a/src/ui/controls/Container.cpp +++ b/src/ui/controls/Container.cpp @@ -1,6 +1,6 @@ #include "cru/ui/controls/Container.hpp" -#include "cru/platform/graph/Factory.hpp" +#include "cru/platform/graphics/Factory.hpp" #include "cru/ui/render/BorderRenderObject.hpp" namespace cru::ui::controls { diff --git a/src/ui/controls/TextControlService.hpp b/src/ui/controls/TextControlService.hpp index 3c082bad..8ad87416 100644 --- a/src/ui/controls/TextControlService.hpp +++ b/src/ui/controls/TextControlService.hpp @@ -2,11 +2,11 @@ #include "../Helper.hpp" #include "cru/common/Logger.hpp" #include "cru/common/StringUtil.hpp" -#include "cru/platform/graph/Font.hpp" -#include "cru/platform/graph/Painter.hpp" -#include "cru/platform/native/InputMethod.hpp" -#include "cru/platform/native/UiApplication.hpp" -#include "cru/platform/native/Window.hpp" +#include "cru/platform/graphics/Font.hpp" +#include "cru/platform/graphics/Painter.hpp" +#include "cru/platform/gui/InputMethod.hpp" +#include "cru/platform/gui/UiApplication.hpp" +#include "cru/platform/gui/Window.hpp" #include "cru/ui/Base.hpp" #include "cru/ui/Control.hpp" #include "cru/ui/DebugFlags.hpp" @@ -135,10 +135,10 @@ class TextControlService : public Object { this->SyncTextRenderObject(); } - platform::native::IInputMethodContext* GetInputMethodContext() { + platform::gui::IInputMethodContext* GetInputMethodContext() { WindowHost* host = this->control_->GetWindowHost(); if (!host) return nullptr; - platform::native::INativeWindow* native_window = host->GetNativeWindow(); + platform::gui::INativeWindow* native_window = host->GetNativeWindow(); if (!native_window) return nullptr; return native_window->GetInputMethodContext(); } @@ -149,7 +149,7 @@ class TextControlService : public Object { input_method_context->CancelComposition(); } - std::optional<platform::native::CompositionText> GetCompositionInfo() { + std::optional<platform::gui::CompositionText> GetCompositionInfo() { auto input_method_context = GetInputMethodContext(); if (input_method_context == nullptr) return std::nullopt; auto composition_info = input_method_context->GetCompositionText(); @@ -360,8 +360,8 @@ class TextControlService : public Object { void KeyDownHandler(event::KeyEventArgs& args) { const auto key_code = args.GetKeyCode(); - using cru::platform::native::KeyCode; - using cru::platform::native::KeyModifiers; + using cru::platform::gui::KeyCode; + using cru::platform::gui::KeyModifiers; switch (key_code) { case KeyCode::Backspace: { @@ -469,7 +469,7 @@ class TextControlService : public Object { bool editable_ = false; bool caret_visible_ = false; - platform::native::TimerAutoCanceler caret_timer_canceler_; + platform::gui::TimerAutoCanceler caret_timer_canceler_; int caret_blink_duration_ = k_default_caret_blink_duration; ShortcutHub shortcut_hub_; diff --git a/src/ui/render/BorderRenderObject.cpp b/src/ui/render/BorderRenderObject.cpp index b7e1e709..8e16d8cb 100644 --- a/src/ui/render/BorderRenderObject.cpp +++ b/src/ui/render/BorderRenderObject.cpp @@ -2,9 +2,9 @@ #include "../Helper.hpp" #include "cru/common/Logger.hpp" -#include "cru/platform/graph/Factory.hpp" -#include "cru/platform/graph/Geometry.hpp" -#include "cru/platform/graph/util/Painter.hpp" +#include "cru/platform/graphics/Factory.hpp" +#include "cru/platform/graphics/Geometry.hpp" +#include "cru/platform/graphics/util/Painter.hpp" #include <algorithm> @@ -51,7 +51,7 @@ RenderObject* BorderRenderObject::HitTest(const Point& point) { } } -void BorderRenderObject::OnDrawCore(platform::graph::IPainter* painter) { +void BorderRenderObject::OnDrawCore(platform::graphics::IPainter* painter) { if (background_brush_ != nullptr) painter->FillGeometry(border_inner_geometry_.get(), background_brush_.get()); @@ -235,7 +235,7 @@ void BorderRenderObject::RecreateGeometry() { r.left_bottom - Point{t.left, t.bottom}, r.right_bottom - Point{t.right, t.bottom}); - auto f = [](platform::graph::IGeometryBuilder* builder, const Rect& rect, + auto f = [](platform::graphics::IGeometryBuilder* builder, const Rect& rect, const CornerRadius& corner) { builder->BeginFigure(Point(rect.left + corner.left_top.x, rect.top)); builder->LineTo(Point(rect.GetRight() - corner.right_top.x, rect.top)); @@ -263,7 +263,7 @@ void BorderRenderObject::RecreateGeometry() { size.width - margin.GetHorizontalTotal(), size.height - margin.GetVerticalTotal()}; const auto graph_factory = GetGraphFactory(); - std::unique_ptr<platform::graph::IGeometryBuilder> builder{ + std::unique_ptr<platform::graphics::IGeometryBuilder> builder{ graph_factory->CreateGeometryBuilder()}; f(builder.get(), outer_rect, outer_radius); border_outer_geometry_ = builder->Build(); diff --git a/src/ui/render/CanvasRenderObject.cpp b/src/ui/render/CanvasRenderObject.cpp index 967fdcec..bf1155e1 100644 --- a/src/ui/render/CanvasRenderObject.cpp +++ b/src/ui/render/CanvasRenderObject.cpp @@ -10,7 +10,7 @@ RenderObject* CanvasRenderObject::HitTest(const Point& point) { return padding_rect.IsPointInside(point) ? this : nullptr; } -void CanvasRenderObject::OnDrawContent(platform::graph::IPainter* painter) { +void CanvasRenderObject::OnDrawContent(platform::graphics::IPainter* painter) { const auto rect = GetContentRect(); CanvasPaintEventArgs args{painter, rect.GetSize()}; paint_event_.Raise(args); diff --git a/src/ui/render/FlexLayoutRenderObject.cpp b/src/ui/render/FlexLayoutRenderObject.cpp index 36a2dcea..b1ef69ee 100644 --- a/src/ui/render/FlexLayoutRenderObject.cpp +++ b/src/ui/render/FlexLayoutRenderObject.cpp @@ -1,7 +1,7 @@ #include "cru/ui/render/FlexLayoutRenderObject.hpp" #include "cru/common/Logger.hpp" -#include "cru/platform/graph/util/Painter.hpp" +#include "cru/platform/graphics/util/Painter.hpp" #include "cru/ui/render/LayoutHelper.hpp" #include <algorithm> diff --git a/src/ui/render/RenderObject.cpp b/src/ui/render/RenderObject.cpp index 57929a21..09410113 100644 --- a/src/ui/render/RenderObject.cpp +++ b/src/ui/render/RenderObject.cpp @@ -1,7 +1,7 @@ #include "cru/ui/render/RenderObject.hpp" #include "cru/common/Logger.hpp" -#include "cru/platform/graph/util/Painter.hpp" +#include "cru/platform/graphics/util/Painter.hpp" #include "cru/ui/DebugFlags.hpp" #include "cru/ui/WindowHost.hpp" @@ -103,7 +103,7 @@ void RenderObject::Layout(const Point& offset) { OnLayoutCore(); } -void RenderObject::Draw(platform::graph::IPainter* painter) { +void RenderObject::Draw(platform::graphics::IPainter* painter) { OnDrawCore(painter); } @@ -138,29 +138,29 @@ void RenderObject::OnRemoveChild(RenderObject* removed_child, Index position) { InvalidatePaint(); } -void RenderObject::DefaultDrawChildren(platform::graph::IPainter* painter) { +void RenderObject::DefaultDrawChildren(platform::graphics::IPainter* painter) { for (const auto child : GetChildren()) { auto offset = child->GetOffset(); - platform::graph::util::WithTransform( + platform::graphics::util::WithTransform( painter, platform::Matrix::Translation(offset.x, offset.y), [child](auto p) { child->Draw(p); }); } } -void RenderObject::DefaultDrawContent(platform::graph::IPainter* painter) { +void RenderObject::DefaultDrawContent(platform::graphics::IPainter* painter) { const auto content_rect = GetContentRect(); - platform::graph::util::WithTransform( + platform::graphics::util::WithTransform( painter, Matrix::Translation(content_rect.left, content_rect.top), [this](auto p) { this->OnDrawContent(p); }); } -void RenderObject::OnDrawCore(platform::graph::IPainter* painter) { +void RenderObject::OnDrawCore(platform::graphics::IPainter* painter) { DefaultDrawContent(painter); DefaultDrawChildren(painter); } -void RenderObject::OnDrawContent(platform::graph::IPainter* painter) { +void RenderObject::OnDrawContent(platform::graphics::IPainter* painter) { CRU_UNUSED(painter); } diff --git a/src/ui/render/ScrollRenderObject.cpp b/src/ui/render/ScrollRenderObject.cpp index 24ea351a..e621cd0c 100644 --- a/src/ui/render/ScrollRenderObject.cpp +++ b/src/ui/render/ScrollRenderObject.cpp @@ -1,7 +1,7 @@ #include "cru/ui/render/ScrollRenderObject.hpp" -#include "cru/platform/graph/Painter.hpp" -#include "cru/platform/graph/util/Painter.hpp" +#include "cru/platform/graphics/Painter.hpp" +#include "cru/platform/graphics/util/Painter.hpp" #include <algorithm> @@ -42,14 +42,14 @@ RenderObject* ScrollRenderObject::HitTest(const Point& point) { return rect.IsPointInside(point) ? this : nullptr; } // namespace cru::ui::render -void ScrollRenderObject::OnDrawCore(platform::graph::IPainter* painter) { +void ScrollRenderObject::OnDrawCore(platform::graphics::IPainter* painter) { DefaultDrawContent(painter); if (const auto child = GetSingleChild()) { painter->PushLayer(this->GetPaddingRect()); const auto offset = child->GetOffset(); - platform::graph::util::WithTransform( + platform::graphics::util::WithTransform( painter, Matrix::Translation(offset.x, offset.y), - [child](platform::graph::IPainter* p) { child->Draw(p); }); + [child](platform::graphics::IPainter* p) { child->Draw(p); }); painter->PopLayer(); } } diff --git a/src/ui/render/TextRenderObject.cpp b/src/ui/render/TextRenderObject.cpp index 466c5084..9faab622 100644 --- a/src/ui/render/TextRenderObject.cpp +++ b/src/ui/render/TextRenderObject.cpp @@ -2,19 +2,19 @@ #include "../Helper.hpp" #include "cru/common/Logger.hpp" -#include "cru/platform/graph/Factory.hpp" -#include "cru/platform/graph/TextLayout.hpp" -#include "cru/platform/graph/util/Painter.hpp" +#include "cru/platform/graphics/Factory.hpp" +#include "cru/platform/graphics/TextLayout.hpp" +#include "cru/platform/graphics/util/Painter.hpp" #include <algorithm> #include <limits> namespace cru::ui::render { TextRenderObject::TextRenderObject( - std::shared_ptr<platform::graph::IBrush> brush, - std::shared_ptr<platform::graph::IFont> font, - std::shared_ptr<platform::graph::IBrush> selection_brush, - std::shared_ptr<platform::graph::IBrush> caret_brush) { + std::shared_ptr<platform::graphics::IBrush> brush, + std::shared_ptr<platform::graphics::IFont> font, + std::shared_ptr<platform::graphics::IBrush> selection_brush, + std::shared_ptr<platform::graphics::IBrush> caret_brush) { Expects(brush); Expects(font); Expects(selection_brush); @@ -47,17 +47,17 @@ void TextRenderObject::SetText(std::u16string new_text) { } void TextRenderObject::SetBrush( - std::shared_ptr<platform::graph::IBrush> new_brush) { + std::shared_ptr<platform::graphics::IBrush> new_brush) { Expects(new_brush); new_brush.swap(brush_); InvalidatePaint(); } -std::shared_ptr<platform::graph::IFont> TextRenderObject::GetFont() const { +std::shared_ptr<platform::graphics::IFont> TextRenderObject::GetFont() const { return text_layout_->GetFont(); } -void TextRenderObject::SetFont(std::shared_ptr<platform::graph::IFont> font) { +void TextRenderObject::SetFont(std::shared_ptr<platform::graphics::IFont> font) { Expects(font); text_layout_->SetFont(std::move(font)); } @@ -70,7 +70,7 @@ Point TextRenderObject::TextSinglePoint(gsl::index position, bool trailing) { return text_layout_->TextSinglePoint(position, trailing); } -platform::graph::TextHitTestResult TextRenderObject::TextHitTest( +platform::graphics::TextHitTestResult TextRenderObject::TextHitTest( const Point& point) { return text_layout_->HitTest(point); } @@ -81,7 +81,7 @@ void TextRenderObject::SetSelectionRange(std::optional<TextRange> new_range) { } void TextRenderObject::SetSelectionBrush( - std::shared_ptr<platform::graph::IBrush> new_brush) { + std::shared_ptr<platform::graphics::IBrush> new_brush) { Expects(new_brush); new_brush.swap(selection_brush_); if (selection_range_ && selection_range_->count) { @@ -106,7 +106,7 @@ void TextRenderObject::SetCaretPosition(gsl::index position) { } void TextRenderObject::GetCaretBrush( - std::shared_ptr<platform::graph::IBrush> brush) { + std::shared_ptr<platform::graphics::IBrush> brush) { Expects(brush); brush.swap(caret_brush_); if (draw_caret_) { @@ -159,7 +159,7 @@ RenderObject* TextRenderObject::HitTest(const Point& point) { return padding_rect.IsPointInside(point) ? this : nullptr; } -void TextRenderObject::OnDrawContent(platform::graph::IPainter* painter) { +void TextRenderObject::OnDrawContent(platform::graphics::IPainter* painter) { if (this->selection_range_.has_value()) { const auto&& rects = text_layout_->TextRangeRect(this->selection_range_.value()); diff --git a/src/win/CMakeLists.txt b/src/win/CMakeLists.txt index 06f947a1..bf8de863 100644 --- a/src/win/CMakeLists.txt +++ b/src/win/CMakeLists.txt @@ -14,5 +14,5 @@ target_sources(cru_win_base PUBLIC target_compile_definitions(cru_win_base PUBLIC UNICODE _UNICODE) # use unicode target_link_libraries(cru_win_base PUBLIC cru_base) -add_subdirectory(graph) -add_subdirectory(native) +add_subdirectory(graphics) +add_subdirectory(gui) diff --git a/src/win/graph/direct/CMakeLists.txt b/src/win/graph/direct/CMakeLists.txt deleted file mode 100644 index 070b7b51..00000000 --- a/src/win/graph/direct/CMakeLists.txt +++ /dev/null @@ -1,29 +0,0 @@ -set(CRU_WIN_GRAPH_DIRECT_INCLUDE_DIR ${CRU_INCLUDE_DIR}/cru/win/graph/direct) - -add_library(cru_win_graph_direct STATIC - Brush.cpp - Font.cpp - Geometry.cpp - Factory.cpp - Painter.cpp - Resource.cpp - TextLayout.cpp - WindowPainter.cpp - WindowRenderTarget.cpp -) -target_sources(cru_win_graph_direct PUBLIC - ${CRU_WIN_GRAPH_DIRECT_INCLUDE_DIR}/Brush.hpp - ${CRU_WIN_GRAPH_DIRECT_INCLUDE_DIR}/ComResource.hpp - ${CRU_WIN_GRAPH_DIRECT_INCLUDE_DIR}/ConvertUtil.hpp - ${CRU_WIN_GRAPH_DIRECT_INCLUDE_DIR}/Exception.hpp - ${CRU_WIN_GRAPH_DIRECT_INCLUDE_DIR}/Font.hpp - ${CRU_WIN_GRAPH_DIRECT_INCLUDE_DIR}/Geometry.hpp - ${CRU_WIN_GRAPH_DIRECT_INCLUDE_DIR}/Factory.hpp - ${CRU_WIN_GRAPH_DIRECT_INCLUDE_DIR}/Painter.hpp - ${CRU_WIN_GRAPH_DIRECT_INCLUDE_DIR}/Resource.hpp - ${CRU_WIN_GRAPH_DIRECT_INCLUDE_DIR}/TextLayout.hpp - ${CRU_WIN_GRAPH_DIRECT_INCLUDE_DIR}/WindowPainter.hpp - ${CRU_WIN_GRAPH_DIRECT_INCLUDE_DIR}/WindowRenderTarget.hpp -) -target_link_libraries(cru_win_graph_direct PUBLIC D3D11 D2d1 DWrite) -target_link_libraries(cru_win_graph_direct PUBLIC cru_win_base cru_platform_graph) diff --git a/src/win/graph/direct/Resource.cpp b/src/win/graph/direct/Resource.cpp deleted file mode 100644 index 772bb74b..00000000 --- a/src/win/graph/direct/Resource.cpp +++ /dev/null @@ -1,12 +0,0 @@ -#include "cru/win/graph/direct/Resource.hpp" - -#include "cru/win/graph/direct/Factory.hpp" - -namespace cru::platform::graph::win::direct { -DirectGraphResource::DirectGraphResource(DirectGraphFactory* factory) - : factory_(factory) { - Expects(factory); -} - -IGraphFactory* DirectGraphResource::GetGraphFactory() { return factory_; } -} // namespace cru::platform::graph::win::direct diff --git a/src/win/graph/CMakeLists.txt b/src/win/graphics/CMakeLists.txt index c90537ac..c90537ac 100644 --- a/src/win/graph/CMakeLists.txt +++ b/src/win/graphics/CMakeLists.txt diff --git a/src/win/graph/direct/Brush.cpp b/src/win/graphics/direct/Brush.cpp index 2b9d4ac3..b7842b97 100644 --- a/src/win/graph/direct/Brush.cpp +++ b/src/win/graphics/direct/Brush.cpp @@ -1,10 +1,10 @@ -#include "cru/win/graph/direct/Brush.hpp" +#include "cru/win/graphics/direct/Brush.hpp" -#include "cru/win/graph/direct/ConvertUtil.hpp" -#include "cru/win/graph/direct/Exception.hpp" -#include "cru/win/graph/direct/Factory.hpp" +#include "cru/win/graphics/direct/ConvertUtil.hpp" +#include "cru/win/graphics/direct/Exception.hpp" +#include "cru/win/graphics/direct/Factory.hpp" -namespace cru::platform::graph::win::direct { +namespace cru::platform::graphics::win::direct { D2DSolidColorBrush::D2DSolidColorBrush(DirectGraphFactory* factory) : DirectGraphResource(factory) { ThrowIfFailed(factory->GetDefaultD2D1DeviceContext()->CreateSolidColorBrush( @@ -14,4 +14,4 @@ D2DSolidColorBrush::D2DSolidColorBrush(DirectGraphFactory* factory) void D2DSolidColorBrush::SetColor(const Color& color) { brush_->SetColor(Convert(color)); } -} // namespace cru::platform::graph::win::direct +} // namespace cru::platform::graphics::win::direct diff --git a/src/win/graphics/direct/CMakeLists.txt b/src/win/graphics/direct/CMakeLists.txt new file mode 100644 index 00000000..d4c96a65 --- /dev/null +++ b/src/win/graphics/direct/CMakeLists.txt @@ -0,0 +1,29 @@ +set(CRU_WIN_GRAPHICS_DIRECT_INCLUDE_DIR ${CRU_INCLUDE_DIR}/cru/win/graphics/direct) + +add_library(cru_win_graphics_direct STATIC + Brush.cpp + Font.cpp + Geometry.cpp + Factory.cpp + Painter.cpp + Resource.cpp + TextLayout.cpp + WindowPainter.cpp + WindowRenderTarget.cpp +) +target_sources(cru_win_graphics_direct PUBLIC + ${CRU_WIN_GRAPHICS_DIRECT_INCLUDE_DIR}/Brush.hpp + ${CRU_WIN_GRAPHICS_DIRECT_INCLUDE_DIR}/ComResource.hpp + ${CRU_WIN_GRAPHICS_DIRECT_INCLUDE_DIR}/ConvertUtil.hpp + ${CRU_WIN_GRAPHICS_DIRECT_INCLUDE_DIR}/Exception.hpp + ${CRU_WIN_GRAPHICS_DIRECT_INCLUDE_DIR}/Font.hpp + ${CRU_WIN_GRAPHICS_DIRECT_INCLUDE_DIR}/Geometry.hpp + ${CRU_WIN_GRAPHICS_DIRECT_INCLUDE_DIR}/Factory.hpp + ${CRU_WIN_GRAPHICS_DIRECT_INCLUDE_DIR}/Painter.hpp + ${CRU_WIN_GRAPHICS_DIRECT_INCLUDE_DIR}/Resource.hpp + ${CRU_WIN_GRAPHICS_DIRECT_INCLUDE_DIR}/TextLayout.hpp + ${CRU_WIN_GRAPHICS_DIRECT_INCLUDE_DIR}/WindowPainter.hpp + ${CRU_WIN_GRAPHICS_DIRECT_INCLUDE_DIR}/WindowRenderTarget.hpp +) +target_link_libraries(cru_win_graphics_direct PUBLIC D3D11 D2d1 DWrite) +target_link_libraries(cru_win_graphics_direct PUBLIC cru_win_base cru_platform_graphics) diff --git a/src/win/graph/direct/Factory.cpp b/src/win/graphics/direct/Factory.cpp index 03e64e13..6694801f 100644 --- a/src/win/graph/direct/Factory.cpp +++ b/src/win/graphics/direct/Factory.cpp @@ -1,16 +1,16 @@ -#include "cru/win/graph/direct/Factory.hpp" +#include "cru/win/graphics/direct/Factory.hpp" #include "cru/common/Logger.hpp" -#include "cru/win/graph/direct/Brush.hpp" -#include "cru/win/graph/direct/Exception.hpp" -#include "cru/win/graph/direct/Font.hpp" -#include "cru/win/graph/direct/Geometry.hpp" -#include "cru/win/graph/direct/TextLayout.hpp" +#include "cru/win/graphics/direct/Brush.hpp" +#include "cru/win/graphics/direct/Exception.hpp" +#include "cru/win/graphics/direct/Font.hpp" +#include "cru/win/graphics/direct/Geometry.hpp" +#include "cru/win/graphics/direct/TextLayout.hpp" #include <cstdlib> #include <utility> -namespace cru::platform::graph::win::direct { +namespace cru::platform::graphics::win::direct { namespace { void InitializeCom() { const auto hresult = ::CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED); @@ -104,4 +104,4 @@ std::unique_ptr<ITextLayout> DirectGraphFactory::CreateTextLayout( return std::make_unique<DWriteTextLayout>(this, std::move(font), std::move(text)); } -} // namespace cru::platform::graph::win::direct +} // namespace cru::platform::graphics::win::direct diff --git a/src/win/graph/direct/Font.cpp b/src/win/graphics/direct/Font.cpp index 34de5b71..1d6a5c88 100644 --- a/src/win/graph/direct/Font.cpp +++ b/src/win/graphics/direct/Font.cpp @@ -1,12 +1,12 @@ -#include "cru/win/graph/direct/Font.hpp" +#include "cru/win/graphics/direct/Font.hpp" -#include "cru/win/graph/direct/Exception.hpp" -#include "cru/win/graph/direct/Factory.hpp" +#include "cru/win/graphics/direct/Exception.hpp" +#include "cru/win/graphics/direct/Factory.hpp" #include <array> #include <utility> -namespace cru::platform::graph::win::direct { +namespace cru::platform::graphics::win::direct { DWriteFont::DWriteFont(DirectGraphFactory* factory, std::u16string font_family, float font_size) : DirectGraphResource(factory), font_family_(std::move(font_family)) { @@ -28,4 +28,4 @@ DWriteFont::DWriteFont(DirectGraphFactory* factory, std::u16string font_family, } float DWriteFont::GetFontSize() { return text_format_->GetFontSize(); } -} // namespace cru::platform::graph::win::direct +} // namespace cru::platform::graphics::win::direct diff --git a/src/win/graph/direct/Geometry.cpp b/src/win/graphics/direct/Geometry.cpp index e77b4749..8aa961b2 100644 --- a/src/win/graph/direct/Geometry.cpp +++ b/src/win/graphics/direct/Geometry.cpp @@ -1,10 +1,10 @@ -#include "cru/win/graph/direct/Geometry.hpp" +#include "cru/win/graphics/direct/Geometry.hpp" -#include "cru/win/graph/direct/ConvertUtil.hpp" -#include "cru/win/graph/direct/Exception.hpp" -#include "cru/win/graph/direct/Factory.hpp" +#include "cru/win/graphics/direct/ConvertUtil.hpp" +#include "cru/win/graphics/direct/Exception.hpp" +#include "cru/win/graphics/direct/Factory.hpp" -namespace cru::platform::graph::win::direct { +namespace cru::platform::graphics::win::direct { D2DGeometryBuilder::D2DGeometryBuilder(DirectGraphFactory* factory) : DirectGraphResource(factory) { ThrowIfFailed(factory->GetD2D1Factory()->CreatePathGeometry(&geometry_)); @@ -59,4 +59,4 @@ bool D2DGeometry::FillContains(const Point& point) { Convert(point), D2D1::Matrix3x2F::Identity(), &result)); return result != 0; } -} // namespace cru::platform::graph::win::direct +} // namespace cru::platform::graphics::win::direct diff --git a/src/win/graph/direct/Painter.cpp b/src/win/graphics/direct/Painter.cpp index 3ffb5208..91392ba7 100644 --- a/src/win/graph/direct/Painter.cpp +++ b/src/win/graphics/direct/Painter.cpp @@ -1,15 +1,15 @@ -#include "cru/win/graph/direct/Painter.hpp" +#include "cru/win/graphics/direct/Painter.hpp" #include "cru/platform/Check.hpp" -#include "cru/win/graph/direct/Brush.hpp" -#include "cru/win/graph/direct/ConvertUtil.hpp" -#include "cru/win/graph/direct/Exception.hpp" -#include "cru/win/graph/direct/Geometry.hpp" -#include "cru/win/graph/direct/TextLayout.hpp" +#include "cru/win/graphics/direct/Brush.hpp" +#include "cru/win/graphics/direct/ConvertUtil.hpp" +#include "cru/win/graphics/direct/Exception.hpp" +#include "cru/win/graphics/direct/Geometry.hpp" +#include "cru/win/graphics/direct/TextLayout.hpp" #include <type_traits> -namespace cru::platform::graph::win::direct { +namespace cru::platform::graphics::win::direct { D2DPainter::D2DPainter(ID2D1RenderTarget* render_target) { Expects(render_target); render_target_ = render_target; @@ -101,4 +101,4 @@ void D2DPainter::CheckValidation() { "Can't do that on painter after end drawing."); } } -} // namespace cru::platform::graph::win::direct +} // namespace cru::platform::graphics::win::direct diff --git a/src/win/graphics/direct/Resource.cpp b/src/win/graphics/direct/Resource.cpp new file mode 100644 index 00000000..2b4a0772 --- /dev/null +++ b/src/win/graphics/direct/Resource.cpp @@ -0,0 +1,12 @@ +#include "cru/win/graphics/direct/Resource.hpp" + +#include "cru/win/graphics/direct/Factory.hpp" + +namespace cru::platform::graphics::win::direct { +DirectGraphResource::DirectGraphResource(DirectGraphFactory* factory) + : factory_(factory) { + Expects(factory); +} + +IGraphFactory* DirectGraphResource::GetGraphFactory() { return factory_; } +} // namespace cru::platform::graphics::win::direct diff --git a/src/win/graph/direct/TextLayout.cpp b/src/win/graphics/direct/TextLayout.cpp index 0d4a6392..0c6e797f 100644 --- a/src/win/graph/direct/TextLayout.cpp +++ b/src/win/graphics/direct/TextLayout.cpp @@ -1,14 +1,14 @@ -#include "cru/win/graph/direct/TextLayout.hpp" +#include "cru/win/graphics/direct/TextLayout.hpp" #include "cru/common/Logger.hpp" #include "cru/platform/Check.hpp" -#include "cru/win/graph/direct/Exception.hpp" -#include "cru/win/graph/direct/Factory.hpp" -#include "cru/win/graph/direct/Font.hpp" +#include "cru/win/graphics/direct/Exception.hpp" +#include "cru/win/graphics/direct/Factory.hpp" +#include "cru/win/graphics/direct/Font.hpp" #include <utility> -namespace cru::platform::graph::win::direct { +namespace cru::platform::graphics::win::direct { DWriteTextLayout::DWriteTextLayout(DirectGraphFactory* factory, std::shared_ptr<IFont> font, std::u16string text) @@ -121,4 +121,4 @@ TextHitTestResult DWriteTextLayout::HitTest(const Point& point) { result.insideText = inside != 0; return result; } -} // namespace cru::platform::graph::win::direct +} // namespace cru::platform::graphics::win::direct diff --git a/src/win/graph/direct/WindowPainter.cpp b/src/win/graphics/direct/WindowPainter.cpp index 74f7da7a..c88667b6 100644 --- a/src/win/graph/direct/WindowPainter.cpp +++ b/src/win/graphics/direct/WindowPainter.cpp @@ -1,10 +1,10 @@ -#include "cru/win/graph/direct/WindowPainter.hpp" +#include "cru/win/graphics/direct/WindowPainter.hpp" -#include "cru/win/graph/direct/Exception.hpp" -#include "cru/win/graph/direct/Factory.hpp" -#include "cru/win/graph/direct/WindowRenderTarget.hpp" +#include "cru/win/graphics/direct/Exception.hpp" +#include "cru/win/graphics/direct/Factory.hpp" +#include "cru/win/graphics/direct/WindowRenderTarget.hpp" -namespace cru::platform::graph::win::direct { +namespace cru::platform::graphics::win::direct { D2DWindowPainter::D2DWindowPainter(D2DWindowRenderTarget* render_target) : D2DPainter(render_target->GetD2D1DeviceContext()), render_target_(render_target) { @@ -17,4 +17,4 @@ void D2DWindowPainter::DoEndDraw() { ThrowIfFailed(render_target_->GetD2D1DeviceContext()->EndDraw()); render_target_->Present(); } -} // namespace cru::platform::graph::win::direct +} // namespace cru::platform::graphics::win::direct diff --git a/src/win/graph/direct/WindowRenderTarget.cpp b/src/win/graphics/direct/WindowRenderTarget.cpp index d26fccf6..7479ae24 100644 --- a/src/win/graph/direct/WindowRenderTarget.cpp +++ b/src/win/graphics/direct/WindowRenderTarget.cpp @@ -1,9 +1,9 @@ -#include "cru/win/graph/direct/WindowRenderTarget.hpp" +#include "cru/win/graphics/direct/WindowRenderTarget.hpp" -#include "cru/win/graph/direct/Exception.hpp" -#include "cru/win/graph/direct/Factory.hpp" +#include "cru/win/graphics/direct/Exception.hpp" +#include "cru/win/graphics/direct/Factory.hpp" -namespace cru::platform::graph::win::direct { +namespace cru::platform::graphics::win::direct { D2DWindowRenderTarget::D2DWindowRenderTarget( gsl::not_null<DirectGraphFactory*> factory, HWND hwnd) : factory_(factory), hwnd_(hwnd) { @@ -78,4 +78,4 @@ void D2DWindowRenderTarget::CreateTargetBitmap() { d2d1_device_context_->SetTarget(target_bitmap_.Get()); } -} // namespace cru::platform::graph::win::direct +} // namespace cru::platform::graphics::win::direct diff --git a/src/win/gui/CMakeLists.txt b/src/win/gui/CMakeLists.txt new file mode 100644 index 00000000..48bed00d --- /dev/null +++ b/src/win/gui/CMakeLists.txt @@ -0,0 +1,31 @@ +set(CRU_WIN_GUI_INCLUDE_DIR ${CRU_INCLUDE_DIR}/cru/win/gui) + +add_library(cru_win_gui STATIC + TimerManager.hpp + WindowManager.hpp + + Cursor.cpp + GodWindow.cpp + InputMethod.cpp + Keyboard.cpp + TimerManager.cpp + UiApplication.cpp + Window.cpp + WindowClass.cpp + WindowManager.cpp +) +target_sources(cru_win_gui PUBLIC + ${CRU_WIN_GUI_INCLUDE_DIR}/Cursor.hpp + ${CRU_WIN_GUI_INCLUDE_DIR}/Exception.hpp + ${CRU_WIN_GUI_INCLUDE_DIR}/Base.hpp + ${CRU_WIN_GUI_INCLUDE_DIR}/GodWindow.hpp + ${CRU_WIN_GUI_INCLUDE_DIR}/InputMethod.hpp + ${CRU_WIN_GUI_INCLUDE_DIR}/Keyboard.hpp + ${CRU_WIN_GUI_INCLUDE_DIR}/Resource.hpp + ${CRU_WIN_GUI_INCLUDE_DIR}/UiApplication.hpp + ${CRU_WIN_GUI_INCLUDE_DIR}/Window.hpp + ${CRU_WIN_GUI_INCLUDE_DIR}/WindowClass.hpp + ${CRU_WIN_GUI_INCLUDE_DIR}/WindowNativeMessageEventArgs.hpp +) +target_link_libraries(cru_win_gui PUBLIC imm32) +target_link_libraries(cru_win_gui PUBLIC cru_win_graphics_direct cru_platform_gui) diff --git a/src/win/native/Cursor.cpp b/src/win/gui/Cursor.cpp index 429f6e7c..5f3086fa 100644 --- a/src/win/native/Cursor.cpp +++ b/src/win/gui/Cursor.cpp @@ -1,11 +1,11 @@ -#include "cru/win/native/Cursor.hpp" +#include "cru/win/gui/Cursor.hpp" #include "cru/common/Logger.hpp" -#include "cru/win/native/Exception.hpp" +#include "cru/win/gui/Exception.hpp" #include <stdexcept> -namespace cru::platform::native::win { +namespace cru::platform::gui::win { WinCursor::WinCursor(HCURSOR handle, bool auto_destroy) { handle_ = handle; auto_destroy_ = auto_destroy; @@ -48,4 +48,4 @@ std::shared_ptr<WinCursor> WinCursorManager::GetSystemWinCursor( throw std::runtime_error("Unknown system cursor value."); } } -} // namespace cru::platform::native::win +} // namespace cru::platform::gui::win diff --git a/src/win/native/GodWindow.cpp b/src/win/gui/GodWindow.cpp index 799a3cc6..7bce83a3 100644 --- a/src/win/native/GodWindow.cpp +++ b/src/win/gui/GodWindow.cpp @@ -1,11 +1,11 @@ -#include "cru/win/native/GodWindow.hpp" +#include "cru/win/gui/GodWindow.hpp" #include "cru/common/Logger.hpp" -#include "cru/win/native/Exception.hpp" -#include "cru/win/native/UiApplication.hpp" -#include "cru/win/native/WindowClass.hpp" +#include "cru/win/gui/Exception.hpp" +#include "cru/win/gui/UiApplication.hpp" +#include "cru/win/gui/WindowClass.hpp" -namespace cru::platform::native::win { +namespace cru::platform::gui::win { constexpr auto god_window_class_name = L"GodWindowClass"; LRESULT CALLBACK GodWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, @@ -60,4 +60,4 @@ bool GodWindow::HandleGodWindowMessage(HWND hwnd, UINT msg, WPARAM w_param, return false; } -} // namespace cru::platform::native::win +} // namespace cru::platform::gui::win diff --git a/src/win/native/InputMethod.cpp b/src/win/gui/InputMethod.cpp index 45c5f8da..d6f2146d 100644 --- a/src/win/native/InputMethod.cpp +++ b/src/win/gui/InputMethod.cpp @@ -1,14 +1,14 @@ -#include "cru/win/native/InputMethod.hpp" +#include "cru/win/gui/InputMethod.hpp" #include "cru/common/Logger.hpp" #include "cru/common/StringUtil.hpp" #include "cru/platform/Check.hpp" #include "cru/win/Exception.hpp" -#include "cru/win/native/Window.hpp" +#include "cru/win/gui/Window.hpp" #include <vector> -namespace cru::platform::native::win { +namespace cru::platform::gui::win { AutoHIMC::AutoHIMC(HWND hwnd) : hwnd_(hwnd) { Expects(hwnd); handle_ = ::ImmGetContext(hwnd); @@ -275,4 +275,4 @@ AutoHIMC WinInputMethodContext::GetHIMC() { const auto hwnd = native_window_->GetWindowHandle(); return AutoHIMC{hwnd}; } -} // namespace cru::platform::native::win +} // namespace cru::platform::gui::win diff --git a/src/win/native/Keyboard.cpp b/src/win/gui/Keyboard.cpp index 929ca737..b706b240 100644 --- a/src/win/native/Keyboard.cpp +++ b/src/win/gui/Keyboard.cpp @@ -1,6 +1,6 @@ -#include "cru/win/native/Keyboard.hpp" +#include "cru/win/gui/Keyboard.hpp" -namespace cru::platform::native::win { +namespace cru::platform::gui::win { KeyCode VirtualKeyToKeyCode(int virtual_key) { if (virtual_key >= 0x30 && virtual_key <= 0x39) { return KeyCode{static_cast<int>(KeyCode::N0) + (virtual_key - 0x30)}; @@ -71,4 +71,4 @@ KeyModifier RetrieveKeyMofifier() { if (::GetKeyState(VK_MENU) < 0) result |= KeyModifiers::alt; return result; } -} // namespace cru::platform::native::win +} // namespace cru::platform::gui::win diff --git a/src/win/native/TimerManager.cpp b/src/win/gui/TimerManager.cpp index 206ae3e3..fc26b6c4 100644 --- a/src/win/native/TimerManager.cpp +++ b/src/win/gui/TimerManager.cpp @@ -1,13 +1,13 @@ #include "TimerManager.hpp" -#include "cru/win/native/Base.hpp" -#include "cru/win/native/Exception.hpp" +#include "cru/win/gui/Base.hpp" +#include "cru/win/gui/Exception.hpp" #include "gsl/gsl_util" #include <functional> #include <type_traits> -namespace cru::platform::native::win { +namespace cru::platform::gui::win { constexpr int kSetImmediateWindowMessageId = WM_USER + 2000; TimerManager::TimerManager(GodWindow* god_window) { @@ -97,4 +97,4 @@ void TimerManager::HandleGodWindowMessage(WindowNativeMessageEventArgs& args) { return; } } -} // namespace cru::platform::native::win +} // namespace cru::platform::gui::win diff --git a/src/win/native/TimerManager.hpp b/src/win/gui/TimerManager.hpp index f2731f60..a8db1075 100644 --- a/src/win/native/TimerManager.hpp +++ b/src/win/gui/TimerManager.hpp @@ -3,15 +3,15 @@ #include "cru/win/WinPreConfig.hpp" #include "cru/common/Base.hpp" -#include "cru/win/native/GodWindow.hpp" -#include "cru/win/native/WindowNativeMessageEventArgs.hpp" +#include "cru/win/gui/GodWindow.hpp" +#include "cru/win/gui/WindowNativeMessageEventArgs.hpp" #include <chrono> #include <functional> #include <optional> #include <unordered_map> -namespace cru::platform::native::win { +namespace cru::platform::gui::win { enum class TimerType { Immediate, Timeout, Interval }; struct TimerInfo { @@ -58,4 +58,4 @@ class TimerManager : public Object { long long next_id_ = 1; std::unordered_map<long long, TimerInfo> info_map_; }; -} // namespace cru::platform::native::win +} // namespace cru::platform::gui::win diff --git a/src/win/native/UiApplication.cpp b/src/win/gui/UiApplication.cpp index 87ef0b81..5041a6c0 100644 --- a/src/win/native/UiApplication.cpp +++ b/src/win/gui/UiApplication.cpp @@ -1,4 +1,4 @@ -#include "cru/win/native/UiApplication.hpp" +#include "cru/win/gui/UiApplication.hpp" #include "../DebugLogger.hpp" #include "../StdOutLogger.hpp" @@ -6,20 +6,20 @@ #include "WindowManager.hpp" #include "cru/common/Logger.hpp" #include "cru/platform/Check.hpp" -#include "cru/win/graph/direct/Factory.hpp" -#include "cru/win/native/Cursor.hpp" -#include "cru/win/native/Exception.hpp" -#include "cru/win/native/GodWindow.hpp" -#include "cru/win/native/InputMethod.hpp" -#include "cru/win/native/Window.hpp" - -namespace cru::platform::native { +#include "cru/win/graphics/direct/Factory.hpp" +#include "cru/win/gui/Cursor.hpp" +#include "cru/win/gui/Exception.hpp" +#include "cru/win/gui/GodWindow.hpp" +#include "cru/win/gui/InputMethod.hpp" +#include "cru/win/gui/Window.hpp" + +namespace cru::platform::gui { std::unique_ptr<IUiApplication> CreateUiApplication() { return std::make_unique<win::WinUiApplication>(); } -} // namespace cru::platform::native +} // namespace cru::platform::gui -namespace cru::platform::native::win { +namespace cru::platform::gui::win { WinUiApplication* WinUiApplication::instance = nullptr; WinUiApplication::WinUiApplication() { @@ -37,7 +37,7 @@ WinUiApplication::WinUiApplication() { std::make_unique<::cru::platform::win::WinStdOutLoggerSource>()); graph_factory_ = - std::make_unique<cru::platform::graph::win::direct::DirectGraphFactory>(); + std::make_unique<cru::platform::graphics::win::direct::DirectGraphFactory>(); god_window_ = std::make_unique<GodWindow>(this); timer_manager_ = std::make_unique<TimerManager>(god_window_.get()); @@ -108,11 +108,11 @@ INativeWindow* WinUiApplication::CreateWindow(INativeWindow* parent) { WS_OVERLAPPEDWINDOW, p); } -cru::platform::graph::IGraphFactory* WinUiApplication::GetGraphFactory() { +cru::platform::graphics::IGraphFactory* WinUiApplication::GetGraphFactory() { return graph_factory_.get(); } ICursorManager* WinUiApplication::GetCursorManager() { return cursor_manager_.get(); } -} // namespace cru::platform::native::win +} // namespace cru::platform::gui::win diff --git a/src/win/native/Window.cpp b/src/win/gui/Window.cpp index 1a6fcb07..dda8a36a 100644 --- a/src/win/native/Window.cpp +++ b/src/win/gui/Window.cpp @@ -1,22 +1,22 @@ -#include "cru/win/native/Window.hpp" +#include "cru/win/gui/Window.hpp" #include "WindowManager.hpp" #include "cru/common/Logger.hpp" #include "cru/platform/Check.hpp" -#include "cru/platform/native/Base.hpp" -#include "cru/win/graph/direct/WindowPainter.hpp" -#include "cru/win/native/Cursor.hpp" -#include "cru/win/native/Exception.hpp" -#include "cru/win/native/InputMethod.hpp" -#include "cru/win/native/Keyboard.hpp" -#include "cru/win/native/UiApplication.hpp" -#include "cru/win/native/WindowClass.hpp" +#include "cru/platform/gui/Base.hpp" +#include "cru/win/graphics/direct/WindowPainter.hpp" +#include "cru/win/gui/Cursor.hpp" +#include "cru/win/gui/Exception.hpp" +#include "cru/win/gui/InputMethod.hpp" +#include "cru/win/gui/Keyboard.hpp" +#include "cru/win/gui/UiApplication.hpp" +#include "cru/win/gui/WindowClass.hpp" #include <imm.h> #include <windowsx.h> #include <memory> -namespace cru::platform::native::win { +namespace cru::platform::gui::win { WinNativeWindow::WinNativeWindow(WinUiApplication* application, WindowClass* window_class, DWORD window_style, WinNativeWindow* parent) @@ -47,10 +47,10 @@ WinNativeWindow::WinNativeWindow(WinUiApplication* application, window_manager->RegisterWindow(hwnd_, this); SetCursor(application->GetCursorManager()->GetSystemCursor( - cru::platform::native::SystemCursorType::Arrow)); + cru::platform::gui::SystemCursorType::Arrow)); window_render_target_ = - std::make_unique<graph::win::direct::D2DWindowRenderTarget>( + std::make_unique<graphics::win::direct::D2DWindowRenderTarget>( application->GetDirectFactory(), hwnd_); window_render_target_->SetDpi(dpi_, dpi_); @@ -139,8 +139,8 @@ void WinNativeWindow::RequestRepaint() { throw Win32Error(::GetLastError(), "Failed to update window."); } -std::unique_ptr<graph::IPainter> WinNativeWindow::BeginPaint() { - return std::make_unique<graph::win::direct::D2DWindowPainter>( +std::unique_ptr<graphics::IPainter> WinNativeWindow::BeginPaint() { + return std::make_unique<graphics::win::direct::D2DWindowPainter>( window_render_target_.get()); } @@ -243,7 +243,7 @@ bool WinNativeWindow::HandleNativeWindowMessage(HWND hwnd, UINT msg, POINT point; point.x = GET_X_LPARAM(l_param); point.y = GET_Y_LPARAM(l_param); - OnMouseDownInternal(platform::native::mouse_buttons::left, point); + OnMouseDownInternal(platform::gui::mouse_buttons::left, point); *result = 0; return true; } @@ -251,7 +251,7 @@ bool WinNativeWindow::HandleNativeWindowMessage(HWND hwnd, UINT msg, POINT point; point.x = GET_X_LPARAM(l_param); point.y = GET_Y_LPARAM(l_param); - OnMouseUpInternal(platform::native::mouse_buttons::left, point); + OnMouseUpInternal(platform::gui::mouse_buttons::left, point); *result = 0; return true; } @@ -259,7 +259,7 @@ bool WinNativeWindow::HandleNativeWindowMessage(HWND hwnd, UINT msg, POINT point; point.x = GET_X_LPARAM(l_param); point.y = GET_Y_LPARAM(l_param); - OnMouseDownInternal(platform::native::mouse_buttons::right, point); + OnMouseDownInternal(platform::gui::mouse_buttons::right, point); *result = 0; return true; } @@ -267,7 +267,7 @@ bool WinNativeWindow::HandleNativeWindowMessage(HWND hwnd, UINT msg, POINT point; point.x = GET_X_LPARAM(l_param); point.y = GET_Y_LPARAM(l_param); - OnMouseUpInternal(platform::native::mouse_buttons::right, point); + OnMouseUpInternal(platform::gui::mouse_buttons::right, point); *result = 0; return true; } @@ -275,7 +275,7 @@ bool WinNativeWindow::HandleNativeWindowMessage(HWND hwnd, UINT msg, POINT point; point.x = GET_X_LPARAM(l_param); point.y = GET_Y_LPARAM(l_param); - OnMouseDownInternal(platform::native::mouse_buttons::middle, point); + OnMouseDownInternal(platform::gui::mouse_buttons::middle, point); *result = 0; return true; } @@ -283,7 +283,7 @@ bool WinNativeWindow::HandleNativeWindowMessage(HWND hwnd, UINT msg, POINT point; point.x = GET_X_LPARAM(l_param); point.y = GET_Y_LPARAM(l_param); - OnMouseUpInternal(platform::native::mouse_buttons::middle, point); + OnMouseUpInternal(platform::gui::mouse_buttons::middle, point); *result = 0; return true; } @@ -420,13 +420,13 @@ void WinNativeWindow::OnMouseLeaveInternal() { mouse_enter_leave_event_.Raise(MouseEnterLeaveType::Leave); } -void WinNativeWindow::OnMouseDownInternal(platform::native::MouseButton button, +void WinNativeWindow::OnMouseDownInternal(platform::gui::MouseButton button, POINT point) { const auto dip_point = PixelToDip(point); mouse_down_event_.Raise({button, dip_point, RetrieveKeyMofifier()}); } -void WinNativeWindow::OnMouseUpInternal(platform::native::MouseButton button, +void WinNativeWindow::OnMouseUpInternal(platform::gui::MouseButton button, POINT point) { const auto dip_point = PixelToDip(point); mouse_up_event_.Raise({button, dip_point, RetrieveKeyMofifier()}); @@ -450,4 +450,4 @@ void WinNativeWindow::OnKeyUpInternal(int virtual_code) { void WinNativeWindow::OnActivatedInternal() {} void WinNativeWindow::OnDeactivatedInternal() {} -} // namespace cru::platform::native::win +} // namespace cru::platform::gui::win diff --git a/src/win/native/WindowClass.cpp b/src/win/gui/WindowClass.cpp index 2e74606e..a033d091 100644 --- a/src/win/native/WindowClass.cpp +++ b/src/win/gui/WindowClass.cpp @@ -1,8 +1,8 @@ -#include "cru/win/native/WindowClass.hpp" +#include "cru/win/gui/WindowClass.hpp" -#include "cru/win/native/Exception.hpp" +#include "cru/win/gui/Exception.hpp" -namespace cru::platform::native::win { +namespace cru::platform::gui::win { WindowClass::WindowClass(std::wstring name, WNDPROC window_proc, HINSTANCE h_instance) : name_(std::move(name)) { @@ -25,4 +25,4 @@ WindowClass::WindowClass(std::wstring name, WNDPROC window_proc, if (atom_ == 0) throw Win32Error(::GetLastError(), "Failed to create window class."); } -} // namespace cru::platform::native::win +} // namespace cru::platform::gui::win diff --git a/src/win/native/WindowManager.cpp b/src/win/gui/WindowManager.cpp index 56cc8981..4e84e967 100644 --- a/src/win/native/WindowManager.cpp +++ b/src/win/gui/WindowManager.cpp @@ -1,10 +1,10 @@ #include "WindowManager.hpp" -#include "cru/win/native/UiApplication.hpp" -#include "cru/win/native/Window.hpp" -#include "cru/win/native/WindowClass.hpp" +#include "cru/win/gui/UiApplication.hpp" +#include "cru/win/gui/Window.hpp" +#include "cru/win/gui/WindowClass.hpp" -namespace cru::platform::native::win { +namespace cru::platform::gui::win { LRESULT __stdcall GeneralWndProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) { auto window = @@ -53,4 +53,4 @@ std::vector<WinNativeWindow*> WindowManager::GetAllWindows() const { for (const auto& [key, value] : window_map_) windows.push_back(value); return windows; } -} // namespace cru::platform::native::win +} // namespace cru::platform::gui::win diff --git a/src/win/native/WindowManager.hpp b/src/win/gui/WindowManager.hpp index 3f6387f7..3b037f89 100644 --- a/src/win/native/WindowManager.hpp +++ b/src/win/gui/WindowManager.hpp @@ -7,7 +7,7 @@ #include <memory> #include <vector> -namespace cru::platform::native::win { +namespace cru::platform::gui::win { class WinUiApplication; class WinNativeWindow; class WindowClass; @@ -48,4 +48,4 @@ class WindowManager : public Object { std::unique_ptr<WindowClass> general_window_class_; std::map<HWND, WinNativeWindow*> window_map_; }; -} // namespace cru::platform::native::win +} // namespace cru::platform::gui::win diff --git a/src/win/native/CMakeLists.txt b/src/win/native/CMakeLists.txt deleted file mode 100644 index 4b84600b..00000000 --- a/src/win/native/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -set(CRU_WIN_NATIVE_INCLUDE_DIR ${CRU_INCLUDE_DIR}/cru/win/native) - -add_library(cru_win_native STATIC - TimerManager.hpp - WindowManager.hpp - - Cursor.cpp - GodWindow.cpp - InputMethod.cpp - Keyboard.cpp - TimerManager.cpp - UiApplication.cpp - Window.cpp - WindowClass.cpp - WindowManager.cpp -) -target_sources(cru_win_native PUBLIC - ${CRU_WIN_NATIVE_INCLUDE_DIR}/Cursor.hpp - ${CRU_WIN_NATIVE_INCLUDE_DIR}/Exception.hpp - ${CRU_WIN_NATIVE_INCLUDE_DIR}/Base.hpp - ${CRU_WIN_NATIVE_INCLUDE_DIR}/GodWindow.hpp - ${CRU_WIN_NATIVE_INCLUDE_DIR}/InputMethod.hpp - ${CRU_WIN_NATIVE_INCLUDE_DIR}/Keyboard.hpp - ${CRU_WIN_NATIVE_INCLUDE_DIR}/Resource.hpp - ${CRU_WIN_NATIVE_INCLUDE_DIR}/UiApplication.hpp - ${CRU_WIN_NATIVE_INCLUDE_DIR}/Window.hpp - ${CRU_WIN_NATIVE_INCLUDE_DIR}/WindowClass.hpp - ${CRU_WIN_NATIVE_INCLUDE_DIR}/WindowNativeMessageEventArgs.hpp -) -target_link_libraries(cru_win_native PUBLIC imm32) -target_link_libraries(cru_win_native PUBLIC cru_win_graph_direct cru_platform_native) |