aboutsummaryrefslogtreecommitdiff
path: root/demos
diff options
context:
space:
mode:
Diffstat (limited to 'demos')
-rw-r--r--demos/main/main.cpp44
-rw-r--r--demos/scroll_view/main.cpp22
2 files changed, 32 insertions, 34 deletions
diff --git a/demos/main/main.cpp b/demos/main/main.cpp
index a45b7185..2e8188a1 100644
--- a/demos/main/main.cpp
+++ b/demos/main/main.cpp
@@ -1,4 +1,3 @@
-#include <memory>
#include "cru/platform/bootstrap/Bootstrap.h"
#include "cru/platform/gui/Base.h"
#include "cru/platform/gui/UiApplication.h"
@@ -17,7 +16,8 @@ using cru::platform::gui::IUiApplication;
using namespace cru::ui::controls;
int main() {
- IUiApplication* application = cru::platform::bootstrap::CreateUiApplication();
+ std::unique_ptr<IUiApplication> application(
+ cru::platform::bootstrap::CreateUiApplication());
auto application_menu = application->GetApplicationMenu();
@@ -33,35 +33,35 @@ int main() {
mi->SetOnClickHandler([&]() { application->RequestQuit(0); });
}
- const auto window = Window::Create();
+ Window window;
- const auto flex_layout = FlexLayout::Create();
- flex_layout->SetFlexDirection(FlexDirection::Vertical);
- flex_layout->SetContentMainAlign(FlexCrossAlignment::Center);
- flex_layout->SetItemCrossAlign(FlexCrossAlignment::Center);
+ FlexLayout flex_layout;
+ flex_layout.SetFlexDirection(FlexDirection::Vertical);
+ flex_layout.SetContentMainAlign(FlexCrossAlignment::Center);
+ flex_layout.SetItemCrossAlign(FlexCrossAlignment::Center);
- window->AddChildAt(flex_layout, 0);
+ window.AddChild(&flex_layout);
- const auto text_block = TextBlock::Create(u"Hello World from CruUI!", true);
- flex_layout->AddChildAt(text_block, 0);
+ TextBlock text_block(u"Hello World from CruUI!", true);
+ flex_layout.AddChild(&text_block);
- const auto button_text_block = TextBlock::Create(u"OK");
- const auto button = Button::Create();
- button->SetChild(button_text_block);
- flex_layout->AddChildAt(button, 1);
+ TextBlock button_text_block(u"OK");
+ Button button;
+ button.SetChild(&button_text_block);
+ flex_layout.AddChild(&button);
- const auto text_box = TextBox::Create();
- text_box->SetMultiLine(true);
- flex_layout->AddChildAt(text_box, 2);
+ TextBox text_box;
+ text_box.SetMultiLine(true);
+ flex_layout.AddChild(&text_box);
- auto popup_menu = std::make_unique<cru::ui::components::PopupMenu>(window);
+ auto popup_menu = std::make_unique<cru::ui::components::PopupMenu>(&window);
popup_menu->GetMenu()->AddTextItem(u"Item 1", [] {});
popup_menu->GetMenu()->AddTextItem(u"Item 2000", [] {});
- window->MouseDownEvent()->Bubble()->AddHandler(
- [window, &popup_menu](cru::ui::events::MouseButtonEventArgs& e) {
+ window.MouseDownEvent()->Bubble()->AddHandler(
+ [&window, &popup_menu](cru::ui::events::MouseButtonEventArgs& e) {
if (e.GetButton() == cru::ui::mouse_buttons::right) {
- popup_menu->SetPosition(e.GetPoint() + window->GetWindowHost()
+ popup_menu->SetPosition(e.GetPoint() + window.GetWindowHost()
->GetNativeWindow()
->GetClientRect()
.GetLeftTop());
@@ -69,7 +69,7 @@ int main() {
}
});
- window->GetWindowHost()->GetNativeWindow()->SetVisibility(
+ window.GetWindowHost()->GetNativeWindow()->SetVisibility(
cru::platform::gui::WindowVisibilityType::Show);
return application->Run();
diff --git a/demos/scroll_view/main.cpp b/demos/scroll_view/main.cpp
index d859ce3a..b049a408 100644
--- a/demos/scroll_view/main.cpp
+++ b/demos/scroll_view/main.cpp
@@ -11,15 +11,14 @@ using cru::ui::controls::TextBlock;
using cru::ui::controls::Window;
int main() {
- IUiApplication* application = cru::platform::bootstrap::CreateUiApplication();
+ std::unique_ptr<IUiApplication> application(
+ cru::platform::bootstrap::CreateUiApplication());
- auto window = Window::Create();
+ Window window;
+ ScrollView scroll_view;
+ window.AddChild(&scroll_view);
- auto scroll_view = ScrollView::Create();
-
- window->AddChild(scroll_view);
-
- auto text_block = TextBlock::Create(
+ TextBlock text_block(
uR"([Verse 1]
The snow glows white on the mountain tonight
Not a footprint to be seen
@@ -76,13 +75,12 @@ Let it go, let it go
That perfect girl is gone
Here I stand in the light of day
Let the storm rage on!
-The cold never bothered me anyway)");
-
- text_block->SetSelectable(true);
+The cold never bothered me anyway)",
+ true);
- scroll_view->SetChild(text_block);
+ scroll_view.SetChild(&text_block);
- window->GetWindowHost()->GetNativeWindow()->SetVisibility(
+ window.GetWindowHost()->GetNativeWindow()->SetVisibility(
cru::platform::gui::WindowVisibilityType::Show);
return application->Run();