Convert the main menu screen to lua lol
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
-- a dropdown on top left
|
||||
local dd = lvgl.Dropdown(nil, {
|
||||
-- note there are two "Orange"
|
||||
options = "Apple\nBanana\nOrange\nCherry\nGrape\nRaspberry\nMelon\nOrange\nLemon\nNuts",
|
||||
symbol = "\xEF\x81\x94",
|
||||
dir = lvgl.DIR.RIGHT,
|
||||
highlight = false,
|
||||
text = nil,
|
||||
align = {
|
||||
type = lvgl.ALIGN.TOP_LEFT,
|
||||
x_ofs = 20,
|
||||
y_ofs = 20,
|
||||
}
|
||||
})
|
||||
local list = dd:get("list")
|
||||
print("get dropdown list: ", list)
|
||||
list:set { text_font = lvgl.BUILTIN_FONT.MONTSERRAT_20 }
|
||||
|
||||
print("available options:", dd:get("options"))
|
||||
|
||||
local cnt = 0
|
||||
dd:onevent(lvgl.EVENT.VALUE_CHANGED,
|
||||
---comment
|
||||
---@param obj Dropdown
|
||||
---@param code ObjEventCode
|
||||
function(obj, code)
|
||||
obj:add_option(string.format("Option:%d", cnt), dd:get("option_cnt"))
|
||||
cnt = cnt + 1
|
||||
print(obj:get("selected_str"), "option_cnt" .. obj:get("option_cnt"))
|
||||
end
|
||||
)
|
||||
|
||||
-- another dropdown on top left
|
||||
local dd = lvgl.Dropdown(nil, {
|
||||
options = "Apple\nBanana\nOrange\nCherry\nGrape\nRaspberry\nMelon\nOrange\nLemon\nNuts",
|
||||
symbol = "\xEF\x81\xB7",
|
||||
dir = lvgl.DIR.BOTTOM,
|
||||
text = "SetText",
|
||||
selected = 5,
|
||||
text_font = lvgl.BUILTIN_FONT.MONTSERRAT_20,
|
||||
align = {
|
||||
type = lvgl.ALIGN.BOTTOM_MID,
|
||||
x_ofs = 0,
|
||||
y_ofs = -20,
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
dd:get("list"):set { text_font = lvgl.Font("montserrat", 24) }
|
||||
dd:onevent(lvgl.EVENT.VALUE_CHANGED, function(obj, code)
|
||||
print(obj:get("selected_str") .. ":" .. obj:get("selected"),
|
||||
"dir:" .. obj:get("dir"),
|
||||
"option_index" .. dd:get("option_index", obj:get("selected_str")))
|
||||
end)
|
||||
|
||||
|
||||
|
||||
lvgl.Timer {
|
||||
period = 1000,
|
||||
cb = function(t)
|
||||
t:delete()
|
||||
dd:open()
|
||||
print("now dd should be opened: " .. (dd:is_open() and "open" or "closed"))
|
||||
end
|
||||
}
|
||||
|
||||
lvgl.Timer {
|
||||
period = 2000,
|
||||
cb = function(t)
|
||||
t:delete()
|
||||
dd:close()
|
||||
print("now dd should be closed: " .. (dd:is_open() and "open" or "closed"))
|
||||
end
|
||||
}
|
||||
Reference in New Issue
Block a user