1
0
mirror of git://projects.qi-hardware.com/gmenu2x.git synced 2024-11-29 09:09:43 +02:00

Revert "Removed support for multi-line text drawing"

This reverts commit 0908aa7bb7.

It turns out there are multi-line text messages in use: Nebuleon found
one in the confirmation message when deleting a section.
This commit is contained in:
Maarten ter Huurne 2014-07-23 02:22:27 +02:00
parent 826d4bbac4
commit d4344c7960
2 changed files with 27 additions and 1 deletions

View File

@ -59,7 +59,30 @@ int Font::getTextWidth(const char *text)
else return 1; else return 1;
} }
void Font::write(Surface *surface, std::string const& text, void Font::write(Surface *surface, const string &text,
int x, int y, HAlign halign, VAlign valign)
{
if (!font) {
return;
}
size_t pos = text.find('\n', 0);
if (pos == string::npos) {
writeLine(surface, text, x, y, halign, valign);
} else {
size_t prev = 0;
do {
writeLine(surface, text.substr(prev, pos - prev),
x, y, halign, valign);
y += lineSpacing;
prev = pos + 1;
pos = text.find('\n', prev);
} while (pos != string::npos);
writeLine(surface, text.substr(prev), x, y, halign, valign);
}
}
void Font::writeLine(Surface *surface, std::string const& text,
int x, int y, HAlign halign, VAlign valign) int x, int y, HAlign halign, VAlign valign)
{ {
if (!font) { if (!font) {

View File

@ -41,6 +41,9 @@ public:
private: private:
Font(TTF_Font *font); Font(TTF_Font *font);
void writeLine(Surface *surface, std::string const& text,
int x, int y, HAlign halign, VAlign valign);
TTF_Font *font; TTF_Font *font;
int lineSpacing; int lineSpacing;
}; };