mirror of
https://github.com/RGBCube/serenity
synced 2025-05-22 15:55:07 +00:00
LibGUI: Add remove_tab and on_change to TabWidget
This commit is contained in:
parent
c0a4cf5e8d
commit
12c7375cdd
2 changed files with 15 additions and 0 deletions
|
@ -47,6 +47,12 @@ void TabWidget::add_widget(const StringView& title, Widget& widget)
|
||||||
add_child(widget);
|
add_child(widget);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TabWidget::remove_widget(Widget& widget)
|
||||||
|
{
|
||||||
|
m_tabs.remove_first_matching([&widget](auto& entry) { return &widget == entry.widget; });
|
||||||
|
remove_child(widget);
|
||||||
|
}
|
||||||
|
|
||||||
void TabWidget::set_active_widget(Widget* widget)
|
void TabWidget::set_active_widget(Widget* widget)
|
||||||
{
|
{
|
||||||
if (widget == m_active_widget)
|
if (widget == m_active_widget)
|
||||||
|
@ -58,6 +64,10 @@ void TabWidget::set_active_widget(Widget* widget)
|
||||||
if (m_active_widget) {
|
if (m_active_widget) {
|
||||||
m_active_widget->set_relative_rect(child_rect_for_size(size()));
|
m_active_widget->set_relative_rect(child_rect_for_size(size()));
|
||||||
m_active_widget->set_visible(true);
|
m_active_widget->set_visible(true);
|
||||||
|
deferred_invoke([this](auto&) {
|
||||||
|
if (on_change)
|
||||||
|
on_change(*m_active_widget);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
update_bar();
|
update_bar();
|
||||||
|
|
|
@ -53,6 +53,7 @@ public:
|
||||||
int container_padding() const { return 2; }
|
int container_padding() const { return 2; }
|
||||||
|
|
||||||
void add_widget(const StringView&, Widget&);
|
void add_widget(const StringView&, Widget&);
|
||||||
|
void remove_widget(Widget&);
|
||||||
|
|
||||||
template<class T, class... Args>
|
template<class T, class... Args>
|
||||||
T& add_tab(const StringView& title, Args&&... args)
|
T& add_tab(const StringView& title, Args&&... args)
|
||||||
|
@ -62,6 +63,10 @@ public:
|
||||||
return *t;
|
return *t;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void remove_tab(Widget& tab) { remove_widget(tab); }
|
||||||
|
|
||||||
|
Function<void(const Widget&)> on_change;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
TabWidget();
|
TabWidget();
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue