From f78de39a750d58bfe883a789aa6cc4b0a5d9b9e7 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Fri, 12 Jul 2024 14:40:54 +1000 Subject: Give Bluetooth settings a bit of a refresh It's now a bit more responsive to stuff happening, gives you more information, and remembers your previously paired devices for faster switching between them. --- lua/widgets.lua | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'lua/widgets.lua') diff --git a/lua/widgets.lua b/lua/widgets.lua index c3573c0b..c7a24576 100644 --- a/lua/widgets.lua +++ b/lua/widgets.lua @@ -79,11 +79,10 @@ function widgets.Row(parent, left, right) } end -local bindings_meta = { - __add = function(a, b) - return table.move(a, 1, #a, #b + 1, b) - end -} +local bindings_meta = {} +bindings_meta["__add"] = function(a, b) + return setmetatable(table.move(a, 1, #a, #b + 1, b), bindings_meta) +end function widgets.StatusBar(parent, opts) local root = parent.root:Object { -- cgit v1.2.3 From d8ce31e46b0dea356dd415b62f71c265bea54d2a Mon Sep 17 00:00:00 2001 From: jacqueline Date: Wed, 17 Jul 2024 13:38:44 +1000 Subject: Scroll to top when selecting the back button --- lua/widgets.lua | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'lua/widgets.lua') diff --git a/lua/widgets.lua b/lua/widgets.lua index c7a24576..78d53a57 100644 --- a/lua/widgets.lua +++ b/lua/widgets.lua @@ -113,6 +113,16 @@ function widgets.StatusBar(parent, opts) local label = back:Label({ text = "<", align = lvgl.ALIGN.CENTER }) widgets.Description(label, "Back") back:onClicked(opts.back_cb) + back:onevent(lvgl.EVENT.FOCUSED, function() + local first_view = parent.content + if not first_view then return end + while first_view:get_child_cnt() > 0 do + first_view = first_view:get_child(0) + end + if first_view then + first_view:scroll_to_view_recursive(1) + end + end) end local title = root:Label { -- cgit v1.2.3 From 0cc75366848e9205ac88884afcc128925024ccec Mon Sep 17 00:00:00 2001 From: jacqueline Date: Wed, 24 Jul 2024 15:29:45 +1000 Subject: Add a settings screen with power+battery info Mostly for debugging, but also u can toggle fast charging off and on now --- lua/widgets.lua | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'lua/widgets.lua') diff --git a/lua/widgets.lua b/lua/widgets.lua index 78d53a57..f830390f 100644 --- a/lua/widgets.lua +++ b/lua/widgets.lua @@ -58,7 +58,7 @@ widgets.MenuScreen = screen:new { end } -function widgets.Row(parent, left, right) +function widgets.Row(parent, left_text, right_text) local container = parent:Object { flex = { flex_direction = "row", @@ -70,12 +70,16 @@ function widgets.Row(parent, left, right) h = lvgl.SIZE_CONTENT } container:add_style(styles.list_item) - container:Label { - text = left, - flex_grow = 1 + local left = container:Label { + text = left_text, + flex_grow = 1, + } + local right = container:Label { + text = right_text or "", } - container:Label { - text = right + return { + left = left, + right = right, } end -- cgit v1.2.3 From 0662bb037b94ffc50ee7ce313c348cbe6b7f6e4c Mon Sep 17 00:00:00 2001 From: ailurux Date: Thu, 15 Aug 2024 16:14:18 +1000 Subject: Some UI/themes tweaks --- lua/widgets.lua | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'lua/widgets.lua') diff --git a/lua/widgets.lua b/lua/widgets.lua index f830390f..2eab3af6 100644 --- a/lua/widgets.lua +++ b/lua/widgets.lua @@ -8,6 +8,7 @@ local styles = require("styles") local database = require("database") local theme = require("theme") local screen = require("screen") +local images = require("images") local img = { db = lvgl.ImgData("//lua/img/db.png"), @@ -112,10 +113,11 @@ function widgets.StatusBar(parent, opts) if opts.back_cb then local back = root:Button { w = lvgl.SIZE_CONTENT, - h = 12, + h = lvgl.SIZE_CONTENT, } - local label = back:Label({ text = "<", align = lvgl.ALIGN.CENTER }) - widgets.Description(label, "Back") + back:Image{src=images.back} + theme.set_style(back, "back_button") + widgets.Description(back, "Back") back:onClicked(opts.back_cb) back:onevent(lvgl.EVENT.FOCUSED, function() local first_view = parent.content @@ -136,6 +138,7 @@ function widgets.StatusBar(parent, opts) text = "", align = lvgl.ALIGN.CENTER, flex_grow = 1, + pad_left = 2, } if opts.title then title:set { text = opts.title } -- cgit v1.2.3 From 3ed3f1dfeb7f83630f0e1d0633eaa5fbda9d37c7 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Fri, 16 Aug 2024 11:42:32 +1000 Subject: Add cool skeumorphic embossing --- lua/widgets.lua | 4 ---- 1 file changed, 4 deletions(-) (limited to 'lua/widgets.lua') diff --git a/lua/widgets.lua b/lua/widgets.lua index 2eab3af6..4e83393e 100644 --- a/lua/widgets.lua +++ b/lua/widgets.lua @@ -226,10 +226,6 @@ function widgets.IconBtn(parent, icon, text) }, w = lvgl.SIZE_CONTENT, h = lvgl.SIZE_CONTENT, - pad_top = 1, - pad_bottom = 1, - pad_left = 1, - pad_column = 1 } btn:Image { src = icon -- cgit v1.2.3 From 0f9005626d2d919e6995809453b9b5ec3c72096b Mon Sep 17 00:00:00 2001 From: ailurux Date: Fri, 16 Aug 2024 16:56:58 +1000 Subject: Redesigned many icons, added styles for battery icon recolouring based on percentage --- lua/widgets.lua | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'lua/widgets.lua') diff --git a/lua/widgets.lua b/lua/widgets.lua index 4e83393e..29e50f29 100644 --- a/lua/widgets.lua +++ b/lua/widgets.lua @@ -19,7 +19,6 @@ local img = { bat_40 = lvgl.ImgData("//lua/img/bat/40.png"), bat_20 = lvgl.ImgData("//lua/img/bat/20.png"), bat_0 = lvgl.ImgData("//lua/img/bat/0.png"), - bat_0chg = lvgl.ImgData("//lua/img/bat/0chg.png"), bt_conn = lvgl.ImgData("//lua/img/bt_conn.png"), bt = lvgl.ImgData("//lua/img/bt.png") } @@ -102,6 +101,7 @@ function widgets.StatusBar(parent, opts) pad_top = 1, pad_bottom = 1, pad_left = 4, + pad_right = 4, pad_column = 1, scrollbar_mode = lvgl.SCROLLBAR_MODE.OFF, } @@ -157,24 +157,29 @@ function widgets.StatusBar(parent, opts) local function update_battery_icon() if is_charging == nil or percent == nil then return end local src + theme.set_style(battery_icon, "battery") if percent >= 95 then + theme.set_style(battery_icon, "battery_100") src = img.bat_100 elseif percent >= 75 then + theme.set_style(battery_icon, "battery_80") src = img.bat_80 elseif percent >= 55 then + theme.set_style(battery_icon, "battery_60") src = img.bat_60 elseif percent >= 35 then + theme.set_style(battery_icon, "battery_40") src = img.bat_40 elseif percent >= 15 then + theme.set_style(battery_icon, "battery_20") src = img.bat_20 else - if is_charging then - src = img.bat_0chg - else - src = img.bat_0 - end + theme.set_style(battery_icon, "battery_0") + src = img.bat_0 end if is_charging then + theme.set_style(battery_icon, "battery_charging") + theme.set_style(charge_icon, "battery_charge_icon") charge_icon:clear_flag(lvgl.FLAG.HIDDEN) else charge_icon:add_flag(lvgl.FLAG.HIDDEN) @@ -206,6 +211,7 @@ function widgets.StatusBar(parent, opts) end end), bluetooth.connected:bind(function(connected) + theme.set_style(bt_icon, "bluetooth_icon") if connected then bt_icon:set_src(img.bt_conn) else -- cgit v1.2.3 From 91eaed4b37c7cda29103d3478df3e2c6356f8396 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Thu, 29 Aug 2024 15:52:34 +1000 Subject: use snake_case consistently in lua function names --- lua/widgets.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lua/widgets.lua') diff --git a/lua/widgets.lua b/lua/widgets.lua index 29e50f29..980f0bb2 100644 --- a/lua/widgets.lua +++ b/lua/widgets.lua @@ -37,7 +37,7 @@ end widgets.MenuScreen = screen:new { show_back = false, title = "", - createUi = function(self) + create_ui = function(self) self.root = lvgl.Object(nil, { flex = { flex_direction = "column", -- cgit v1.2.3