(svn r25343) -Add: method to count the number of lines required to draw a string with line warping

pull/155/head
zuu 11 years ago
parent 65129db43c
commit 1c0ec8b3b0

@ -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…
Cancel
Save