summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Userland/Libraries/LibGUI/Window.h8
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)...);