aboutsummaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2018-11-10 21:53:33 +0800
committercrupest <crupest@outlook.com>2018-11-10 21:53:33 +0800
commite5513daa53cb958b0c83d575c440f40aaf40f562 (patch)
treec6782f0cbfe4eca466f13ef571338e6b55342860 /src/main.cpp
parentcfcd03f564e82419345a7a6900fdc17c5b8c2631 (diff)
downloadcru-e5513daa53cb958b0c83d575c440f40aaf40f562.tar.gz
cru-e5513daa53cb958b0c83d575c440f40aaf40f562.tar.bz2
cru-e5513daa53cb958b0c83d575c440f40aaf40f562.zip
...
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp29
1 files changed, 27 insertions, 2 deletions
diff --git a/src/main.cpp b/src/main.cpp
index f9bc975c..269da573 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,
@@ -117,7 +120,29 @@ int APIENTRY wWinMain(
button->AddChild(TextBlock::Create(L"Show popup window parenting this."));
button->mouse_click_event.AddHandler([window](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->Relayout();
+ popup->SetClientSize(menu->GetSize());
+
+ popup->Show();
});
layout->AddChild(button);
}