mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 04:58:13 +00:00
LibGUI: Add GLazyWidget, a convenience widget for lazily-built UI's
Here's how you can use this to speed up startup time: auto widget = GLazyWidget::construct(); widget->on_first_show = [](auto& self) { self.set_layout(...); ... }; Basically, it allows you to delay building the widget subtree until it's shown for the first time.
This commit is contained in:
parent
7e2b9c3c40
commit
183f7c9830
3 changed files with 40 additions and 0 deletions
20
Libraries/LibGUI/GLazyWidget.cpp
Normal file
20
Libraries/LibGUI/GLazyWidget.cpp
Normal file
|
@ -0,0 +1,20 @@
|
|||
#include <LibGUI/GLazyWidget.h>
|
||||
|
||||
GLazyWidget::GLazyWidget(GWidget* parent)
|
||||
: GWidget(parent)
|
||||
{
|
||||
}
|
||||
|
||||
GLazyWidget::~GLazyWidget()
|
||||
{
|
||||
}
|
||||
|
||||
void GLazyWidget::show_event(GShowEvent&)
|
||||
{
|
||||
if (m_has_been_shown)
|
||||
return;
|
||||
m_has_been_shown = true;
|
||||
|
||||
ASSERT(on_first_show);
|
||||
on_first_show(*this);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue