diff options
-rw-r--r-- | Userland/Libraries/LibGUI/Window.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/Userland/Libraries/LibGUI/Window.h b/Userland/Libraries/LibGUI/Window.h index 3e5ee31bbf..8cca40b193 100644 --- a/Userland/Libraries/LibGUI/Window.h +++ b/Userland/Libraries/LibGUI/Window.h @@ -136,6 +136,14 @@ public: void set_main_widget(Widget*); template<class T, class... Args> + inline ErrorOr<NonnullRefPtr<T>> try_set_main_widget(Args&&... args) + { + auto widget = TRY(T::try_create(forward<Args>(args)...)); + set_main_widget(widget.ptr()); + return widget; + } + + template<class T, class... Args> inline T& set_main_widget(Args&&... args) { auto widget = T::construct(forward<Args>(args)...); |