diff options
Diffstat (limited to 'src/ui/components/PopupButton.cpp')
-rw-r--r-- | src/ui/components/PopupButton.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
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<String> 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<String> 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 |