Begin migration of remaining screens to Lua
This commit is contained in:
+278
-217
@@ -9,278 +9,278 @@ lvgl = {}
|
||||
|
||||
--- @enum ObjEventCode
|
||||
lvgl.EVENT = {
|
||||
ALL = 0,
|
||||
PRESSED = 0,
|
||||
PRESSING = 0,
|
||||
PRESS_LOST = 0,
|
||||
SHORT_CLICKED = 0,
|
||||
LONG_PRESSED = 0,
|
||||
LONG_PRESSED_REPEAT = 0,
|
||||
CLICKED = 0,
|
||||
RELEASED = 0,
|
||||
SCROLL_BEGIN = 0,
|
||||
SCROLL_END = 0,
|
||||
SCROLL = 0,
|
||||
GESTURE = 0,
|
||||
KEY = 0,
|
||||
FOCUSED = 0,
|
||||
DEFOCUSED = 0,
|
||||
LEAVE = 0,
|
||||
HIT_TEST = 0,
|
||||
COVER_CHECK = 0,
|
||||
REFR_EXT_DRAW_SIZE = 0,
|
||||
DRAW_MAIN_BEGIN = 0,
|
||||
DRAW_MAIN = 0,
|
||||
DRAW_MAIN_END = 0,
|
||||
DRAW_POST_BEGIN = 0,
|
||||
DRAW_POST = 0,
|
||||
DRAW_POST_END = 0,
|
||||
DRAW_PART_BEGIN = 0,
|
||||
DRAW_PART_END = 0,
|
||||
VALUE_CHANGED = 0,
|
||||
INSERT = 0,
|
||||
REFRESH = 0,
|
||||
READY = 0,
|
||||
CANCEL = 0,
|
||||
DELETE = 0,
|
||||
CHILD_CHANGED = 0,
|
||||
CHILD_CREATED = 0,
|
||||
CHILD_DELETED = 0,
|
||||
SCREEN_UNLOAD_START = 0,
|
||||
SCREEN_LOAD_START = 0,
|
||||
SCREEN_LOADED = 0,
|
||||
SCREEN_UNLOADED = 0,
|
||||
SIZE_CHANGED = 0,
|
||||
STYLE_CHANGED = 0,
|
||||
LAYOUT_CHANGED = 0,
|
||||
GET_SELF_SIZE = 0,
|
||||
ALL = 0,
|
||||
PRESSED = 0,
|
||||
PRESSING = 0,
|
||||
PRESS_LOST = 0,
|
||||
SHORT_CLICKED = 0,
|
||||
LONG_PRESSED = 0,
|
||||
LONG_PRESSED_REPEAT = 0,
|
||||
CLICKED = 0,
|
||||
RELEASED = 0,
|
||||
SCROLL_BEGIN = 0,
|
||||
SCROLL_END = 0,
|
||||
SCROLL = 0,
|
||||
GESTURE = 0,
|
||||
KEY = 0,
|
||||
FOCUSED = 0,
|
||||
DEFOCUSED = 0,
|
||||
LEAVE = 0,
|
||||
HIT_TEST = 0,
|
||||
COVER_CHECK = 0,
|
||||
REFR_EXT_DRAW_SIZE = 0,
|
||||
DRAW_MAIN_BEGIN = 0,
|
||||
DRAW_MAIN = 0,
|
||||
DRAW_MAIN_END = 0,
|
||||
DRAW_POST_BEGIN = 0,
|
||||
DRAW_POST = 0,
|
||||
DRAW_POST_END = 0,
|
||||
DRAW_PART_BEGIN = 0,
|
||||
DRAW_PART_END = 0,
|
||||
VALUE_CHANGED = 0,
|
||||
INSERT = 0,
|
||||
REFRESH = 0,
|
||||
READY = 0,
|
||||
CANCEL = 0,
|
||||
DELETE = 0,
|
||||
CHILD_CHANGED = 0,
|
||||
CHILD_CREATED = 0,
|
||||
CHILD_DELETED = 0,
|
||||
SCREEN_UNLOAD_START = 0,
|
||||
SCREEN_LOAD_START = 0,
|
||||
SCREEN_LOADED = 0,
|
||||
SCREEN_UNLOADED = 0,
|
||||
SIZE_CHANGED = 0,
|
||||
STYLE_CHANGED = 0,
|
||||
LAYOUT_CHANGED = 0,
|
||||
GET_SELF_SIZE = 0,
|
||||
}
|
||||
|
||||
--- object flag for obj:add_flag obj:clear_flag
|
||||
--- @enum ObjFlag
|
||||
lvgl.FLAG = {
|
||||
PRESSED = 0,
|
||||
HIDDEN = 0,
|
||||
CLICKABLE = 0,
|
||||
CLICK_FOCUSABLE = 0,
|
||||
CHECKABLE = 0,
|
||||
SCROLLABLE = 0,
|
||||
SCROLL_ELASTIC = 0,
|
||||
SCROLL_MOMENTUM = 0,
|
||||
SCROLL_ONE = 0,
|
||||
SCROLL_CHAIN_HOR = 0,
|
||||
SCROLL_CHAIN_VER = 0,
|
||||
SCROLL_CHAIN = 0,
|
||||
SCROLL_ON_FOCUS = 0,
|
||||
SCROLL_WITH_ARROW = 0,
|
||||
SNAPPABLE = 0,
|
||||
PRESS_LOCK = 0,
|
||||
EVENT_BUBBLE = 0,
|
||||
GESTURE_BUBBLE = 0,
|
||||
ADV_HITTEST = 0,
|
||||
IGNORE_LAYOUT = 0,
|
||||
FLOATING = 0,
|
||||
OVERFLOW_VISIBLE = 0,
|
||||
LAYOUT_1 = 0,
|
||||
LAYOUT_2 = 0,
|
||||
WIDGET_1 = 0,
|
||||
WIDGET_2 = 0,
|
||||
USER_1 = 0,
|
||||
USER_2 = 0,
|
||||
USER_3 = 0,
|
||||
USER_4 = 0,
|
||||
PRESSED = 0,
|
||||
HIDDEN = 0,
|
||||
CLICKABLE = 0,
|
||||
CLICK_FOCUSABLE = 0,
|
||||
CHECKABLE = 0,
|
||||
SCROLLABLE = 0,
|
||||
SCROLL_ELASTIC = 0,
|
||||
SCROLL_MOMENTUM = 0,
|
||||
SCROLL_ONE = 0,
|
||||
SCROLL_CHAIN_HOR = 0,
|
||||
SCROLL_CHAIN_VER = 0,
|
||||
SCROLL_CHAIN = 0,
|
||||
SCROLL_ON_FOCUS = 0,
|
||||
SCROLL_WITH_ARROW = 0,
|
||||
SNAPPABLE = 0,
|
||||
PRESS_LOCK = 0,
|
||||
EVENT_BUBBLE = 0,
|
||||
GESTURE_BUBBLE = 0,
|
||||
ADV_HITTEST = 0,
|
||||
IGNORE_LAYOUT = 0,
|
||||
FLOATING = 0,
|
||||
OVERFLOW_VISIBLE = 0,
|
||||
LAYOUT_1 = 0,
|
||||
LAYOUT_2 = 0,
|
||||
WIDGET_1 = 0,
|
||||
WIDGET_2 = 0,
|
||||
USER_1 = 0,
|
||||
USER_2 = 0,
|
||||
USER_3 = 0,
|
||||
USER_4 = 0,
|
||||
}
|
||||
|
||||
--- @enum ObjState
|
||||
lvgl.STATE = {
|
||||
DEFAULT = 0,
|
||||
CHECKED = 0,
|
||||
FOCUSED = 0,
|
||||
FOCUS_KEY = 0,
|
||||
EDITED = 0,
|
||||
HOVERED = 0,
|
||||
PRESSED = 0,
|
||||
SCROLLED = 0,
|
||||
DISABLED = 0,
|
||||
USER_1 = 0,
|
||||
USER_2 = 0,
|
||||
USER_3 = 0,
|
||||
USER_4 = 0,
|
||||
ANY = 0,
|
||||
DEFAULT = 0,
|
||||
CHECKED = 0,
|
||||
FOCUSED = 0,
|
||||
FOCUS_KEY = 0,
|
||||
EDITED = 0,
|
||||
HOVERED = 0,
|
||||
PRESSED = 0,
|
||||
SCROLLED = 0,
|
||||
DISABLED = 0,
|
||||
USER_1 = 0,
|
||||
USER_2 = 0,
|
||||
USER_3 = 0,
|
||||
USER_4 = 0,
|
||||
ANY = 0,
|
||||
}
|
||||
|
||||
--- @enum ObjAlignType
|
||||
lvgl.ALIGN = {
|
||||
DEFAULT = 0,
|
||||
TOP_LEFT = 0,
|
||||
TOP_MID = 0,
|
||||
TOP_RIGHT = 0,
|
||||
BOTTOM_LEFT = 0,
|
||||
BOTTOM_MID = 0,
|
||||
BOTTOM_RIGHT = 0,
|
||||
LEFT_MID = 0,
|
||||
RIGHT_MID = 0,
|
||||
CENTER = 0,
|
||||
OUT_TOP_LEFT = 0,
|
||||
OUT_TOP_MID = 0,
|
||||
OUT_TOP_RIGHT = 0,
|
||||
OUT_BOTTOM_LEFT = 0,
|
||||
OUT_BOTTOM_MID = 0,
|
||||
OUT_BOTTOM_RIGHT = 0,
|
||||
OUT_LEFT_TOP = 0,
|
||||
OUT_LEFT_MID = 0,
|
||||
OUT_LEFT_BOTTOM = 0,
|
||||
OUT_RIGHT_TOP = 0,
|
||||
OUT_RIGHT_MID = 0,
|
||||
OUT_RIGHT_BOTTOM = 0,
|
||||
DEFAULT = 0,
|
||||
TOP_LEFT = 0,
|
||||
TOP_MID = 0,
|
||||
TOP_RIGHT = 0,
|
||||
BOTTOM_LEFT = 0,
|
||||
BOTTOM_MID = 0,
|
||||
BOTTOM_RIGHT = 0,
|
||||
LEFT_MID = 0,
|
||||
RIGHT_MID = 0,
|
||||
CENTER = 0,
|
||||
OUT_TOP_LEFT = 0,
|
||||
OUT_TOP_MID = 0,
|
||||
OUT_TOP_RIGHT = 0,
|
||||
OUT_BOTTOM_LEFT = 0,
|
||||
OUT_BOTTOM_MID = 0,
|
||||
OUT_BOTTOM_RIGHT = 0,
|
||||
OUT_LEFT_TOP = 0,
|
||||
OUT_LEFT_MID = 0,
|
||||
OUT_LEFT_BOTTOM = 0,
|
||||
OUT_RIGHT_TOP = 0,
|
||||
OUT_RIGHT_MID = 0,
|
||||
OUT_RIGHT_BOTTOM = 0,
|
||||
}
|
||||
|
||||
--- @enum BuiltinFont
|
||||
lvgl.BUILTIN_FONT = {
|
||||
MONTSERRAT_8 = 0,
|
||||
MONTSERRAT_10 = 0,
|
||||
MONTSERRAT_12 = 0,
|
||||
MONTSERRAT_14 = 0,
|
||||
MONTSERRAT_16 = 0,
|
||||
MONTSERRAT_18 = 0,
|
||||
MONTSERRAT_20 = 0,
|
||||
MONTSERRAT_22 = 0,
|
||||
MONTSERRAT_24 = 0,
|
||||
MONTSERRAT_26 = 0,
|
||||
MONTSERRAT_28 = 0,
|
||||
MONTSERRAT_30 = 0,
|
||||
MONTSERRAT_32 = 0,
|
||||
MONTSERRAT_34 = 0,
|
||||
MONTSERRAT_36 = 0,
|
||||
MONTSERRAT_38 = 0,
|
||||
MONTSERRAT_40 = 0,
|
||||
MONTSERRAT_42 = 0,
|
||||
MONTSERRAT_44 = 0,
|
||||
MONTSERRAT_46 = 0,
|
||||
MONTSERRAT_48 = 0,
|
||||
MONTSERRAT_12_SUBPX = 0,
|
||||
MONTSERRAT_28_COMPRESSED = 0,
|
||||
DEJAVU_16_PERSIAN_HEBREW = 0,
|
||||
SIMSUN_16_CJK = 0,
|
||||
UNSCII_8 = 0,
|
||||
UNSCII_16 = 0,
|
||||
MONTSERRAT_8 = 0,
|
||||
MONTSERRAT_10 = 0,
|
||||
MONTSERRAT_12 = 0,
|
||||
MONTSERRAT_14 = 0,
|
||||
MONTSERRAT_16 = 0,
|
||||
MONTSERRAT_18 = 0,
|
||||
MONTSERRAT_20 = 0,
|
||||
MONTSERRAT_22 = 0,
|
||||
MONTSERRAT_24 = 0,
|
||||
MONTSERRAT_26 = 0,
|
||||
MONTSERRAT_28 = 0,
|
||||
MONTSERRAT_30 = 0,
|
||||
MONTSERRAT_32 = 0,
|
||||
MONTSERRAT_34 = 0,
|
||||
MONTSERRAT_36 = 0,
|
||||
MONTSERRAT_38 = 0,
|
||||
MONTSERRAT_40 = 0,
|
||||
MONTSERRAT_42 = 0,
|
||||
MONTSERRAT_44 = 0,
|
||||
MONTSERRAT_46 = 0,
|
||||
MONTSERRAT_48 = 0,
|
||||
MONTSERRAT_12_SUBPX = 0,
|
||||
MONTSERRAT_28_COMPRESSED = 0,
|
||||
DEJAVU_16_PERSIAN_HEBREW = 0,
|
||||
SIMSUN_16_CJK = 0,
|
||||
UNSCII_8 = 0,
|
||||
UNSCII_16 = 0,
|
||||
}
|
||||
|
||||
--- @enum LABEL
|
||||
lvgl.LABEL = {
|
||||
LONG_WRAP = 0,
|
||||
LONG_DOT = 0,
|
||||
LONG_SCROLL = 0,
|
||||
LONG_SCROLL_CIRCULAR = 0,
|
||||
LONG_CLIP = 0,
|
||||
LONG_WRAP = 0,
|
||||
LONG_DOT = 0,
|
||||
LONG_SCROLL = 0,
|
||||
LONG_SCROLL_CIRCULAR = 0,
|
||||
LONG_CLIP = 0,
|
||||
}
|
||||
|
||||
--- @enum SCR_LOAD_ANIM
|
||||
lvgl.SCR_LOAD_ANIM = {
|
||||
NONE = 0,
|
||||
OVER_LEFT = 0,
|
||||
OVER_RIGHT = 0,
|
||||
OVER_TOP = 0,
|
||||
OVER_BOTTOM = 0,
|
||||
MOVE_LEFT = 0,
|
||||
MOVE_RIGHT = 0,
|
||||
MOVE_TOP = 0,
|
||||
MOVE_BOTTOM = 0,
|
||||
FADE_IN = 0,
|
||||
FADE_ON = 0,
|
||||
FADE_OUT = 0,
|
||||
OUT_LEFT = 0,
|
||||
OUT_RIGHT = 0,
|
||||
OUT_TOP = 0,
|
||||
OUT_BOTTOM = 0,
|
||||
NONE = 0,
|
||||
OVER_LEFT = 0,
|
||||
OVER_RIGHT = 0,
|
||||
OVER_TOP = 0,
|
||||
OVER_BOTTOM = 0,
|
||||
MOVE_LEFT = 0,
|
||||
MOVE_RIGHT = 0,
|
||||
MOVE_TOP = 0,
|
||||
MOVE_BOTTOM = 0,
|
||||
FADE_IN = 0,
|
||||
FADE_ON = 0,
|
||||
FADE_OUT = 0,
|
||||
OUT_LEFT = 0,
|
||||
OUT_RIGHT = 0,
|
||||
OUT_TOP = 0,
|
||||
OUT_BOTTOM = 0,
|
||||
}
|
||||
|
||||
--- @enum ScrollbarMode
|
||||
lvgl.SCROLLBAR_MODE = {
|
||||
OFF = 0,
|
||||
ON = 0,
|
||||
ACTIVE = 0,
|
||||
AUTO = 0,
|
||||
OFF = 0,
|
||||
ON = 0,
|
||||
ACTIVE = 0,
|
||||
AUTO = 0,
|
||||
}
|
||||
|
||||
--- @enum Dir
|
||||
lvgl.DIR = {
|
||||
NONE = 0,
|
||||
LEFT = 0,
|
||||
RIGHT = 0,
|
||||
TOP = 0,
|
||||
BOTTOM = 0,
|
||||
HOR = 0,
|
||||
VER = 0,
|
||||
ALL = 0,
|
||||
NONE = 0,
|
||||
LEFT = 0,
|
||||
RIGHT = 0,
|
||||
TOP = 0,
|
||||
BOTTOM = 0,
|
||||
HOR = 0,
|
||||
VER = 0,
|
||||
ALL = 0,
|
||||
}
|
||||
|
||||
--- @enum KeyboardMode
|
||||
lvgl.KEYBOARD_MODE = {
|
||||
TEXT_LOWER = 0,
|
||||
TEXT_UPPER = 0,
|
||||
SPECIAL = 0,
|
||||
NUMBER = 0,
|
||||
USER_1 = 0,
|
||||
USER_2 = 0,
|
||||
USER_3 = 0,
|
||||
USER_4 = 0,
|
||||
TEXT_ARABIC = 0,
|
||||
TEXT_LOWER = 0,
|
||||
TEXT_UPPER = 0,
|
||||
SPECIAL = 0,
|
||||
NUMBER = 0,
|
||||
USER_1 = 0,
|
||||
USER_2 = 0,
|
||||
USER_3 = 0,
|
||||
USER_4 = 0,
|
||||
TEXT_ARABIC = 0,
|
||||
}
|
||||
|
||||
--- @enum FlexFlow
|
||||
lvgl.FLEX_FLOW = {
|
||||
ROW = 0,
|
||||
COLUMN = 0,
|
||||
ROW_WRAP = 0,
|
||||
ROW_REVERSE = 0,
|
||||
ROW_WRAP_REVERSE = 0,
|
||||
COLUMN_WRAP = 0,
|
||||
COLUMN_REVERSE = 0,
|
||||
COLUMN_WRAP_REVERSE = 0,
|
||||
ROW = 0,
|
||||
COLUMN = 0,
|
||||
ROW_WRAP = 0,
|
||||
ROW_REVERSE = 0,
|
||||
ROW_WRAP_REVERSE = 0,
|
||||
COLUMN_WRAP = 0,
|
||||
COLUMN_REVERSE = 0,
|
||||
COLUMN_WRAP_REVERSE = 0,
|
||||
}
|
||||
|
||||
--- @enum FlexAlign
|
||||
lvgl.FLEX_ALIGN = {
|
||||
START = 0,
|
||||
END = 0,
|
||||
CENTER = 0,
|
||||
SPACE_EVENLY = 0,
|
||||
SPACE_AROUND = 0,
|
||||
SPACE_BETWEEN = 0,
|
||||
START = 0,
|
||||
END = 0,
|
||||
CENTER = 0,
|
||||
SPACE_EVENLY = 0,
|
||||
SPACE_AROUND = 0,
|
||||
SPACE_BETWEEN = 0,
|
||||
}
|
||||
|
||||
--- @enum GridAlign
|
||||
lvgl.GRID_ALIGN = {
|
||||
START = 0,
|
||||
CENTER = 0,
|
||||
END = 0,
|
||||
STRETCH = 0,
|
||||
SPACE_EVENLY = 0,
|
||||
SPACE_AROUND = 0,
|
||||
SPACE_BETWEEN = 0,
|
||||
START = 0,
|
||||
CENTER = 0,
|
||||
END = 0,
|
||||
STRETCH = 0,
|
||||
SPACE_EVENLY = 0,
|
||||
SPACE_AROUND = 0,
|
||||
SPACE_BETWEEN = 0,
|
||||
}
|
||||
|
||||
--- @enum RollerMode
|
||||
lvgl.ROLLER_MODE = {
|
||||
NORMAL = 0,
|
||||
INFINITE = 0,
|
||||
NORMAL = 0,
|
||||
INFINITE = 0,
|
||||
}
|
||||
|
||||
--- @enum KEY
|
||||
lvgl.KEY = {
|
||||
UP = 0,
|
||||
DOWN = 0,
|
||||
RIGHT = 0,
|
||||
LEFT = 0,
|
||||
ESC = 0,
|
||||
DEL = 0,
|
||||
BACKSPACE = 0,
|
||||
ENTER = 0,
|
||||
NEXT = 0,
|
||||
PREV = 0,
|
||||
HOME = 0,
|
||||
END = 0,
|
||||
UP = 0,
|
||||
DOWN = 0,
|
||||
RIGHT = 0,
|
||||
LEFT = 0,
|
||||
ESC = 0,
|
||||
DEL = 0,
|
||||
BACKSPACE = 0,
|
||||
ENTER = 0,
|
||||
NEXT = 0,
|
||||
PREV = 0,
|
||||
HOME = 0,
|
||||
END = 0,
|
||||
}
|
||||
|
||||
lvgl.ANIM_REPEAT_INFINITE = 0
|
||||
@@ -404,7 +404,6 @@ end
|
||||
function lvgl.Keyboard(parent, property)
|
||||
end
|
||||
|
||||
|
||||
---
|
||||
--- Create Led Widget on parent
|
||||
--- @param parent? Object | nil
|
||||
@@ -429,6 +428,20 @@ end
|
||||
function lvgl.Roller(parent, property)
|
||||
end
|
||||
|
||||
--- Create Slider widget on parent
|
||||
--- @param parent? Object | nil
|
||||
--- @param property? BarStyle
|
||||
--- @return Slider
|
||||
function lvgl.Slider(parent, property)
|
||||
end
|
||||
|
||||
--- Create Switch widget on parent
|
||||
--- @param parent? Object | nil
|
||||
--- @param property? StyleProp
|
||||
--- @return Switch
|
||||
function lvgl.Switch(parent, property)
|
||||
end
|
||||
|
||||
---
|
||||
--- Create Timer
|
||||
--- @param p TimerPara
|
||||
@@ -555,13 +568,27 @@ end
|
||||
function obj:List(property)
|
||||
end
|
||||
|
||||
|
||||
---
|
||||
--- Create Roller Widget on parent
|
||||
--- @param property? RollerStyle
|
||||
--- @return Roller
|
||||
function obj:Roller(parent, property)
|
||||
end
|
||||
|
||||
---
|
||||
--- Create Slider on object
|
||||
--- @param property? BarStyle
|
||||
--- @return Slider
|
||||
function obj:Slider(property)
|
||||
end
|
||||
|
||||
---
|
||||
--- Create switch on object
|
||||
--- @param property? StyleProp
|
||||
--- @return Switch
|
||||
function obj:Switch(property)
|
||||
end
|
||||
|
||||
---
|
||||
--- Set object property
|
||||
--- @param p StyleProp
|
||||
@@ -1049,6 +1076,40 @@ end
|
||||
function label:cut_text(pos, cnt)
|
||||
end
|
||||
|
||||
---
|
||||
--- Slider widget
|
||||
---@class Slider:Object
|
||||
---
|
||||
local slider = {}
|
||||
|
||||
--- set method for slider widget. Uses Bar widget's properties.
|
||||
--- @param p BarStyle
|
||||
--- @return nil
|
||||
function slider:set(p)
|
||||
end
|
||||
|
||||
--- get value of slider
|
||||
--- @return integer
|
||||
function slider:value()
|
||||
end
|
||||
|
||||
---
|
||||
--- Switch widget
|
||||
---@class Switch:Object
|
||||
---
|
||||
local switch = {}
|
||||
|
||||
--- set method for switch widget
|
||||
--- @param p StyleProp
|
||||
--- @return nil
|
||||
function switch:set(p)
|
||||
end
|
||||
|
||||
--- get checked state of switch
|
||||
--- @return boolean
|
||||
function switch:enabled()
|
||||
end
|
||||
|
||||
---
|
||||
--- Textarea widget
|
||||
---@class Textarea: Object
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
#include "lua.h"
|
||||
#include "luavgl.h"
|
||||
#include "private.h"
|
||||
#include <src/widgets/lv_slider.h>
|
||||
|
||||
static int luavgl_slider_create(lua_State *L) {
|
||||
return luavgl_obj_create_helper(L, lv_slider_create);
|
||||
}
|
||||
|
||||
static void _lv_slider_set_range(void *obj, lua_State *L) {
|
||||
int min = 0, max = 100;
|
||||
|
||||
int type = lua_type(L, -1);
|
||||
if (type == LUA_TTABLE) {
|
||||
lua_getfield(L, -1, "min");
|
||||
min = lua_tointeger(L, -1);
|
||||
lua_pop(L, 1);
|
||||
lua_getfield(L, -1, "max");
|
||||
max = luavgl_tointeger(L, -1);
|
||||
lua_pop(L, 1);
|
||||
}
|
||||
|
||||
lv_slider_set_range(obj, min, max);
|
||||
}
|
||||
|
||||
static void _lv_slider_set_value(void *obj, int value) {
|
||||
lv_slider_set_value(obj, value, LV_ANIM_OFF);
|
||||
}
|
||||
|
||||
static const luavgl_value_setter_t slider_property_table[] = {
|
||||
{"range", SETTER_TYPE_STACK, {.setter_stack = _lv_slider_set_range}},
|
||||
{"value", SETTER_TYPE_INT, {.setter = (setter_int_t)_lv_slider_set_value}},
|
||||
};
|
||||
|
||||
LUALIB_API int luavgl_slider_set_property_kv(lua_State *L, void *data) {
|
||||
lv_obj_t *obj = data;
|
||||
int ret = luavgl_set_property(L, obj, slider_property_table);
|
||||
|
||||
if (ret == 0) {
|
||||
return 0;
|
||||
}
|
||||
/* a base obj property? */
|
||||
ret = luavgl_obj_set_property_kv(L, obj);
|
||||
if (ret != 0) {
|
||||
debug("unkown property for slider.\n");
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int luavgl_slider_set(lua_State *L) {
|
||||
lv_obj_t *obj = luavgl_to_obj(L, 1);
|
||||
|
||||
if (!lua_istable(L, -1)) {
|
||||
luaL_error(L, "expect a table on 2nd para.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
luavgl_iterate(L, -1, luavgl_slider_set_property_kv, obj);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int luavgl_slider_value(lua_State *L) {
|
||||
lv_obj_t *obj = luavgl_to_obj(L, 1);
|
||||
lua_pushinteger(L, lv_slider_get_value(obj));
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int luavgl_slider_tostring(lua_State *L) {
|
||||
lv_obj_t *obj = luavgl_to_obj(L, 1);
|
||||
lua_pushfstring(L, "lv_slider:%p", obj);
|
||||
return 1;
|
||||
}
|
||||
|
||||
static const luaL_Reg luavgl_slider_methods[] = {
|
||||
{"set", luavgl_slider_set},
|
||||
{"value", luavgl_slider_value},
|
||||
{NULL, NULL},
|
||||
};
|
||||
|
||||
static void luavgl_slider_init(lua_State *L) {
|
||||
luavgl_obj_newmetatable(L, &lv_slider_class, "lv_slider",
|
||||
luavgl_slider_methods);
|
||||
lua_pushcfunction(L, luavgl_slider_tostring);
|
||||
lua_setfield(L, -2, "__tostring");
|
||||
lua_pop(L, 1);
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
#include "luavgl.h"
|
||||
#include "private.h"
|
||||
#include <src/widgets/lv_switch.h>
|
||||
|
||||
static int luavgl_switch_create(lua_State *L) {
|
||||
return luavgl_obj_create_helper(L, lv_switch_create);
|
||||
}
|
||||
|
||||
LUALIB_API int luavgl_switch_set_property_kv(lua_State *L, void *data) {
|
||||
lv_obj_t *obj = data;
|
||||
/* switches only use base properties */
|
||||
int ret = luavgl_obj_set_property_kv(L, obj);
|
||||
if (ret != 0) {
|
||||
debug("unkown property for switch.\n");
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int luavgl_switch_set(lua_State *L) {
|
||||
lv_obj_t *obj = luavgl_to_obj(L, 1);
|
||||
|
||||
if (!lua_istable(L, -1)) {
|
||||
luaL_error(L, "expect a table on 2nd para.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
luavgl_iterate(L, -1, luavgl_switch_set_property_kv, obj);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int luavgl_switch_enabled(lua_State *L) {
|
||||
lv_obj_t *obj = luavgl_to_obj(L, 1);
|
||||
lua_pushboolean(L, lv_obj_has_state(obj, LV_STATE_CHECKED));
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int luavgl_switch_tostring(lua_State *L) {
|
||||
lv_obj_t *obj = luavgl_to_obj(L, 1);
|
||||
lua_pushfstring(L, "lv_switch:%p", obj);
|
||||
return 1;
|
||||
}
|
||||
|
||||
static const luaL_Reg luavgl_switch_methods[] = {
|
||||
{"set", luavgl_switch_set},
|
||||
{"enabled", luavgl_switch_enabled},
|
||||
{NULL, NULL},
|
||||
};
|
||||
|
||||
static void luavgl_switch_init(lua_State *L) {
|
||||
luavgl_obj_newmetatable(L, &lv_switch_class, "lv_switch",
|
||||
luavgl_switch_methods);
|
||||
lua_pushcfunction(L, luavgl_switch_tostring);
|
||||
lua_setfield(L, -2, "__tostring");
|
||||
lua_pop(L, 1);
|
||||
}
|
||||
@@ -45,6 +45,14 @@
|
||||
#include "roller.c"
|
||||
#endif
|
||||
|
||||
#if LV_USE_SLIDER
|
||||
#include "slider.c"
|
||||
#endif
|
||||
|
||||
#if LV_USE_SWITCH
|
||||
#include "switch.c"
|
||||
#endif
|
||||
|
||||
#if LV_USE_TEXTAREA
|
||||
#include "textarea.c"
|
||||
#endif
|
||||
@@ -98,6 +106,14 @@ static const luaL_Reg widget_create_methods[] = {
|
||||
{"Roller", luavgl_roller_create },
|
||||
#endif
|
||||
|
||||
#if LV_USE_SLIDER
|
||||
{"Slider", luavgl_slider_create},
|
||||
#endif
|
||||
|
||||
#if LV_USE_SWITCH
|
||||
{"Switch", luavgl_switch_create},
|
||||
#endif
|
||||
|
||||
#if LV_USE_TEXTAREA
|
||||
{"Textarea", luavgl_textarea_create},
|
||||
#endif
|
||||
@@ -154,4 +170,12 @@ static void luavgl_widgets_init(lua_State *L)
|
||||
luavgl_bar_init(L);
|
||||
#endif
|
||||
|
||||
#if LV_USE_SLIDER
|
||||
luavgl_slider_init(L);
|
||||
#endif
|
||||
|
||||
#if LV_USE_SWITCH
|
||||
luavgl_switch_init(L);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user