Support retrieving item y-range from ui::selector
This commit is contained in:
parent
cc6691c633
commit
55d2a48ff2
2 changed files with 12 additions and 0 deletions
|
|
@ -31,6 +31,8 @@ namespace psemek::ui
|
|||
virtual bool submenu(std::size_t index) const;
|
||||
virtual void clear();
|
||||
|
||||
virtual geom::interval<float> y_range(std::size_t index) const;
|
||||
|
||||
virtual std::optional<std::size_t> selected() const { return selected_; }
|
||||
virtual void on_selected(std::function<void(std::size_t)> callback);
|
||||
|
||||
|
|
|
|||
|
|
@ -125,13 +125,17 @@ namespace psemek::ui
|
|||
{
|
||||
container_.resize(size);
|
||||
submenu_.resize(size);
|
||||
child_boxes_.resize(size);
|
||||
}
|
||||
|
||||
void selector::add(std::shared_ptr<element> child, bool submenu)
|
||||
{
|
||||
std::size_t index = container_.add(child);
|
||||
if (index >= submenu_.size())
|
||||
{
|
||||
submenu_.resize(index + 1);
|
||||
child_boxes_.resize(submenu_.size());
|
||||
}
|
||||
submenu_[index] = submenu;
|
||||
}
|
||||
|
||||
|
|
@ -149,6 +153,12 @@ namespace psemek::ui
|
|||
{
|
||||
container_.clear();
|
||||
submenu_.clear();
|
||||
child_boxes_.clear();
|
||||
}
|
||||
|
||||
geom::interval<float> selector::y_range(std::size_t index) const
|
||||
{
|
||||
return child_boxes_[index][1];
|
||||
}
|
||||
|
||||
void selector::on_selected(std::function<void(std::size_t)> callback)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue