summaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2023-11-20 14:43:20 +1100
committerjacqueline <me@jacqueline.id.au>2023-11-20 14:43:20 +1100
commiteffac1917a615660bf76b35b3605ac2d3eeabd2f (patch)
treee078b24b8405203fb36a6f83a7235b05f4bf32a0 /lua
parentb7f37f6426c78132d338b032962209bd93771039 (diff)
downloadtangara-fw-effac1917a615660bf76b35b3605ac2d3eeabd2f.tar.gz
Use C functions for the backstack, instead of a lua module
Working with the default group and root kinda sucks if you have to do it from lua!
Diffstat (limited to 'lua')
-rw-r--r--lua/backstack.lua37
-rw-r--r--lua/main.lua5
-rw-r--r--lua/main_menu.lua8
3 files changed, 5 insertions, 45 deletions
diff --git a/lua/backstack.lua b/lua/backstack.lua
deleted file mode 100644
index c54fbac4..00000000
--- a/lua/backstack.lua
+++ /dev/null
@@ -1,37 +0,0 @@
-local lvgl = require("lvgl")
-
-local backstack = {
- root = lvgl.Object(nil, {
- w = lvgl.HOR_RES(),
- h = lvgl.VER_RES(),
- }),
- stack = {},
-}
-
-function backstack:Top()
- return self.stack[#self.stack]
-end
-
-function backstack:SetTopParent(parent)
- local top = self:Top()
- if top and top.root then
- top.root:set_parent(parent)
- end
-end
-
-function backstack:Push(screen)
- self:SetTopParent(nil)
- table.insert(self.stack, screen)
- self:SetTopParent(self.root)
-end
-
-function backstack:Pop(num)
- num = num or 1
- for _ = 1, num do
- local removed = table.remove(self.stack)
- removed.root:delete()
- end
- self:SetTopParent(self.root)
-end
-
-return backstack
diff --git a/lua/main.lua b/lua/main.lua
index ce9596af..106f11c7 100644
--- a/lua/main.lua
+++ b/lua/main.lua
@@ -1,3 +1,4 @@
local backstack = require("backstack")
-local main_menu = require("main_menu"):Create(backstack.root)
-backstack:Push(main_menu)
+local main_menu = require("main_menu")
+
+backstack.push(main_menu)
diff --git a/lua/main_menu.lua b/lua/main_menu.lua
index f0be33de..3b88111d 100644
--- a/lua/main_menu.lua
+++ b/lua/main_menu.lua
@@ -3,11 +3,9 @@ local widgets = require("widgets")
local legacy_ui = require("legacy_ui")
local database = require("database")
-local main_menu = {}
-
-function main_menu:Create(parent)
+return function()
local menu = {}
- menu.root = lvgl.Object(parent, {
+ menu.root = lvgl.Object(nil, {
flex = {
flex_direction = "column",
flex_wrap = "wrap",
@@ -46,5 +44,3 @@ function main_menu:Create(parent)
return menu
end
-
-return main_menu