/********************************************************************* * * GUI_GetTextExtend */ void GUI_GetTextExtend(GUI_RECT* pRect, const char GUI_UNI_PTR * s, int MaxNumChars) { int xMax = 0; int NumLines = 0; int LineSizeX = 0; U16 Char; pRect->x0 = GUI_Context.DispPosX[GUI_Context.SelLayer]; pRect->y0 = GUI_Context.DispPosY[GUI_Context.SelLayer]; while (MaxNumChars--) { Char = GUI_UC__GetCharCodeInc(&s); if ((Char == '\n') || (Char == 0)) { if (LineSizeX > xMax) { xMax = LineSizeX; } LineSizeX = 0; NumLines++; if (!Char) { break; } } else { LineSizeX += GUI_GetCharDistX(Char); } } if (LineSizeX > xMax) { xMax = LineSizeX; } if (!NumLines) { NumLines = 1; } pRect->x1 = pRect->x0 + xMax - 1; pRect->y1 = pRect->y0 + GUI__GetFontSizeY() * NumLines - 1; }
/********************************************************************* * * GUI_GetFontSizeY */ int GUI_GetFontSizeY(void) { int r; GUI_LOCK(); r = GUI__GetFontSizeY(); GUI_UNLOCK(); return r; }