diff options
author | crupest <crupest@outlook.com> | 2018-11-10 21:53:33 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2018-11-10 21:53:33 +0800 |
commit | e5513daa53cb958b0c83d575c440f40aaf40f562 (patch) | |
tree | c6782f0cbfe4eca466f13ef571338e6b55342860 /src/main.cpp | |
parent | cfcd03f564e82419345a7a6900fdc17c5b8c2631 (diff) | |
download | cru-e5513daa53cb958b0c83d575c440f40aaf40f562.tar.gz cru-e5513daa53cb958b0c83d575c440f40aaf40f562.tar.bz2 cru-e5513daa53cb958b0c83d575c440f40aaf40f562.zip |
...
Diffstat (limited to 'src/main.cpp')
-rw-r--r-- | src/main.cpp | 29 |
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); } |