diff options
| author | Ray <raysan5@gmail.com> | 2019-02-04 09:57:02 +0100 |
|---|---|---|
| committer | Ray <raysan5@gmail.com> | 2019-02-04 09:57:02 +0100 |
| commit | 5755c5e310e6d77cd280a91d5a99a4f10a4c8ab3 (patch) | |
| tree | 9eee6d274e28692cb3d87cde7476fefcdb8e2017 /src | |
| parent | 01ace743d0aaaf9c96cc0f24bec1a2f7f8a1c38b (diff) | |
| download | raylib-5755c5e310e6d77cd280a91d5a99a4f10a4c8ab3.tar.gz raylib-5755c5e310e6d77cd280a91d5a99a4f10a4c8ab3.zip | |
Review DrawTextRecEx() formatting
Diffstat (limited to 'src')
| -rw-r--r-- | src/raylib.h | 2 | ||||
| -rw-r--r-- | src/text.c | 39 |
2 files changed, 22 insertions, 19 deletions
diff --git a/src/raylib.h b/src/raylib.h index e2b5b788..55ecbcd5 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1135,7 +1135,7 @@ RLAPI void DrawText(const char *text, int posX, int posY, int fontSize, Color co RLAPI void DrawTextEx(Font font, const char *text, Vector2 position, float fontSize, float spacing, Color tint); // Draw text using font and additional parameters RLAPI void DrawTextRec(Font font, const char *text, Rectangle rec, float fontSize, float spacing, bool wordWrap, Color tint); // Draw text using font inside rectangle limits RLAPI void DrawTextRecEx(Font font, const char *text, Rectangle rec, float fontSize, float spacing, bool wordWrap, Color tint, - int selectStart, int selectLength, Color selectText, Color selectBG); // Draw text using font inside rectangle limits with support for text selection + int selectStart, int selectLength, Color selectText, Color selectBack); // Draw text using font inside rectangle limits with support for text selection // Text misc. functions RLAPI int MeasureText(const char *text, int fontSize); // Measure string width for default font @@ -787,7 +787,7 @@ void DrawTextRec(Font font, const char *text, Rectangle rec, float fontSize, flo // Draw text using font inside rectangle limits with support for text selection void DrawTextRecEx(Font font, const char *text, Rectangle rec, float fontSize, float spacing, bool wordWrap, Color tint, - int selectStart, int selectLength, Color selectText, Color selectBG) + int selectStart, int selectLength, Color selectText, Color selectBack) { int length = strlen(text); int textOffsetX = 0; // Offset between characters @@ -800,7 +800,7 @@ void DrawTextRecEx(Font font, const char *text, Rectangle rec, float fontSize, f scaleFactor = fontSize/font.baseSize; enum { MEASURE_STATE = 0, DRAW_STATE = 1 }; - int state = wordWrap?MEASURE_STATE:DRAW_STATE; + int state = wordWrap? MEASURE_STATE : DRAW_STATE; int startLine = -1; // Index where to begin drawing (where a line begins) int endLine = -1; // Index where to stop drawing (where a line ends) @@ -828,8 +828,8 @@ void DrawTextRecEx(Font font, const char *text, Rectangle rec, float fontSize, f else index = GetGlyphIndex(font, (unsigned char)text[i]); glyphWidth = (font.chars[index].advanceX == 0)? - (int)(font.chars[index].rec.width*scaleFactor + spacing): - (int)(font.chars[index].advanceX*scaleFactor + spacing); + (int)(font.chars[index].rec.width*scaleFactor + spacing): + (int)(font.chars[index].advanceX*scaleFactor + spacing); } // NOTE: When wordWrap is ON we first measure how much of the text we can draw @@ -842,26 +842,27 @@ void DrawTextRecEx(Font font, const char *text, Rectangle rec, float fontSize, f // the container. if (state == MEASURE_STATE) { - if((letter == ' ') || (letter == '\t') || (letter == '\n')) endLine = i; + if ((letter == ' ') || (letter == '\t') || (letter == '\n')) endLine = i; - if(textOffsetX + glyphWidth + 1 >= rec.width) + if ((textOffsetX + glyphWidth + 1) >= rec.width) { endLine = (endLine < 1) ? i : endLine; - if(i == endLine) endLine -= 1; - if(startLine + 1 == endLine ) endLine = i - 1; + if (i == endLine) endLine -= 1; + if ((startLine + 1) == endLine) endLine = i - 1; state = !state; } - else if(i + 1 == length) + else if ((i + 1) == length) { endLine = i; state = !state; } - else if(letter == '\n') + else if (letter == '\n') { state = !state; } - if(state == DRAW_STATE) { + if (state == DRAW_STATE) + { textOffsetX = 0; i = startLine; glyphWidth = 0; @@ -872,14 +873,16 @@ void DrawTextRecEx(Font font, const char *text, Rectangle rec, float fontSize, f { if (letter == '\n') { - if(!wordWrap){ + if (!wordWrap) + { textOffsetY += (int)((font.baseSize + font.baseSize/2)*scaleFactor); textOffsetX = 0; } } else { - if(!wordWrap && textOffsetX + glyphWidth + 1 >= rec.width) { + if (!wordWrap && ((textOffsetX + glyphWidth + 1) >= rec.width)) + { textOffsetY += (int)((font.baseSize + font.baseSize/2)*scaleFactor); textOffsetX = 0; } @@ -888,10 +891,10 @@ void DrawTextRecEx(Font font, const char *text, Rectangle rec, float fontSize, f //draw selected bool isGlyphSelected = false; - if(selectStart >= 0 && i >= selectStart && i < selectStart + selectLength) { - Rectangle strec = {rec.x + textOffsetX-1, rec.y + textOffsetY, - glyphWidth,(font.baseSize + font.baseSize/4)*scaleFactor}; - DrawRectangleRec(strec, selectBG); + if ((selectStart >= 0) && (i >= selectStart) && (i < (selectStart + selectLength))) + { + Rectangle strec = {rec.x + textOffsetX-1, rec.y + textOffsetY, glyphWidth, (font.baseSize + font.baseSize/4)*scaleFactor }; + DrawRectangleRec(strec, selectBack); isGlyphSelected = true; } @@ -907,7 +910,7 @@ void DrawTextRecEx(Font font, const char *text, Rectangle rec, float fontSize, f } } - if (wordWrap && i == endLine) + if (wordWrap && (i == endLine)) { textOffsetY += (int)((font.baseSize + font.baseSize/2)*scaleFactor); textOffsetX = 0; |
