aboutsummaryrefslogtreecommitdiff
path: root/src/ui/components
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/components')
-rw-r--r--src/ui/components/PopupButton.cpp17
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