Added a lua function lcd.sizeText(text[, flags])

Gets the width and height (incl. vertical offset) of text on the LCD with flags applied.
This commit is contained in:
jfrickmann
2021-07-31 07:59:08 +02:00
committed by Raphael Coeffic
parent fb3ac5e0ba
commit 6e37d11710
+25 -1
View File
@@ -213,7 +213,10 @@ See the [Appendix](../appendix/fonts.md) for available characters in each font s
* `SMLSIZE` small font
* `INVERS` inverted display
* `BLINK` blinking text
* `SHADOWED` Horus only, apply a shadow effect
* `RIGHT` right align text
* `CENTER` color only, center align text
* `VCENTER` color only, center text vertically
* `SHADOWED` color only, apply a shadow effect
@status current Introduced in 2.0.0, `SHADOWED` introduced in 2.2.1
*/
@@ -262,6 +265,26 @@ static int luaLcdDrawText(lua_State *L)
return 0;
}
/*luadoc
@function lcd.sizeText(text [, flags])
Get the width and height of a text string drawn with flags
@param text (string)
@param flags (unsigned number) drawing flags. See lcd.drawText.
@status current Introduced in 2.5.0
*/
static int luaLcdSizeText(lua_State *L)
{
const char * s = luaL_checkstring(L, 1);
unsigned int att = luaL_optunsigned(L, 2, 0);
lua_pushinteger(L, getTextWidth(s, 255, att));
lua_pushinteger(L, getFontHeight(att & 0xFFFF) + getTextVerticalOffset(att & ~VCENTERED));
return 2;
}
/*luadoc
@function lcd.drawTimer(x, y, value [, flags])
@@ -1100,6 +1123,7 @@ const luaL_Reg lcdLib[] = {
{ "drawRectangle", luaLcdDrawRectangle },
{ "drawFilledRectangle", luaLcdDrawFilledRectangle },
{ "drawText", luaLcdDrawText },
{ "sizeText", luaLcdSizeText },
{ "drawTimer", luaLcdDrawTimer },
{ "drawNumber", luaLcdDrawNumber },
{ "drawChannel", luaLcdDrawChannel },