osb/source/windowing/StarPortraitWidget.hpp
2024-02-25 15:46:47 +01:00

45 lines
893 B
C++

#pragma once
#include "StarWidget.hpp"
#include "StarPlayer.hpp"
namespace Star {
STAR_CLASS(Player);
STAR_CLASS(PortraitWidget);
class PortraitWidget : public Widget {
public:
PortraitWidget(PortraitEntityPtr entity, PortraitMode mode = PortraitMode::Full);
PortraitWidget();
virtual ~PortraitWidget() {}
void setEntity(PortraitEntityPtr entity);
void setMode(PortraitMode mode);
void setScale(float scale);
void setIconMode();
void setRenderHumanoid(bool);
bool sendEvent(InputEvent const& event);
protected:
virtual RectI getScissorRect() const;
virtual void renderImpl();
private:
void init();
void updateSize();
PortraitEntityPtr m_entity;
PortraitMode m_portraitMode;
AssetPath m_noEntityImageFull;
AssetPath m_noEntityImagePart;
float m_scale;
bool m_renderHumanoid;
bool m_iconMode;
AssetPath m_iconImage;
Vec2I m_iconOffset;
};
}