aboutsummaryrefslogtreecommitdiff
path: root/src/ui/controls/popup_menu.cpp
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2019-03-20 19:26:55 +0800
committercrupest <crupest@outlook.com>2019-03-20 19:26:55 +0800
commit616ebd78b543876388cb3d64f108abea041d4983 (patch)
tree8cae90f29695a3bd534b3ae5e32218d79719ba91 /src/ui/controls/popup_menu.cpp
parentd518396a7fcdb2add413a9a37bb34515ff4f4cc4 (diff)
downloadcru-616ebd78b543876388cb3d64f108abea041d4983.tar.gz
cru-616ebd78b543876388cb3d64f108abea041d4983.tar.bz2
cru-616ebd78b543876388cb3d64f108abea041d4983.zip
...
Diffstat (limited to 'src/ui/controls/popup_menu.cpp')
-rw-r--r--src/ui/controls/popup_menu.cpp58
1 files changed, 0 insertions, 58 deletions
diff --git a/src/ui/controls/popup_menu.cpp b/src/ui/controls/popup_menu.cpp
deleted file mode 100644
index fbe9039d..00000000
--- a/src/ui/controls/popup_menu.cpp
+++ /dev/null
@@ -1,58 +0,0 @@
-#include "popup_menu.hpp"
-
-#include "ui/window.hpp"
-#include "text_block.hpp"
-#include "list_item.hpp"
-#include "linear_layout.hpp"
-#include "ui/events/ui_event.hpp"
-
-namespace cru::ui::controls
-{
- Window* CreatePopupMenu(const Point& anchor, const std::vector<MenuItemInfo>& items, Window* parent)
- {
- const auto popup = Window::CreatePopup(parent);
-
- popup->lose_focus_event.bubble.AddHandler([popup](events::FocusChangeEventArgs& args)
- {
- if (args.IsWindow())
- popup->Close();
- });
-
- const auto create_menu_item = [popup](const String& text, const std::function<void()>& action) -> ListItem*
- {
- auto text_block = TextBlock::Create(text);
- text_block->GetLayoutParams()->width.alignment = Alignment::Start;
-
- auto list_item = CreateWithLayout<ListItem>(
- LayoutSideParams::Stretch(Alignment::Center),
- LayoutSideParams::Content(Alignment::Start),
- text_block
- );
-
- list_item->mouse_click_event.bubble.AddHandler([popup, action](events::MouseButtonEventArgs& args)
- {
- if (args.GetMouseButton() == MouseButton::Left)
- {
- action();
- popup->Close();
- }
- });
-
- return list_item;
- };
-
- const auto menu = LinearLayout::Create(LinearLayout::Orientation::Vertical);
-
- menu->SetBordered(true);
-
- for (const auto& item : items)
- menu->AddChild(create_menu_item(item.first, item.second));
-
- popup->SetChild(menu);
-
- popup->SetSizeFitContent();
- popup->SetWindowPosition(anchor);
-
- return popup;
- }
-}