diff --git a/teensy/luamatrix.cpp b/teensy/luamatrix.cpp index d157842..947a08b 100644 --- a/teensy/luamatrix.cpp +++ b/teensy/luamatrix.cpp @@ -148,6 +148,7 @@ static int matrixpanel_fillrect (lua_State *L) { static int matrixpanel_invertdisplay (lua_State *L) { bool flag = lua_isboolean(L, 1) ? lua_toboolean(L, 1) : false; matrixpanel.invertDisplay(flag); + return 0; } // drawCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color), @@ -262,31 +263,66 @@ static int matrixpanel_drawchar (lua_State *L) { // setCursor(int16_t x, int16_t y), static int matrixpanel_setcursor (lua_State *L) { + int x = luaL_checkint(L, 1); + int y = luaL_checkint(L, 2); + matrixpanel.setCursor(x, y); + return 0; } // setTextColor(uint16_t c), // setTextColor(uint16_t c, uint16_t bg), static int matrixpanel_settextcolor (lua_State *L) { + int color = luaL_checkint(L, 1); +// int y = luaL_checkint(L, 2); + matrixpanel.setTextColor(color); + return 0; } // setTextSize(uint8_t s), static int matrixpanel_settextsize (lua_State *L) { + int size = luaL_checkint(L, 1); + matrixpanel.setTextSize(size); + return 0; } // setTextWrap(boolean w), static int matrixpanel_settextwrap (lua_State *L) { + bool flag = lua_isboolean(L, 1) ? lua_toboolean(L, 1) : false; + matrixpanel.setTextWrap(flag); + return 0; } // setRotation(uint8_t r), static int matrixpanel_setrotation (lua_State *L) { + int rot = luaL_checkint(L, 1); + matrixpanel.setRotation(rot); + return 0; } // setFont(const GFXfont *f = NULL), static int matrixpanel_setfont (lua_State *L) { + const char *font = luaL_checkstring(L, 1); + // Need to do some kind of lookup based on the string. + matrixpanel.setFont(&TomThumb); + return 0; } // getTextBounds(char *string, int16_t x, int16_t y, int16_t *x1, int16_t *y1, uint16_t *w, uint16_t *h), static int matrixpanel_gettextbounds (lua_State *L) { + char *string = (char *) luaL_checkstring(L, 1); // cast off the const, pointer won't actually be changed + int x = luaL_checkint(L, 2); + int y = luaL_checkint(L, 2); + int16_t x1 = 0, y1 = 0; + uint16_t w = 0, h = 0; + + matrixpanel.getTextBounds(string, x, y, &x1, &y1, &w, &h); + + lua_pushnumber(L, x1); + lua_pushnumber(L, y1); + lua_pushnumber(L, w); + lua_pushnumber(L, h); + + return 4; } static const struct luaL_Reg matrixpanel_methods[] = {