matrix panel api mostly in place. no font selection however

This commit is contained in:
Ryan Voots 2016-04-24 13:29:21 -07:00
parent 6a2fc3fa2c
commit e15650cb1f

View file

@ -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[] = {