2
0

UIStaticText.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. // SPDX-FileCopyrightText: 2021 Jorrit Rouwe
  2. // SPDX-License-Identifier: MIT
  3. #pragma once
  4. #include <UI/UIElement.h>
  5. #include <Renderer/Font.h>
  6. /// Static text string
  7. class UIStaticText : public UIElement
  8. {
  9. public:
  10. JPH_DECLARE_RTTI_VIRTUAL(UIStaticText)
  11. /// Cloning / copying
  12. virtual void CopyTo(UIElement *ioElement) const override;
  13. /// Set properties
  14. void SetTextColor(ColorArg inColor) { mTextColor = inColor; }
  15. void SetDisabledTextColor(ColorArg inColor) { mDisabledTextColor = inColor; }
  16. void SetFont(const Font *inFont) { mFont = inFont; }
  17. void SetText(const string_view &inText) { mText = inText; }
  18. void SetTextPadding(int inTop, int inLeft, int inBottom, int inRight) { mTextPadTop = inTop; mTextPadLeft = inLeft; mTextPadBottom = inBottom; mTextPadRight = inRight; }
  19. void SetTextAlignment(EAlignment inAlignment) { JPH_ASSERT(inAlignment == LEFT || inAlignment == RIGHT || inAlignment == CENTER); mTextAlignment = inAlignment; }
  20. void SetWrap(bool inWrap) { mWrap = inWrap; }
  21. /// Draw element
  22. virtual void Draw() const override;
  23. /// Calculate auto layout
  24. virtual void AutoLayout() override;
  25. protected:
  26. /// Draw element custom
  27. void DrawCustom(ColorArg inColor) const;
  28. String GetWrappedText() const;
  29. RefConst<Font> mFont;
  30. String mText;
  31. Color mTextColor { Color(220, 220, 200) };
  32. Color mDisabledTextColor { Color::sGrey };
  33. int mTextPadLeft = 0;
  34. int mTextPadRight = 0;
  35. int mTextPadTop = 0;
  36. int mTextPadBottom = 0;
  37. EAlignment mTextAlignment = LEFT;
  38. bool mWrap = false;
  39. };