diff --git a/include/Nazara/Widgets/LabelWidget.hpp b/include/Nazara/Widgets/LabelWidget.hpp index f39e6eed1..4cc91d97a 100644 --- a/include/Nazara/Widgets/LabelWidget.hpp +++ b/include/Nazara/Widgets/LabelWidget.hpp @@ -29,7 +29,7 @@ namespace Nz LabelWidget& operator=(LabelWidget&&) = default; private: - entt::entity m_textEntity; + entt::entity m_entity; std::shared_ptr m_textSprite; }; } diff --git a/src/Nazara/Widgets/BaseWidget.cpp b/src/Nazara/Widgets/BaseWidget.cpp index c5e76828c..05482e090 100644 --- a/src/Nazara/Widgets/BaseWidget.cpp +++ b/src/Nazara/Widgets/BaseWidget.cpp @@ -184,11 +184,14 @@ namespace Nz else UnregisterFromCanvas(); + auto& registry = GetRegistry(); for (WidgetEntity& entity : m_entities) { if (entity.isEnabled) { - //entity.handle->Enable(show); //< This will override isEnabled, so reset it next line + if (GraphicsComponent* gfx = registry.try_get(entity.handle)) + gfx->Show(show); + entity.isEnabled = true; } } @@ -200,29 +203,10 @@ namespace Nz entt::entity BaseWidget::CreateEntity() { entt::entity newEntity = m_registry->create(); - //newEntity->Enable(m_visible); m_entities.emplace_back(); WidgetEntity& newWidgetEntity = m_entities.back(); newWidgetEntity.handle = newEntity; - /*newWidgetEntity.onDisabledSlot.Connect(newEntity->OnEntityDisabled, [this](Entity* entity) - { - auto it = std::find_if(m_entities.begin(), m_entities.end(), [&](const WidgetEntity& widgetEntity) { return widgetEntity.handle == entity; }); - NazaraAssert(it != m_entities.end(), "Entity does not belong to this widget"); - - it->isEnabled = false; - }); - - newWidgetEntity.onEnabledSlot.Connect(newEntity->OnEntityEnabled, [this](Entity* entity) - { - auto it = std::find_if(m_entities.begin(), m_entities.end(), [&](const WidgetEntity& widgetEntity) { return widgetEntity.handle == entity; }); - NazaraAssert(it != m_entities.end(), "Entity does not belong to this widget"); - - if (!IsVisible()) - entity->Disable(); // Next line will override isEnabled status - - it->isEnabled = true; - });*/ return newEntity; } diff --git a/src/Nazara/Widgets/ButtonWidget.cpp b/src/Nazara/Widgets/ButtonWidget.cpp index a8ec9b730..c759965c3 100644 --- a/src/Nazara/Widgets/ButtonWidget.cpp +++ b/src/Nazara/Widgets/ButtonWidget.cpp @@ -26,12 +26,7 @@ namespace Nz entt::registry& registry = GetRegistry(); UInt32 renderMask = GetCanvas()->GetRenderMask(); - m_gradientMaterialPass = std::make_shared(BasicMaterial::GetSettings()); - - auto gradientMaterial = std::make_shared(); - gradientMaterial->AddPass("ForwardPass", m_gradientMaterialPass); - - m_gradientSprite = std::make_shared(gradientMaterial); + m_gradientSprite = std::make_shared(Widgets::Instance()->GetOpaqueMaterial()); m_gradientSprite->SetColor(m_color); m_gradientSprite->SetCornerColor(RectCorner::LeftBottom, m_cornerColor); m_gradientSprite->SetCornerColor(RectCorner::RightBottom, m_cornerColor); diff --git a/src/Nazara/Widgets/LabelWidget.cpp b/src/Nazara/Widgets/LabelWidget.cpp index 42b1f0b06..531f1f2e9 100644 --- a/src/Nazara/Widgets/LabelWidget.cpp +++ b/src/Nazara/Widgets/LabelWidget.cpp @@ -17,9 +17,15 @@ namespace Nz { m_textSprite = std::make_shared(Widgets::Instance()->GetTransparentMaterial()); - m_textEntity = CreateEntity(); - GetRegistry().emplace(m_textEntity).AttachRenderable(m_textSprite, GetCanvas()->GetRenderMask()); - GetRegistry().emplace(m_textEntity).SetParent(this); + auto& registry = GetRegistry(); + + m_entity = CreateEntity(); + + auto& gfxComponent = registry.emplace(m_entity, IsVisible()); + gfxComponent.AttachRenderable(m_textSprite, GetCanvas()->GetRenderMask()); + + auto& nodeComponent = registry.emplace(m_entity); + nodeComponent.SetParent(this); Layout(); }