diff options
author | Andreas Kling <kling@serenityos.org> | 2021-11-24 13:12:39 +0100 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2021-11-24 13:52:01 +0100 |
commit | dc47fce2d925a4fd929331354e22f502435ef4f1 (patch) | |
tree | 9a47b27983ae0b68ed7ccc7f8d0274d13b70a2a7 /Userland/Libraries/LibGUI | |
parent | bde9c2bc65df955a12dd1270016de8a3aa1a50b4 (diff) | |
download | serenity-dc47fce2d925a4fd929331354e22f502435ef4f1.zip |
LibGUI: Add GUI::Window::try_set_main_widget<T>(...)
This is a fallible variant of set_main_widget<T>() that returns ErrorOr.
Diffstat (limited to 'Userland/Libraries/LibGUI')
-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)...); |