UIStaticText.h 1.6 KB

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