41 #ifndef __CU_LABEL_H__
42 #define __CU_LABEL_H__
45 #include <cugl/2d/CUNode.h>
46 #include <cugl/2d/CUFont.h>
224 std::shared_ptr<Texture> _texture;
228 #pragma mark Constructors
253 virtual void dispose()
override;
263 CUAssertLog(
false,
"This node does not support the empty initializer");
277 bool init(
const Size& size,
const std::shared_ptr<Font>& font);
296 bool initWithText(
const char* text,
const std::shared_ptr<Font>& font) {
317 bool initWithText(
const std::string& text,
const std::shared_ptr<Font>& font);
347 #pragma mark Static Constructors
358 static std::shared_ptr<Label>
alloc(
const Size& size,
const std::shared_ptr<Font>& font) {
359 std::shared_ptr<Label> result = std::make_shared<Label>();
360 return (result->init(size,font) ? result :
nullptr);
380 static std::shared_ptr<Label>
alloc(
const std::string& text,
const std::shared_ptr<Font>& font) {
381 std::shared_ptr<Label> result = std::make_shared<Label>();
382 return (result->initWithText(text,font) ? result :
nullptr);
405 static std::shared_ptr<Label>
alloc(
const char* text,
const std::shared_ptr<Font>& font) {
406 std::shared_ptr<Label> result = std::make_shared<Label>();
407 return (result->initWithText(text,font) ? result :
nullptr);
436 const std::shared_ptr<JsonValue>& data) {
437 std::shared_ptr<Label> result = std::make_shared<Label>();
438 if (!result->initWithData(loader,data)) { result =
nullptr; }
439 return std::dynamic_pointer_cast<
Node>(result);
443 #pragma mark Text Attributes
476 virtual void setText(
const std::string& text,
bool resize=
false);
726 #pragma mark Other Attributes
784 void setFont(
const std::shared_ptr<Font>& font,
bool resize=
false);
787 #pragma mark Rendering
806 void setBlendFunc(GLenum srcFactor, GLenum dstFactor) { _srcFactor = srcFactor; _dstFactor = dstFactor; }
890 virtual void draw(
const std::shared_ptr<SpriteBatch>& batch,
const Mat4& transform,
Color4 tint)
override;
894 #pragma mark Internal Helpers
910 void generateRenderData();
915 void clearRenderData();
virtual void setContentSize(const Size &size) override
float x
Definition: CUVec2.h:66
GLenum _srcFactor
Definition: CULabel.h:214
float y
Definition: CUVec2.h:68
const Rect & getTextBounds() const
Definition: CULabel.h:656
bool _rendered
Definition: CULabel.h:219
Rect _textbounds
Definition: CULabel.h:195
bool initWithText(const char *text, const std::shared_ptr< Font > &font)
Definition: CULabel.h:296
void setPaddingX(float padx)
Definition: CULabel.h:578
virtual void draw(const std::shared_ptr< SpriteBatch > &batch, const Mat4 &transform, Color4 tint) override
const std::string & getText() const
Definition: CULabel.h:455
VAlign _valign
Definition: CULabel.h:204
~Label()
Definition: CULabel.h:242
VAlign getVerticalAlignment() const
Definition: CULabel.h:627
GLenum _blendEquation
Definition: CULabel.h:212
GLenum getDestinationBlendFactor() const
Definition: CULabel.h:834
static std::shared_ptr< Label > alloc(const std::string &text, const std::shared_ptr< Font > &font)
Definition: CULabel.h:380
Vec2 _padding
Definition: CULabel.h:200
virtual bool initWithData(const SceneLoader *loader, const std::shared_ptr< JsonValue > &data) override
GLenum getSourceBlendFactor() const
Definition: CULabel.h:820
HAlign _halign
Definition: CULabel.h:202
std::vector< Vertex2 > _vertices
Definition: CULabel.h:221
virtual void setText(const std::string &text, bool resize=false)
std::shared_ptr< Font > getFont() const
Definition: CULabel.h:774
Color4 getBackground() const
Definition: CULabel.h:756
Color4 getForeground() const
Definition: CULabel.h:735
const Vec2 & getPadding() const
Definition: CULabel.h:494
float getBaseLine() const
Color4 _foreground
Definition: CULabel.h:207
static std::shared_ptr< Label > alloc(const char *text, const std::shared_ptr< Font > &font)
Definition: CULabel.h:405
void setPaddingY(float pady)
Definition: CULabel.h:595
HAlign
Definition: CULabel.h:85
void setBackground(Color4 color)
void setForeground(Color4 color)
Definition: CULabel.h:745
Color4 _background
Definition: CULabel.h:209
virtual bool init() override
Definition: CULabel.h:262
void setBlendEquation(GLenum equation)
Definition: CULabel.h:851
GLenum getBlendEquation() const
Definition: CULabel.h:865
Rect _truebounds
Definition: CULabel.h:197
virtual void dispose() override
GLenum _dstFactor
Definition: CULabel.h:216
void setPadding(const Vec2 &padding)
Definition: CULabel.h:542
Vec2 origin
Definition: CURect.h:49
void setFont(const std::shared_ptr< Font > &font, bool resize=false)
std::vector< unsigned short > _indices
Definition: CULabel.h:223
float getPaddingX() const
Definition: CULabel.h:509
Definition: CUSceneLoader.h:77
std::string _text
Definition: CULabel.h:193
std::shared_ptr< Font > _font
Definition: CULabel.h:190
Size size
Definition: CURect.h:51
static std::shared_ptr< Node > allocWithData(const SceneLoader *loader, const std::shared_ptr< JsonValue > &data)
Definition: CULabel.h:435
void setBlendFunc(GLenum srcFactor, GLenum dstFactor)
Definition: CULabel.h:806
Definition: CUColor4.h:1084
float getPaddingY() const
Definition: CULabel.h:524
Definition: CUAction.h:51
static std::shared_ptr< Label > alloc(const Size &size, const std::shared_ptr< Font > &font)
Definition: CULabel.h:358
VAlign
Definition: CULabel.h:137
void setVerticalAlignment(VAlign valign)
virtual void setContentSize(float width, float height) override
Definition: CULabel.h:721
const Rect getTrueBounds() const
Definition: CULabel.h:675
void setHorizontalAlignment(HAlign halign)
HAlign getHorizontalAlignment() const
Definition: CULabel.h:607