better line wrapping respecting \n too now

This commit is contained in:
Titus Tscharntke
2013-04-03 16:16:39 +00:00
parent c72cd2ac4c
commit d2928459a0

View File

@@ -184,7 +184,7 @@ float FontMetrics::getHeight(const string &str) const {
string FontMetrics::wordWrapText(string text, int maxWidth) { string FontMetrics::wordWrapText(string text, int maxWidth) {
// Strip newlines from source // Strip newlines from source
//replaceAll(text, "\n", " "); replaceAll(text, "\n", " \n ");
// Get all words (space separated text) // Get all words (space separated text)
vector<string> words; vector<string> words;
@@ -195,14 +195,20 @@ string FontMetrics::wordWrapText(string text, int maxWidth) {
for(unsigned int i = 0; i < words.size(); ++i) { for(unsigned int i = 0; i < words.size(); ++i) {
string word = words[i]; string word = words[i];
if(word=="\n"){
wrappedText += word;
lineWidth = 0;
}
else {
float wordWidth = this->getTextWidth(word); float wordWidth = this->getTextWidth(word);
if (lineWidth + wordWidth > maxWidth) { if (lineWidth + wordWidth > maxWidth) {
wrappedText += "\n"; wrappedText += "\n";
lineWidth = 0; lineWidth = 0;
} }
lineWidth += wordWidth; lineWidth += this->getTextWidth(word+" ");
wrappedText += word + " "; wrappedText += word + " ";
} }
}
return wrappedText; return wrappedText;
} }