From 2fdc7a8878189b8e9a81b1d0f8a8dec525e2d76a Mon Sep 17 00:00:00 2001 From: Lynix Date: Tue, 11 Oct 2016 15:40:56 +0200 Subject: [PATCH] Sdk/BaseWidget: Add shortcut to create children widgets Former-commit-id: 5d5ca1d1097086c33133440c08806aec9e478b09 [formerly ca22426131332606a26dc3f33fcda615c7c03d81] [formerly 38913198afa19aa2f5f2ee0f90f99d3780cb3333 [formerly b592a482e9f71b01a3b068276c3bbdcf8dcdda49]] Former-commit-id: f464592f3d951614bc333bab9e0662fc1f8ad18e [formerly dd7f97b064a63188d227577e5f1f8dcc1526c2a3] Former-commit-id: 6463d207bbf06bcfb811abb249fe257ee5336c85 --- SDK/include/NDK/BaseWidget.hpp | 1 + SDK/include/NDK/BaseWidget.inl | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/SDK/include/NDK/BaseWidget.hpp b/SDK/include/NDK/BaseWidget.hpp index 38e593563..8d3ecd7bf 100644 --- a/SDK/include/NDK/BaseWidget.hpp +++ b/SDK/include/NDK/BaseWidget.hpp @@ -31,6 +31,7 @@ namespace Ndk BaseWidget(BaseWidget&&) = default; virtual ~BaseWidget(); + template T& Add(Args&&... args); inline void AddChild(std::unique_ptr&& widget); void EnableBackground(bool enable); diff --git a/SDK/include/NDK/BaseWidget.inl b/SDK/include/NDK/BaseWidget.inl index b5ab5b0f1..22b9e6249 100644 --- a/SDK/include/NDK/BaseWidget.inl +++ b/SDK/include/NDK/BaseWidget.inl @@ -17,6 +17,16 @@ namespace Ndk SetPadding(5.f, 5.f, 5.f, 5.f); } + template + inline T& BaseWidget::Add(Args&&... args) + { + std::unique_ptr widget = std::make_unique(this, std::forward(args)...); + T& widgetRef = *widget; + AddChild(std::move(widget)); + + return widgetRef; + } + inline void BaseWidget::AddChild(std::unique_ptr&& widget) { m_children.emplace_back(std::move(widget));