summaryrefslogtreecommitdiff
path: root/lua/widgets.lua
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2024-01-15 12:31:20 +1100
committerjacqueline <me@jacqueline.id.au>2024-01-15 12:31:20 +1100
commit7cdcd44e0ca10ebdc796638190ed1d9b45d99ef0 (patch)
tree637b43848d17c9dbdc1688cb4733eb235f223e37 /lua/widgets.lua
parent0e04eb918ec976017276306181282769d8896c83 (diff)
downloadtangara-fw-7cdcd44e0ca10ebdc796638190ed1d9b45d99ef0.tar.gz
Begin migration of remaining screens to Lua
Diffstat (limited to 'lua/widgets.lua')
-rw-r--r--lua/widgets.lua40
1 files changed, 40 insertions, 0 deletions
diff --git a/lua/widgets.lua b/lua/widgets.lua
index bd0b2405..732093f0 100644
--- a/lua/widgets.lua
+++ b/lua/widgets.lua
@@ -2,9 +2,49 @@ local lvgl = require("lvgl")
local power = require("power")
local bluetooth = require("bluetooth")
local font = require("font")
+local backstack = require("backstack")
+local theme = require("theme")
local widgets = {}
+function widgets.MenuScreen(opts)
+ local screen = {}
+ screen.root = lvgl.Object(nil, {
+ flex = {
+ flex_direction = "column",
+ flex_wrap = "nowrap",
+ justify_content = "flex-start",
+ align_items = "flex-start",
+ align_content = "flex-start",
+ },
+ w = lvgl.PCT(100),
+ h = lvgl.PCT(100),
+ })
+ screen.root:center()
+ screen.status_bar = widgets.StatusBar(screen.root, {
+ back_cb = opts.show_back and backstack.pop or nil,
+ title = opts.title,
+ transparent_bg = true
+ })
+ return screen
+end
+
+function widgets.Row(parent, left, right)
+ local container = parent:Object {
+ flex = {
+ flex_direction = "row",
+ justify_content = "flex-start",
+ align_items = "flex-start",
+ align_content = "flex-start",
+ },
+ w = lvgl.PCT(100),
+ h = lvgl.SIZE_CONTENT,
+ }
+ container:add_style(theme.list_item)
+ container:Label { text = left, flex_grow = 1 }
+ container:Label { text = right }
+end
+
function widgets.StatusBar(parent, opts)
local status_bar = {}