Widgets: Add SimpleLabelWidget
A simpler alternative to LabelWidget
This commit is contained in:
34
src/Nazara/Widgets/AbstractLabelWidget.cpp
Normal file
34
src/Nazara/Widgets/AbstractLabelWidget.cpp
Normal file
@@ -0,0 +1,34 @@
|
||||
// Copyright (C) 2024 Jérôme "SirLynix" Leclercq (lynix680@gmail.com)
|
||||
// This file is part of the "Nazara Engine - Widgets module"
|
||||
// For conditions of distribution and use, see copyright notice in Config.hpp
|
||||
|
||||
#include <Nazara/Widgets/AbstractLabelWidget.hpp>
|
||||
#include <Nazara/Utility/AbstractTextDrawer.hpp>
|
||||
#include <Nazara/Widgets/Debug.hpp>
|
||||
|
||||
namespace Nz
|
||||
{
|
||||
AbstractLabelWidget::AbstractLabelWidget(BaseWidget* parent) :
|
||||
BaseWidget(parent)
|
||||
{
|
||||
m_style = GetTheme()->CreateStyle(this);
|
||||
SetRenderLayerCount(m_style->GetRenderLayerCount());
|
||||
|
||||
Layout();
|
||||
}
|
||||
|
||||
void AbstractLabelWidget::OnMouseEnter()
|
||||
{
|
||||
m_style->OnHoverBegin();
|
||||
}
|
||||
|
||||
void AbstractLabelWidget::OnMouseExit()
|
||||
{
|
||||
m_style->OnHoverEnd();
|
||||
}
|
||||
|
||||
void AbstractLabelWidget::OnRenderLayerUpdated(int baseRenderLayer)
|
||||
{
|
||||
m_style->UpdateRenderLayer(baseRenderLayer);
|
||||
}
|
||||
}
|
||||
@@ -218,7 +218,7 @@ namespace Nz
|
||||
return std::make_unique<SimpleImageButtonWidgetStyle>(imageButtonWidget, styleConfig);
|
||||
}
|
||||
|
||||
std::unique_ptr<LabelWidgetStyle> DefaultWidgetTheme::CreateStyle(LabelWidget* labelWidget) const
|
||||
std::unique_ptr<LabelWidgetStyle> DefaultWidgetTheme::CreateStyle(AbstractLabelWidget* labelWidget) const
|
||||
{
|
||||
return std::make_unique<SimpleLabelWidgetStyle>(labelWidget, Widgets::Instance()->GetTransparentMaterial());
|
||||
}
|
||||
|
||||
@@ -8,15 +8,6 @@
|
||||
|
||||
namespace Nz
|
||||
{
|
||||
LabelWidget::LabelWidget(BaseWidget* parent) :
|
||||
BaseWidget(parent)
|
||||
{
|
||||
m_style = GetTheme()->CreateStyle(this);
|
||||
SetRenderLayerCount(m_style->GetRenderLayerCount());
|
||||
|
||||
Layout();
|
||||
}
|
||||
|
||||
void LabelWidget::UpdateText(const AbstractTextDrawer& drawer)
|
||||
{
|
||||
m_style->UpdateText(drawer);
|
||||
@@ -27,19 +18,4 @@ namespace Nz
|
||||
|
||||
Layout();
|
||||
}
|
||||
|
||||
void LabelWidget::OnMouseEnter()
|
||||
{
|
||||
m_style->OnHoverBegin();
|
||||
}
|
||||
|
||||
void LabelWidget::OnMouseExit()
|
||||
{
|
||||
m_style->OnHoverEnd();
|
||||
}
|
||||
|
||||
void LabelWidget::OnRenderLayerUpdated(int baseRenderLayer)
|
||||
{
|
||||
m_style->UpdateRenderLayer(baseRenderLayer);
|
||||
}
|
||||
}
|
||||
|
||||
26
src/Nazara/Widgets/SimpleLabelWidget.cpp
Normal file
26
src/Nazara/Widgets/SimpleLabelWidget.cpp
Normal file
@@ -0,0 +1,26 @@
|
||||
// Copyright (C) 2024 Jérôme "SirLynix" Leclercq (lynix680@gmail.com)
|
||||
// This file is part of the "Nazara Engine - Widgets module"
|
||||
// For conditions of distribution and use, see copyright notice in Config.hpp
|
||||
|
||||
#include <Nazara/Widgets/SimpleLabelWidget.hpp>
|
||||
#include <Nazara/Utility/AbstractTextDrawer.hpp>
|
||||
#include <Nazara/Widgets/Debug.hpp>
|
||||
|
||||
namespace Nz
|
||||
{
|
||||
void SimpleLabelWidget::UpdateText()
|
||||
{
|
||||
m_style->UpdateText(m_drawer);
|
||||
}
|
||||
|
||||
void SimpleLabelWidget::UpdateTextAndSize()
|
||||
{
|
||||
m_style->UpdateText(m_drawer);
|
||||
|
||||
Vector2f size(m_drawer.GetBounds().GetLengths());
|
||||
SetMinimumSize(size);
|
||||
SetPreferredSize(size);
|
||||
|
||||
Layout();
|
||||
}
|
||||
}
|
||||
@@ -5,11 +5,11 @@
|
||||
#include <Nazara/Widgets/SimpleWidgetStyles.hpp>
|
||||
#include <Nazara/Graphics/Components/GraphicsComponent.hpp>
|
||||
#include <Nazara/Utility/Components/NodeComponent.hpp>
|
||||
#include <Nazara/Widgets/AbstractLabelWidget.hpp>
|
||||
#include <Nazara/Widgets/ButtonWidget.hpp>
|
||||
#include <Nazara/Widgets/Canvas.hpp>
|
||||
#include <Nazara/Widgets/CheckboxWidget.hpp>
|
||||
#include <Nazara/Widgets/ImageButtonWidget.hpp>
|
||||
#include <Nazara/Widgets/LabelWidget.hpp>
|
||||
#include <Nazara/Widgets/ProgressBarWidget.hpp>
|
||||
#include <Nazara/Widgets/ScrollAreaWidget.hpp>
|
||||
#include <Nazara/Widgets/ScrollbarButtonWidget.hpp>
|
||||
@@ -342,7 +342,7 @@ namespace Nz
|
||||
|
||||
/************************************************************************/
|
||||
|
||||
SimpleLabelWidgetStyle::SimpleLabelWidgetStyle(LabelWidget* labelWidget, std::shared_ptr<MaterialInstance> material, std::shared_ptr<MaterialInstance> hoveredMaterial) :
|
||||
SimpleLabelWidgetStyle::SimpleLabelWidgetStyle(AbstractLabelWidget* labelWidget, std::shared_ptr<MaterialInstance> material, std::shared_ptr<MaterialInstance> hoveredMaterial) :
|
||||
LabelWidgetStyle(labelWidget, 1),
|
||||
m_hoveredMaterial(std::move(hoveredMaterial)),
|
||||
m_material(std::move(material))
|
||||
|
||||
Reference in New Issue
Block a user