summaryrefslogtreecommitdiff
path: root/lib/luavgl/examples/fs.lua
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2023-11-12 19:14:09 +1100
committerjacqueline <me@jacqueline.id.au>2023-11-12 19:14:09 +1100
commit8a0a167adbf3d9b6f8b6f16aaf20ca39ad5549de (patch)
tree02b6cf23f591915747ec2994381854a79979c4a0 /lib/luavgl/examples/fs.lua
parent8471046a95ab9e00f7d42b56dbbc9ce3e5b424b9 (diff)
downloadtangara-fw-8a0a167adbf3d9b6f8b6f16aaf20ca39ad5549de.tar.gz
Convert the main menu screen to lua lol
Diffstat (limited to 'lib/luavgl/examples/fs.lua')
-rw-r--r--lib/luavgl/examples/fs.lua59
1 files changed, 59 insertions, 0 deletions
diff --git a/lib/luavgl/examples/fs.lua b/lib/luavgl/examples/fs.lua
new file mode 100644
index 00000000..6672f4d0
--- /dev/null
+++ b/lib/luavgl/examples/fs.lua
@@ -0,0 +1,59 @@
+local function fs_example()
+ -- local f <close>, msg, code = lvgl.open_file(SCRIPT_PATH .. "/tmp.txt") -- for lua 5.4
+ local f, msg, code = lvgl.fs.open_file(SCRIPT_PATH .. "/tmp.txt", "rw")
+ if not f then
+ print("failed: ", msg, code)
+ return
+ end
+
+ print("f: ", f)
+
+ f:write("0123456789", 123, "\n", "the remaining text")
+ f:seek("set", 0) -- go back
+ local header, remaining = f:read(10, "*a")
+ f:close()
+ if not header then
+ print("read failed or EOF")
+ return
+ end
+
+ print("header len:", #header, ": ", header)
+ print("remaining: ", remaining)
+
+ lvgl.Label(nil, {
+ x = 0,
+ y = 0,
+ text_font = lvgl.Font("montserrat", 20, "normal"),
+ text = header .. remaining,
+ align = lvgl.ALIGN.TOP_LEFT
+ })
+
+ local list = lvgl.List(nil, {
+ align = lvgl.ALIGN.TOP_RIGHT,
+ pad_all = 10,
+ text_font = lvgl.BUILTIN_FONT.MONTSERRAT_12
+ })
+ list:add_text("Directory list:")
+
+ -- local dir <close>, msg, code = lvgl.fs.open_dir(SCRIPT_PATH .. "/")
+ local dir, msg, code = lvgl.fs.open_dir(SCRIPT_PATH .. "/")
+ if not dir then
+ print("open dir failed: ", msg, code)
+ return
+ end
+
+ while true do
+ local d = dir:read()
+ if not d then break end
+ local is_dir = string.byte(d, 1) == string.byte("/", 1)
+ local str = (is_dir and "dir: " or "file: ") .. d
+ print(str)
+
+ list:add_text(str):set{
+ border_width = 1,
+ }
+ end
+ dir:close()
+end
+
+fs_example()