Forráskód Böngészése

LibGUI: Add GUI::Window::try_set_main_widget<T>(...)

This is a fallible variant of set_main_widget<T>() that returns ErrorOr.
Andreas Kling 3 éve
szülő
commit
dc47fce2d9
1 módosított fájl, 8 hozzáadás és 0 törlés
  1. 8 0
      Userland/Libraries/LibGUI/Window.h

+ 8 - 0
Userland/Libraries/LibGUI/Window.h

@@ -135,6 +135,14 @@ public:
     const Widget* main_widget() const { return m_main_widget; }
     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)
     {