CmTextSprite.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #pragma once
  2. #include "CmPrerequisites.h"
  3. #include "CmSprite.h"
  4. namespace CamelotEngine
  5. {
  6. enum TextHorzAlign
  7. {
  8. THA_Left, THA_Center, THA_Right
  9. };
  10. enum TextVertAlign
  11. {
  12. TVA_Top, TVA_Center, TVA_Bottom
  13. };
  14. class CM_EXPORT TextSprite : public Sprite
  15. {
  16. public:
  17. TextSprite();
  18. TextSprite(const String& text, HFont font, UINT32 fontSize);
  19. void setText(const String& text) { mText = text; setDirty(); }
  20. void setFont(HFont font, UINT32 fontSize) { mFont = font; mFontSize = fontSize; setDirty(); }
  21. void setWordWrap(bool wordWrap) { mWordWrap = wordWrap; setDirty(); }
  22. void setAlignment(TextHorzAlign horzAlign, TextVertAlign vertAlign = TVA_Top)
  23. { mHorzAlign = horzAlign; mVertAlign = vertAlign; setDirty(); }
  24. String getText() const { return mText; }
  25. HFont getFont() const { return mFont; }
  26. UINT32 getFontSize() const { return mFontSize; }
  27. bool getWordWrap() const { return mWordWrap; }
  28. TextHorzAlign getTextHorzAlign() const { return mHorzAlign; }
  29. TextVertAlign getTextVertAlign() const { return mVertAlign; }
  30. protected:
  31. String mText;
  32. HFont mFont;
  33. UINT32 mFontSize;
  34. bool mWordWrap;
  35. TextHorzAlign mHorzAlign;
  36. TextVertAlign mVertAlign;
  37. virtual void updateMesh() const;
  38. const FontData* getFontData() const;
  39. void clipToRect(Vector2* vertices, Vector2* uv, UINT32 numQuads, Rect clipRect) const;
  40. };
  41. }