From 7cab7cacaa0ef4dfbbbda921c37182f9a47440b2 Mon Sep 17 00:00:00 2001 From: Lynix Date: Tue, 11 Oct 2016 15:41:19 +0200 Subject: [PATCH] Sdk/BaseWidget: Add Center() method Former-commit-id: 337837199f8909bd39dd10129b379331e9344dd7 [formerly e29dfa72869a7e4831cdf1880db92a7f96cb7755] [formerly fef5a65af9b6bc7b12813a79db818aa6f8034c5f [formerly 5e38bf5eda4f96df7bb2f13d406830a48f293bb9]] Former-commit-id: b06665741f29f91b9e26fe270e6addd699c5111b [formerly aaf5e62dbdda284ec70dae55b7c37c5e86b75ebc] Former-commit-id: a9c1a3dc6df30f1688ad9143ba56912d02285c19 --- SDK/include/NDK/BaseWidget.hpp | 2 ++ SDK/include/NDK/BaseWidget.inl | 9 +++++++++ SDK/src/NDK/BaseWidget.cpp | 1 + SDK/src/NDK/Canvas.cpp | 2 +- 4 files changed, 13 insertions(+), 1 deletion(-) 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() { }