diff options
Diffstat (limited to 'lua/font.lua')
| -rw-r--r-- | lua/font.lua | 36 |
1 files changed, 33 insertions, 3 deletions
diff --git a/lua/font.lua b/lua/font.lua index 7afa1e01..c76602ec 100644 --- a/lua/font.lua +++ b/lua/font.lua @@ -1,6 +1,36 @@ local lvgl = require("lvgl") -return { - fusion_12 = lvgl.Font("//lua/fonts/fusion12"), - fusion_10 = lvgl.Font("//lua/fonts/fusion10"), +local fonts = {} +local fonts_priv = { + has_invoked_cb = false, + cb = nil, } + +function fonts_priv.has_loaded_all() + return fonts.fusion_12 and fonts.fusion_10 +end + +function fonts_priv.invoke_cb() + if fonts_priv.has_invoked_cb or not fonts_priv.cb then return end + if not fonts_priv.has_loaded_all() then return end + fonts_priv.has_invoked_cb = true + fonts_priv.cb() +end + +lvgl.Font("//lua/fonts/fusion12", function(font) + fonts.fusion_12 = font + fonts_priv.invoke_cb() +end) + +lvgl.Font("//lua/fonts/fusion10", function(font) + fonts.fusion_10 = font + fonts_priv.invoke_cb() +end) + +function fonts.on_loaded(cb) + fonts_priv.cb = cb + fonts_priv.has_invoked_cb = false + fonts_priv.invoke_cb() +end + +return fonts |
