aboutsummaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
author杨宇千 <crupest@outlook.com>2018-11-10 22:39:26 +0800
committerGitHub <noreply@github.com>2018-11-10 22:39:26 +0800
commit8b04c0dd788be75c2dd7d8f58aebc7d6bf6752df (patch)
tree2d00b4f6a7af93a13d271d78e6ef682c335c91c7 /src/main.cpp
parent7c2fb4578b6997b5ab0d98121cda253f734139c1 (diff)
parentb2eced8d9719eb00796c2674fc2c23ab0c9bbdbf (diff)
downloadcru-8b04c0dd788be75c2dd7d8f58aebc7d6bf6752df.tar.gz
cru-8b04c0dd788be75c2dd7d8f58aebc7d6bf6752df.tar.bz2
cru-8b04c0dd788be75c2dd7d8f58aebc7d6bf6752df.zip
Merge pull request #11 from crupest/listitem
Add ListItem.
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp31
1 files changed, 28 insertions, 3 deletions
diff --git a/src/main.cpp b/src/main.cpp
index f9bc975c..19e821a8 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -5,10 +5,12 @@
#include "ui/controls/toggle_button.hpp"
#include "ui/controls/button.hpp"
#include "ui/controls/text_box.hpp"
+#include "ui/controls/list_item.hpp"
-using cru::ui::Rect;
using cru::String;
+using cru::StringView;
using cru::Application;
+using cru::ui::Rect;
using cru::ui::Window;
using cru::ui::Alignment;
using cru::ui::LayoutSideParams;
@@ -20,6 +22,7 @@ using cru::ui::controls::TextBlock;
using cru::ui::controls::ToggleButton;
using cru::ui::controls::Button;
using cru::ui::controls::TextBox;
+using cru::ui::controls::ListItem;
int APIENTRY wWinMain(
HINSTANCE hInstance,
@@ -115,9 +118,31 @@ int APIENTRY wWinMain(
const auto button = Button::Create();
button->GetLayoutParams()->padding = Thickness(20, 5);
button->AddChild(TextBlock::Create(L"Show popup window parenting this."));
- button->mouse_click_event.AddHandler([window](auto)
+ button->mouse_click_event.AddHandler([window, button](auto)
{
- Window::CreatePopup(window)->Show();
+ const auto popup = Window::CreatePopup(window);
+
+ auto create_menu_item = [](const String& text) -> ListItem*
+ {
+ return CreateWithLayout<ListItem>(
+ LayoutSideParams::Content(Alignment::Start),
+ LayoutSideParams::Content(Alignment::Start),
+ ControlList{ TextBlock::Create(text) }
+ );
+ };
+
+ const auto menu = LinearLayout::Create(LinearLayout::Orientation::Vertical, ControlList{
+ create_menu_item(L"copy"),
+ create_menu_item(L"cut"),
+ create_menu_item(L"paste")
+ });
+
+ popup->AddChild(menu);
+
+ popup->SetSizeFitContent();
+ popup->SetWindowPosition(window->PointToScreen(button->GetPositionAbsolute()));
+
+ popup->Show();
});
layout->AddChild(button);
}