diff options
author | Eugene Sandulenko | 2017-01-29 18:40:36 +0100 |
---|---|---|
committer | Eugene Sandulenko | 2017-01-29 18:41:07 +0100 |
commit | dc640ab50a63b0383c6aec6df4e0427df1824c3e (patch) | |
tree | 69a1176c00f2d206c0d022848a1ec859e7d74976 | |
parent | 1c6b31397a382e4adb315456a321caf144766826 (diff) | |
download | scummvm-rg350-dc640ab50a63b0383c6aec6df4e0427df1824c3e.tar.gz scummvm-rg350-dc640ab50a63b0383c6aec6df4e0427df1824c3e.tar.bz2 scummvm-rg350-dc640ab50a63b0383c6aec6df4e0427df1824c3e.zip |
GRAPHICS: Added optional initial line width ot text wrapper
-rw-r--r-- | graphics/font.cpp | 12 | ||||
-rw-r--r-- | graphics/font.h | 11 |
2 files changed, 12 insertions, 11 deletions
diff --git a/graphics/font.cpp b/graphics/font.cpp index 7768b7362d..3446619299 100644 --- a/graphics/font.cpp +++ b/graphics/font.cpp @@ -142,11 +142,11 @@ struct WordWrapper { }; template<class StringType> -int wordWrapTextImpl(const Font &font, const StringType &str, int maxWidth, Common::Array<StringType> &lines) { +int wordWrapTextImpl(const Font &font, const StringType &str, int maxWidth, Common::Array<StringType> &lines, int initWidth) { WordWrapper<StringType> wrapper(lines); StringType line; StringType tmpStr; - int lineWidth = 0; + int lineWidth = initWidth; int tmpWidth = 0; // The rough idea behind this algorithm is as follows: @@ -305,12 +305,12 @@ void Font::drawString(ManagedSurface *dst, const Common::U32String &str, int x, } } -int Font::wordWrapText(const Common::String &str, int maxWidth, Common::Array<Common::String> &lines) const { - return wordWrapTextImpl(*this, str, maxWidth, lines); +int Font::wordWrapText(const Common::String &str, int maxWidth, Common::Array<Common::String> &lines, int initWidth) const { + return wordWrapTextImpl(*this, str, maxWidth, lines, initWidth); } -int Font::wordWrapText(const Common::U32String &str, int maxWidth, Common::Array<Common::U32String> &lines) const { - return wordWrapTextImpl(*this, str, maxWidth, lines); +int Font::wordWrapText(const Common::U32String &str, int maxWidth, Common::Array<Common::U32String> &lines, int initWidth) const { + return wordWrapTextImpl(*this, str, maxWidth, lines, initWidth); } Common::String Font::handleEllipsis(const Common::String &input, int w) const { diff --git a/graphics/font.h b/graphics/font.h index 0478608708..6682ce015b 100644 --- a/graphics/font.h +++ b/graphics/font.h @@ -169,13 +169,14 @@ public: * It returns the maximal width of any of the new lines (i.e. a value which is less * or equal to maxWidth). * - * @param str the string to word wrap - * @param maxWidth the maximum width a line may have - * @param lines the string list to which the text lines from str are appended + * @param str the string to word wrap + * @param maxWidth the maximum width a line may have + * @param lines the string list to which the text lines from str are appended + * @param initWidth the starting width of the first line, for partially filled lines (optional) * @return the maximal width of any of the lines added to lines */ - int wordWrapText(const Common::String &str, int maxWidth, Common::Array<Common::String> &lines) const; - int wordWrapText(const Common::U32String &str, int maxWidth, Common::Array<Common::U32String> &lines) const; + int wordWrapText(const Common::String &str, int maxWidth, Common::Array<Common::String> &lines, int initWidth = 0) const; + int wordWrapText(const Common::U32String &str, int maxWidth, Common::Array<Common::U32String> &lines, int initWidth = 0) const; private: Common::String handleEllipsis(const Common::String &str, int w) const; |