diff --git a/SDK/include/NDK/BaseWidget.hpp b/SDK/include/NDK/BaseWidget.hpp index 8d3ecd7bf..3c1562e6a 100644 --- a/SDK/include/NDK/BaseWidget.hpp +++ b/SDK/include/NDK/BaseWidget.hpp @@ -34,6 +34,8 @@ namespace Ndk template T& Add(Args&&... args); inline void AddChild(std::unique_ptr&& widget); + inline void Center(); + void EnableBackground(bool enable); //virtual BaseWidget* Clone() const = 0; diff --git a/SDK/include/NDK/BaseWidget.inl b/SDK/include/NDK/BaseWidget.inl index 22b9e6249..0b13ee7c7 100644 --- a/SDK/include/NDK/BaseWidget.inl +++ b/SDK/include/NDK/BaseWidget.inl @@ -32,6 +32,15 @@ namespace Ndk m_children.emplace_back(std::move(widget)); } + inline void BaseWidget::Center() + { + NazaraAssert(m_widgetParent, "Widget has no parent"); + + Nz::Vector2f parentSize = m_widgetParent->GetSize(); + Nz::Vector2f mySize = GetSize(); + SetPosition((parentSize.x - mySize.x) / 2.f, (parentSize.y - mySize.y) / 2.f); + } + inline Canvas* BaseWidget::GetCanvas() { return m_canvas; diff --git a/SDK/src/NDK/BaseWidget.cpp b/SDK/src/NDK/BaseWidget.cpp index f72ace844..b9e0f6b3c 100644 --- a/SDK/src/NDK/BaseWidget.cpp +++ b/SDK/src/NDK/BaseWidget.cpp @@ -17,6 +17,7 @@ namespace Ndk NazaraAssert(parent->GetCanvas(), "Parent has no canvas"); m_canvas = parent->GetCanvas(); + m_widgetParent = parent; m_world = m_canvas->GetWorld(); m_canvasIndex = m_canvas->RegisterWidget(this); diff --git a/SDK/src/NDK/Canvas.cpp b/SDK/src/NDK/Canvas.cpp index e8ee8c387..4f9723146 100644 --- a/SDK/src/NDK/Canvas.cpp +++ b/SDK/src/NDK/Canvas.cpp @@ -10,7 +10,7 @@ namespace Ndk { - void Ndk::Canvas::ResizeToContent() + void Canvas::ResizeToContent() { }