3#include "../UI/Components/CText.hpp"
4#include "Generics/IXUIElement.hpp"
5#include "Generics/IXUIBindable.hpp"
6#include "Generics/IXUIElementReady.hpp"
15 public std::enable_shared_from_this<XUIText>
17 CP_SDK_NO_COPYMOVE_CTORS(
XUIText);
26 std::shared_ptr<XUIText> AsShared() {
return std::enable_shared_from_this<XUIText>::shared_from_this(); }
38 static constexpr ETypeID TypeID = ETypeID::Text;
39 using Ptr = std::shared_ptr<XUIText>;
41 XUIText(CP_SDK_PRIV_TAG_ARG(), std::u16string_view p_Name, std::u16string_view p_Text)
44 SetText(std::u16string(p_Text));
50 static Ptr
Make(std::u16string_view p_Text)
52 return std::make_shared<XUIText>(CP_SDK_PRIV_TAG_VAL(), u
"XUIText", p_Text);
57 static Ptr
Make(std::u16string_view p_Name, std::u16string_view p_Text)
59 return std::make_shared<XUIText>(CP_SDK_PRIV_TAG_VAL(), p_Name, p_Text);
65 virtual void BuildUI(_u::Transform* p_Parent)
override
69 try { m_OnReady(m_Element.Ptr()); m_OnReady.Clear(); }
70 catch (
const std::exception& l_Exception)
82 if (m_Element) p_Functor(m_Element.Ptr());
83 else m_OnReady += p_Functor;
88 virtual XUIText*
Bind(std::shared_ptr<XUIText>* p_Target)
override
90 *p_Target = std::enable_shared_from_this<XUIText>::shared_from_this();
102 XUIText*
SetAlign(_u::TextAlignmentOptions p_Align) XUI_PROXY_IMPL(_v::CText, { x->SetAlign(p_Align); })
static Logging::ILogger * Logger()
Logger instance.
CText * SetMargins(float p_Left, float p_Top, float p_Right, float p_Bottom)
Set margins.
CText * SetFontSize(float p_Size)
Set font size.
CText * SetColor(_u::Color p_Color)
Set color.
CText * SetText(std::u16string_view p_Text)
Set button text.
CText * SetAlpha(float p_Alpha)
Set alpha.
CText * SetStyle(_u::FontStyles p_Style)
Set style.
CText * SetOverflowMode(_u::TextOverflowModes p_OverflowMode)
Set overflow mode.
CText * SetWrapping(bool p_Wrapping)
Set wrapping.
CText * SetFontSizes(float p_MinSize, float p_MaxSize)
Set font sizes.
IXUIElement Bind interface.
std::u16string_view GetInitialName()
Get initial name.
IXUIElement OnReady functor interface.
XUIText * SetStyle(_u::FontStyles p_Style) XUI_PROXY_IMPL(_v
Set style.
XUIText * SetMargins(float p_Left, float p_Top, float p_Right, float p_Bottom) XUI_PROXY_IMPL(_v
Set margins.
XUIText * SetText(std::u16string p_Text) XUI_PROXY_IMPL(_v
Set button text.
XUIText * SetFontSize(float p_Size) XUI_PROXY_IMPL(_v
Set font size.
virtual XUIText * OnReady(_v::CActionRef< _v::CText * > p_Functor) override
IXUIElement OnReady functor interface.
XUIText * SetFontSizes(float p_MinSize, float p_MaxSize) XUI_PROXY_IMPL(_v
Set font size.
static Ptr Make(std::u16string_view p_Name, std::u16string_view p_Text)
Constructor.
XUIText * SetColor(Color p_Color) XUI_PROXY_IMPL(_v
Set color.
XUIText * SetOverflowMode(_u::TextOverflowModes p_OverflowMode) XUI_PROXY_IMPL(_v
Set overflow mode.
XUIText * SetWrapping(bool p_Wrapping) XUI_PROXY_IMPL(_v
Set wrapping.
XUIText * SetAlign(_u::TextAlignmentOptions p_Align) XUI_PROXY_IMPL(_v
Set align.
static Ptr Make(std::u16string_view p_Text)
Constructor.
virtual void BuildUI(_u::Transform *p_Parent) override
BuildUI for this element into p_Parent transform.
XUIText * SetActive(bool p_Active) XUI_PROXY_IMPL(_v
Set game object active state.
virtual XUIText * Bind(std::shared_ptr< XUIText > *p_Target) override
On ready, bind.
XUIText * SetAlpha(float p_Alpha) XUI_PROXY_IMPL(_v
Set alpha.
Tree like syntax CP_SDK::UI builder.