3#include "../UI/Components/CImage.hpp"
4#include "Generics/IXUIElement.hpp"
5#include "Generics/IXUIBindable.hpp"
6#include "Generics/IXUIElementReady.hpp"
10 using namespace UnityEngine;
11 using namespace UnityEngine::UI;
18 public std::enable_shared_from_this<XUIImage>
29 std::shared_ptr<XUIImage> AsShared() {
return std::enable_shared_from_this<XUIImage>::shared_from_this(); }
41 static constexpr ETypeID TypeID = ETypeID::Image;
42 using Ptr = std::shared_ptr<XUIImage>;
44 XUIImage(CP_SDK_PRIV_TAG_ARG(), std::u16string_view p_Name, _u::Sprite* p_Sprite)
54 static Ptr
Make(_u::Sprite* p_Sprite =
nullptr)
56 return std::make_shared<XUIImage>(CP_SDK_PRIV_TAG_VAL(), u
"XUIImage", p_Sprite);
61 static Ptr
Make(std::u16string_view p_Name, _u::Sprite* p_Sprite =
nullptr)
63 return std::make_shared<XUIImage>(CP_SDK_PRIV_TAG_VAL(), p_Name, p_Sprite);
69 virtual void BuildUI(_u::Transform* p_Parent)
override
73 try { m_OnReady(m_Element.Ptr()); m_OnReady.Clear(); }
74 catch (
const std::exception& l_Exception)
86 if (m_Element) p_Functor(m_Element.Ptr());
87 else m_OnReady += p_Functor;
92 virtual XUIImage*
Bind(std::shared_ptr<XUIImage>* p_Target)
override
94 *p_Target = std::enable_shared_from_this<XUIImage>::shared_from_this();
122 XUIImage*
SetColor(_u::Color p_Color) XUI_PROXY_IMPL(_v::CImage, { x->SetColor(p_Color); })
static Logging::ILogger * Logger()
Logger instance.
CImage * SetType(_u::Image::Type p_Type)
Set type.
CImage * SetMinHeight(float p_Height)
Set min height.
CImage * SetHeight(float p_Height)
Set preferred height.
CImage * SetSprite(_u::Sprite *p_Sprite)
Set sprite.
CImage * SetEnhancedImage(const Unity::EnhancedImage::Ptr &p_EnhancedImage)
Set enhanced image.
CImage * SetPixelsPerUnitMultiplier(float p_Multiplier)
Set pixels per unit multiplier.
IXUIElement Bind interface.
std::u16string_view GetInitialName()
Get initial name.
IXUIElement OnReady functor interface.
virtual XUIImage * OnReady(_v::CActionRef< _v::CImage * > p_Functor) override
IXUIElement OnReady functor interface.
virtual void BuildUI(_u::Transform *p_Parent) override
BuildUI for this element into p_Parent transform.
static Ptr Make(_u::Sprite *p_Sprite=nullptr)
Constructor.
virtual XUIImage * Bind(std::shared_ptr< XUIImage > *p_Target) override
On ready, bind.
XUIImage * SetPixelsPerUnitMultiplier(float p_Multiplier) XUI_PROXY_IMPL(_v
Set pixels per unit multiplier.
XUIImage * SetMinWidth(float p_Width) XUI_PROXY_IMPL(_v
Set min width.
static Ptr Make(std::u16string_view p_Name, _u::Sprite *p_Sprite=nullptr)
Constructor.
XUIImage * SetActive(bool p_Active) XUI_PROXY_IMPL(_v
Set game object active state.
XUIImage * SetSprite(_u::Sprite *p_Sprite) XUI_PROXY_IMPL(_v
Set sprite.
XUIImage * SetType(_u::Image::Type p_Type) XUI_PROXY_IMPL(_v
Set type.
XUIImage * SetMinHeight(float p_Height) XUI_PROXY_IMPL(_v
Set min height.
XUIImage * SetEnhancedImage(Unity::EnhancedImage::Ptr p_EnhancedImage) XUI_PROXY_IMPL(_v
Set enhanced image.
XUIImage * SetWidth(float p_Width) XUI_PROXY_IMPL(_v
Set preferred width.
XUIImage * SetHeight(float p_Height) XUI_PROXY_IMPL(_v
Set preferred height.
XUIImage * SetColor(_u::Color p_Color) XUI_PROXY_IMPL(_v
Set color.
Tree like syntax CP_SDK::UI builder.