mirror of https://github.com/OpenTTD/OpenTTD
(svn r25343) -Add: method to count the number of lines required to draw a string with line warping
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);
|
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.
|
* Calculate string bounding box for multi-line strings.
|
||||||
* @param str String to check.
|
* @param str String to check.
|
||||||
|
|
|
@ -124,6 +124,7 @@ Dimension GetStringBoundingBox(const char *str, FontSize start_fontsize = FS_NOR
|
||||||
Dimension GetStringBoundingBox(StringID strid);
|
Dimension GetStringBoundingBox(StringID strid);
|
||||||
uint32 FormatStringLinebreaks(char *str, const char *last, int maxw, FontSize start_fontsize = FS_NORMAL);
|
uint32 FormatStringLinebreaks(char *str, const char *last, int maxw, FontSize start_fontsize = FS_NORMAL);
|
||||||
int GetStringHeight(StringID str, int maxw);
|
int GetStringHeight(StringID str, int maxw);
|
||||||
|
int GetStringLineCount(StringID str, int maxw);
|
||||||
Dimension GetStringMultiLineBoundingBox(StringID str, const Dimension &suggestion);
|
Dimension GetStringMultiLineBoundingBox(StringID str, const Dimension &suggestion);
|
||||||
Dimension GetStringMultiLineBoundingBox(const char *str, const Dimension &suggestion);
|
Dimension GetStringMultiLineBoundingBox(const char *str, const Dimension &suggestion);
|
||||||
void LoadStringWidthTable(bool monospace = false);
|
void LoadStringWidthTable(bool monospace = false);
|
||||||
|
|
Loading…
Reference in New Issue