mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-05-05 06:32:30 +02:00
LibGUI: Add remove_tab and on_change to TabWidget
This commit is contained in:
Notes:
sideshowbarker
2024-07-19 07:52:19 +09:00
Author: https://github.com/oriko1010 Commit: https://github.com/SerenityOS/serenity/commit/12c7375cdd4 Pull-request: https://github.com/SerenityOS/serenity/pull/1660
@@ -47,6 +47,12 @@ void TabWidget::add_widget(const StringView& title, Widget& 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)
|
||||
{
|
||||
if (widget == m_active_widget)
|
||||
@@ -58,6 +64,10 @@ void TabWidget::set_active_widget(Widget* widget)
|
||||
if (m_active_widget) {
|
||||
m_active_widget->set_relative_rect(child_rect_for_size(size()));
|
||||
m_active_widget->set_visible(true);
|
||||
deferred_invoke([this](auto&) {
|
||||
if (on_change)
|
||||
on_change(*m_active_widget);
|
||||
});
|
||||
}
|
||||
|
||||
update_bar();
|
||||
|
||||
Reference in New Issue
Block a user