1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 06:37:44 +00:00

LibGUI: Add GUI::Widget::try_set_layout<T>(...)

This is a fallible variant of set_layout<T>(...) that returns ErrorOr.
This commit is contained in:
Andreas Kling 2021-11-24 13:11:09 +01:00
parent bc79be362d
commit 6b79745aa4

View file

@ -61,6 +61,14 @@ public:
const Layout* layout() const { return m_layout.ptr(); } const Layout* layout() const { return m_layout.ptr(); }
void set_layout(NonnullRefPtr<Layout>); void set_layout(NonnullRefPtr<Layout>);
template<class T, class... Args>
ErrorOr<NonnullRefPtr<T>> try_set_layout(Args&&... args)
{
auto layout = TRY(T::try_create(forward<Args>(args)...));
set_layout(*layout);
return layout;
}
template<class T, class... Args> template<class T, class... Args>
inline T& set_layout(Args&&... args) inline T& set_layout(Args&&... args)
{ {