diff --git a/Userland/Libraries/LibGUI/Widget.h b/Userland/Libraries/LibGUI/Widget.h index ba27266ce4..d8074de3f5 100644 --- a/Userland/Libraries/LibGUI/Widget.h +++ b/Userland/Libraries/LibGUI/Widget.h @@ -61,6 +61,14 @@ public: const Layout* layout() const { return m_layout.ptr(); } void set_layout(NonnullRefPtr); + template + ErrorOr> try_set_layout(Args&&... args) + { + auto layout = TRY(T::try_create(forward(args)...)); + set_layout(*layout); + return layout; + } + template inline T& set_layout(Args&&... args) {