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 bool submenu(std::size_t index) const;
|
||||||
virtual void clear();
|
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 std::optional<std::size_t> selected() const { return selected_; }
|
||||||
virtual void on_selected(std::function<void(std::size_t)> callback);
|
virtual void on_selected(std::function<void(std::size_t)> callback);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -125,13 +125,17 @@ namespace psemek::ui
|
||||||
{
|
{
|
||||||
container_.resize(size);
|
container_.resize(size);
|
||||||
submenu_.resize(size);
|
submenu_.resize(size);
|
||||||
|
child_boxes_.resize(size);
|
||||||
}
|
}
|
||||||
|
|
||||||
void selector::add(std::shared_ptr<element> child, bool submenu)
|
void selector::add(std::shared_ptr<element> child, bool submenu)
|
||||||
{
|
{
|
||||||
std::size_t index = container_.add(child);
|
std::size_t index = container_.add(child);
|
||||||
if (index >= submenu_.size())
|
if (index >= submenu_.size())
|
||||||
|
{
|
||||||
submenu_.resize(index + 1);
|
submenu_.resize(index + 1);
|
||||||
|
child_boxes_.resize(submenu_.size());
|
||||||
|
}
|
||||||
submenu_[index] = submenu;
|
submenu_[index] = submenu;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -149,6 +153,12 @@ namespace psemek::ui
|
||||||
{
|
{
|
||||||
container_.clear();
|
container_.clear();
|
||||||
submenu_.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)
|
void selector::on_selected(std::function<void(std::size_t)> callback)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue