From 9f49e6379d41affdde219b3789c487df973c0d2b Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Mon, 28 Jul 2025 13:36:03 -0600 Subject: [PATCH] ArdourDropdown: new utility methods --- libs/widgets/ardour_dropdown.cc | 13 +++++++++++++ libs/widgets/widgets/ardour_dropdown.h | 4 +++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/libs/widgets/ardour_dropdown.cc b/libs/widgets/ardour_dropdown.cc index d3311fe54a..d2f2d8226b 100644 --- a/libs/widgets/ardour_dropdown.cc +++ b/libs/widgets/ardour_dropdown.cc @@ -168,6 +168,13 @@ ArdourDropdown::clear_items () _menu.items ().clear (); } +void +ArdourDropdown::add_separator () +{ + using namespace Menu_Helpers; + add_menu_elem (SeparatorElem()); +} + void ArdourDropdown::add_menu_elem (Menu_Helpers::Element e) { @@ -201,3 +208,9 @@ ArdourDropdown::append (Glib::RefPtr action) { _menu.items().push_back (Menu_Helpers::MenuElem (action->get_short_label(), sigc::mem_fun (action.get(), &Action::activate))); } + +void +ArdourDropdown::append (Gtk::Menu& submenu, Glib::RefPtr action) +{ + submenu.items().push_back (Menu_Helpers::MenuElem (action->get_short_label(), sigc::mem_fun (action.get(), &Action::activate))); +} diff --git a/libs/widgets/widgets/ardour_dropdown.h b/libs/widgets/widgets/ardour_dropdown.h index b029ff13df..8cf573cc5c 100644 --- a/libs/widgets/widgets/ardour_dropdown.h +++ b/libs/widgets/widgets/ardour_dropdown.h @@ -45,14 +45,16 @@ public: void clear_items (); void add_menu_elem (Gtk::Menu_Helpers::Element e); + void append_text_item (std::string const& text); + void add_separator (); void append (Glib::RefPtr); + void append (Gtk::Menu&, Glib::RefPtr); void disable_scrolling(); Gtk::Menu_Helpers::MenuList& items () { return _menu.items (); } Gtk::Menu& menu () { return _menu; } - void append_text_item (std::string const& text); void set_active (std::string const& text); protected: