Files
CosmicEngine/lib/All/JoltPhysics/TestFramework/UI/UIStaticText.h

51 lines
1.6 KiB
C
Raw Normal View History

// Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
// SPDX-FileCopyrightText: 2021 Jorrit Rouwe
// SPDX-License-Identifier: MIT
#pragma once
#include <UI/UIElement.h>
#include <Renderer/Font.h>
/// Static text string
class UIStaticText : public UIElement
{
public:
JPH_DECLARE_RTTI_VIRTUAL(JPH_NO_EXPORT, UIStaticText)
/// Cloning / copying
virtual void CopyTo(UIElement *ioElement) const override;
/// Set properties
void SetTextColor(ColorArg inColor) { mTextColor = inColor; }
void SetDisabledTextColor(ColorArg inColor) { mDisabledTextColor = inColor; }
void SetFont(const Font *inFont) { mFont = inFont; }
void SetText(const string_view &inText) { mText = inText; }
void SetTextPadding(int inTop, int inLeft, int inBottom, int inRight) { mTextPadTop = inTop; mTextPadLeft = inLeft; mTextPadBottom = inBottom; mTextPadRight = inRight; }
void SetTextAlignment(EAlignment inAlignment) { JPH_ASSERT(inAlignment == LEFT || inAlignment == RIGHT || inAlignment == CENTER); mTextAlignment = inAlignment; }
void SetWrap(bool inWrap) { mWrap = inWrap; }
/// Draw element
virtual void Draw() const override;
/// Calculate auto layout
virtual void AutoLayout() override;
protected:
/// Draw element custom
void DrawCustom(ColorArg inColor) const;
String GetWrappedText() const;
RefConst<Font> mFont;
String mText;
Color mTextColor { Color(220, 220, 200) };
Color mDisabledTextColor { Color::sGrey };
int mTextPadLeft = 0;
int mTextPadRight = 0;
int mTextPadTop = 0;
int mTextPadBottom = 0;
EAlignment mTextAlignment = LEFT;
bool mWrap = false;
};