mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-01-31 11:23:21 +00:00
(svn r25343) -Add: method to count the number of lines required to draw a string with line warping
This commit is contained in:
parent
9aa1bf0264
commit
e311902198
17
src/gfx.cpp
17
src/gfx.cpp
@ -882,6 +882,23 @@ int GetStringHeight(StringID str, int maxw)
|
||||
return GetMultilineStringHeight(buffer, GB(tmp, 0, 16), FS_NORMAL);
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculates number of lines of string. The string is changed to a multiline string if needed.
|
||||
* @param str string to check
|
||||
* @param maxw maximum string width
|
||||
* @return number of lines of string when it is drawn
|
||||
*/
|
||||
int GetStringLineCount(StringID str, int maxw)
|
||||
{
|
||||
char buffer[DRAW_STRING_BUFFER];
|
||||
|
||||
GetString(buffer, str, lastof(buffer));
|
||||
|
||||
uint32 tmp = FormatStringLinebreaks(buffer, lastof(buffer), maxw);
|
||||
|
||||
return 1 + GB(tmp, 0, 16);
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculate string bounding box for multi-line strings.
|
||||
* @param str String to check.
|
||||
|
@ -124,6 +124,7 @@ Dimension GetStringBoundingBox(const char *str, FontSize start_fontsize = FS_NOR
|
||||
Dimension GetStringBoundingBox(StringID strid);
|
||||
uint32 FormatStringLinebreaks(char *str, const char *last, int maxw, FontSize start_fontsize = FS_NORMAL);
|
||||
int GetStringHeight(StringID str, int maxw);
|
||||
int GetStringLineCount(StringID str, int maxw);
|
||||
Dimension GetStringMultiLineBoundingBox(StringID str, const Dimension &suggestion);
|
||||
Dimension GetStringMultiLineBoundingBox(const char *str, const Dimension &suggestion);
|
||||
void LoadStringWidthTable(bool monospace = false);
|
||||
|
Loading…
Reference in New Issue
Block a user