text-wrapping + fix

This commit is contained in:
MihailRis
2024-04-25 02:19:50 +03:00
parent 37e089169e
commit 56a8226028
9 changed files with 135 additions and 54 deletions
+6 -2
View File
@@ -34,8 +34,12 @@ bool Font::isPrintableChar(uint codepoint) const {
}
}
int Font::calcWidth(std::wstring text, size_t length) {
return std::min(text.length(), length) * 8;
int Font::calcWidth(const std::wstring& text, size_t length) {
return calcWidth(text, 0, length);
}
int Font::calcWidth(const std::wstring& text, size_t offset, size_t length) {
return std::min(text.length()-offset, length) * 8;
}
void Font::draw(Batch2D* batch, std::wstring text, int x, int y) {
+10 -3
View File
@@ -28,9 +28,16 @@ public:
/// @brief Calculate text width in pixels
/// @param text selected text
/// @param length max text chunk length (default: no limit)
/// @return pixel width of the text
int calcWidth(std::wstring text, size_t length=-1);
/// @param length max substring length (default: no limit)
/// @return pixel width of the substring
int calcWidth(const std::wstring& text, size_t length=-1);
/// @brief Calculate text width in pixels
/// @param text selected text
/// @param offset start of the substring
/// @param length max substring length
/// @return pixel width of the substring
int calcWidth(const std::wstring& text, size_t offset, size_t length);
/// @brief Check if character is visible (non-whitespace)
/// @param codepoint character unicode codepoint