1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-29 23:07:48 +02:00

vcmi: actually implement AUTO for CInfoWindow

This is possible to use infobar interactions now.
This commit is contained in:
Konstantin
2023-03-07 03:29:04 +03:00
parent 75358a68a7
commit a0c644a0e5
10 changed files with 138 additions and 21 deletions

View File

@@ -202,6 +202,25 @@ std::vector<std::string> CMessage::breakText( std::string text, size_t maxLineWi
return ret;
}
std::string CMessage::guessHeader(const std::string & msg)
{
size_t begin = 0;
std::string delimeters = "{}";
size_t start = msg.find_first_of(delimeters[0], begin);
size_t end = msg.find_first_of(delimeters[1], start);
if(start > msg.size() || end > msg.size())
return "";
return msg.substr(begin, end);
}
int CMessage::guessHeight(const std::string & txt, int width, EFonts font)
{
const auto f = graphics->fonts[font];
auto lines = CMessage::breakText(txt, width, font);
int lineHeight = static_cast<int>(f->getLineHeight());
return lineHeight * (int)lines.size();
}
void CMessage::drawIWindow(CInfoWindow * ret, std::string text, PlayerColor player)
{
bool blitOr = false;