aboutsummaryrefslogtreecommitdiff
path: root/demos
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2020-04-19 19:54:44 +0800
committercrupest <crupest@outlook.com>2020-04-19 19:54:44 +0800
commit494d2db1c1203acc9d9f2b127b75c6df6160057a (patch)
treea0e4eaf7540ac4af3b50baf085113122ef2ca651 /demos
parent76f62be24b7e612b1f6880f9d7b0ddc07a8d38eb (diff)
downloadcru-494d2db1c1203acc9d9f2b127b75c6df6160057a.tar.gz
cru-494d2db1c1203acc9d9f2b127b75c6df6160057a.tar.bz2
cru-494d2db1c1203acc9d9f2b127b75c6df6160057a.zip
...
Diffstat (limited to 'demos')
-rw-r--r--demos/CMakeLists.txt8
-rw-r--r--demos/input_method/CMakeLists.txt2
-rw-r--r--demos/input_method/main.cpp0
-rw-r--r--demos/main/CMakeLists.txt2
-rw-r--r--demos/main/main.cpp58
5 files changed, 70 insertions, 0 deletions
diff --git a/demos/CMakeLists.txt b/demos/CMakeLists.txt
new file mode 100644
index 00000000..64612bf9
--- /dev/null
+++ b/demos/CMakeLists.txt
@@ -0,0 +1,8 @@
+add_library(cru_demo_base INTERFACE)
+
+if(WIN32)
+ target_link_libraries(cru_demo_base INTERFACE cru_win_native)
+endif()
+
+add_subdirectory(main)
+add_subdirectory(input_method)
diff --git a/demos/input_method/CMakeLists.txt b/demos/input_method/CMakeLists.txt
new file mode 100644
index 00000000..98e36e29
--- /dev/null
+++ b/demos/input_method/CMakeLists.txt
@@ -0,0 +1,2 @@
+add_executable(demo_input_method main.cpp)
+target_link_libraries(demo_input_method PRIVATE cru_demo_base)
diff --git a/demos/input_method/main.cpp b/demos/input_method/main.cpp
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/demos/input_method/main.cpp
diff --git a/demos/main/CMakeLists.txt b/demos/main/CMakeLists.txt
new file mode 100644
index 00000000..9974671d
--- /dev/null
+++ b/demos/main/CMakeLists.txt
@@ -0,0 +1,2 @@
+add_executable(demo_main main.cpp)
+target_link_libraries(demo_main PRIVATE cru_demo_base cru_ui)
diff --git a/demos/main/main.cpp b/demos/main/main.cpp
new file mode 100644
index 00000000..0172838e
--- /dev/null
+++ b/demos/main/main.cpp
@@ -0,0 +1,58 @@
+#include "cru/platform/heap_debug.hpp"
+#include "cru/platform/native/window.hpp"
+#include "cru/ui/controls/button.hpp"
+#include "cru/ui/controls/flex_layout.hpp"
+#include "cru/ui/controls/stack_layout.hpp"
+#include "cru/ui/controls/text_block.hpp"
+#include "cru/ui/ui_host.hpp"
+#include "cru/ui/window.hpp"
+#include "cru/win/native/ui_application.hpp"
+
+using cru::platform::native::win::WinUiApplication;
+using cru::ui::Rect;
+using cru::ui::Thickness;
+using cru::ui::Window;
+using cru::ui::controls::Button;
+using cru::ui::controls::FlexLayout;
+using cru::ui::controls::StackLayout;
+using cru::ui::controls::TextBlock;
+
+int main() {
+#ifdef CRU_DEBUG
+ cru::platform::SetupHeapDebug();
+#endif
+
+ std::unique_ptr<WinUiApplication> application =
+ std::make_unique<WinUiApplication>();
+
+ const auto window = Window::CreateOverlapped();
+
+ const auto flex_layout = FlexLayout::Create();
+
+ window->SetChild(flex_layout);
+
+ const auto button = Button::Create();
+ const auto text_block1 = TextBlock::Create();
+ text_block1->SetText("Hello World!");
+ button->SetChild(text_block1);
+ flex_layout->AddChild(button, 0);
+
+ const auto text_block2 = TextBlock::Create();
+ text_block2->SetText("Hello World!");
+
+ const auto text_block3 = TextBlock::Create();
+ text_block3->SetText("Overlapped text");
+
+ const auto stack_layout = StackLayout::Create();
+ stack_layout->AddChild(text_block2, 0);
+ stack_layout->AddChild(text_block3, 1);
+ flex_layout->AddChild(stack_layout, 1);
+
+ const auto text_block4 = TextBlock::Create();
+ text_block4->SetText("Hello World!!!");
+ flex_layout->AddChild(text_block4, 2);
+
+ window->GetUiHost()->GetNativeWindowResolver()->Resolve()->SetVisible(true);
+
+ return application->Run();
+}