daniel/theme-setting (#87)

- Themes can be loaded from disk and built-in
- Themes can be selected in a new themes menu of the settings screen
- Some touch-ups to existing themes
- The saved theme is persisted in nvs

Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/87
Reviewed-by: cooljqln <cooljqln@noreply.codeberg.org>
Co-authored-by: ailurux <ailuruxx@gmail.com>
Co-committed-by: ailurux <ailuruxx@gmail.com>
This commit is contained in:
ailurux
2024-08-12 03:19:03 +00:00
committed by cooljqln
parent 3d7b005dc9
commit d719f9c501
16 changed files with 293 additions and 39 deletions
+28
View File
@@ -0,0 +1,28 @@
--- @meta
--- @class theme
local theme = {}
--- Loads a theme from a filename, this can be either builtin (ie, located in
--- "/lua/") or on the sdcard (in, '/sdcard/.themes/')
--- If successful, the filename will be saved to non-volatile storage.
--- Returns whether the theme was successfully loaded
--- @param filename string
--- @return boolean
function theme.load_theme(filename) end
--- Sets a theme directly from a table. Does not persist between restarts.
--- @param theme
function theme.set(theme) end
--- Set the style name (similar in concept to a css selector) for an object
--- This will set any styles associated with that style name on the object
--- @param obj Object The object to set a particular style on
--- @param style string The name of the style to apply to this object
function theme.set_style(obj, style) end
--- Returns the filename of the saved theme
--- @return string
function theme.theme_filename() end
return theme