diff --git a/libs/ui/include/psemek/ui/selector.hpp b/libs/ui/include/psemek/ui/selector.hpp index 41497d9e..433b2ef1 100644 --- a/libs/ui/include/psemek/ui/selector.hpp +++ b/libs/ui/include/psemek/ui/selector.hpp @@ -43,6 +43,8 @@ namespace psemek::ui virtual callback_type on_selected() const; + virtual geom::box const & item_box(std::size_t index) const { return child_boxes_[index]; } + protected: // extra width for each element with a submenu @@ -55,8 +57,6 @@ namespace psemek::ui virtual void release_submenu(); - std::vector> child_boxes_; - private: std::vector> children_; std::vector children_range_; @@ -66,6 +66,8 @@ namespace psemek::ui selector * active_submenu_ = nullptr; float active_submenu_y_ = 0.f; + std::vector> child_boxes_; + std::optional selected_; callback_type callback_;