From 57353bd3acd97957cb5f970016fec52977cc6e95 Mon Sep 17 00:00:00 2001 From: crupest Date: Wed, 2 Mar 2022 22:07:33 +0800 Subject: ... --- src/ui/components/PopupButton.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/ui/components/PopupButton.cpp') diff --git a/src/ui/components/PopupButton.cpp b/src/ui/components/PopupButton.cpp index f09bf2d1..41e0ad6c 100644 --- a/src/ui/components/PopupButton.cpp +++ b/src/ui/components/PopupButton.cpp @@ -21,4 +21,21 @@ void PopupMenuTextButton::SetMenuItems(std::vector items) { std::move(items[i]), [this, i] { menu_item_selected_event_.Raise(i); }); } } + +PopupMenuIconButton::PopupMenuIconButton() : popup_menu_(&button_) { + button_.ClickEvent()->AddHandler([this](const helper::ClickEventArgs& args) { + popup_menu_.SetPosition(args.GetDownPointOfScreen()); + popup_menu_.Show(); + }); +} + +PopupMenuIconButton::~PopupMenuIconButton() {} + +void PopupMenuIconButton::SetMenuItems(std::vector items) { + popup_menu_.GetMenu()->ClearItems(); + for (Index i = 0; i < items.size(); i++) { + popup_menu_.GetMenu()->AddTextItem( + std::move(items[i]), [this, i] { menu_item_selected_event_.Raise(i); }); + } +} } // namespace cru::ui::components -- cgit v1.2.3