diff options
author | Max Horn | 2002-11-05 13:33:34 +0000 |
---|---|---|
committer | Max Horn | 2002-11-05 13:33:34 +0000 |
commit | d0d709627c3ce57b6137be2026d95a01125f97b9 (patch) | |
tree | 7f7f5ef7dacfdbc065b0ee90911b18cf7bcf3f41 /gui/newgui.cpp | |
parent | b165ec698e10696bc7dd13253b4a3a1b1a3aebd0 (diff) | |
download | scummvm-rg350-d0d709627c3ce57b6137be2026d95a01125f97b9.tar.gz scummvm-rg350-d0d709627c3ce57b6137be2026d95a01125f97b9.tar.bz2 scummvm-rg350-d0d709627c3ce57b6137be2026d95a01125f97b9.zip |
clip text drawing
svn-id: r5416
Diffstat (limited to 'gui/newgui.cpp')
-rw-r--r-- | gui/newgui.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/gui/newgui.cpp b/gui/newgui.cpp index ed9d20fb16..d4edecc5a7 100644 --- a/gui/newgui.cpp +++ b/gui/newgui.cpp @@ -432,6 +432,7 @@ int NewGui::getCharWidth(char c) void NewGui::drawString(const String &str, int x, int y, int w, int16 color, int align) { + const int leftX = x, rightX = x + w; int width = getStringWidth(str); if (align == kTextAlignCenter) x = x + (w - width - 1)/2; @@ -439,8 +440,12 @@ void NewGui::drawString(const String &str, int x, int y, int w, int16 color, int x = x + w - width; for (int i = 0; i < str.size(); ++i) { - drawChar(str[i], x, y, color); - x += getCharWidth(str[i]); + w = getCharWidth(str[i]); + if (x+w > rightX) + break; + if (x >= leftX) + drawChar(str[i], x, y, color); + x += w; } } |