diff options
| author | jacqueline <me@jacqueline.id.au> | 2023-11-20 14:43:20 +1100 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2023-11-20 14:43:20 +1100 |
| commit | effac1917a615660bf76b35b3605ac2d3eeabd2f (patch) | |
| tree | e078b24b8405203fb36a6f83a7235b05f4bf32a0 /lua | |
| parent | b7f37f6426c78132d338b032962209bd93771039 (diff) | |
| download | tangara-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.lua | 37 | ||||
| -rw-r--r-- | lua/main.lua | 5 | ||||
| -rw-r--r-- | lua/main_menu.lua | 8 |
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 |
