diff options
| author | kozova1 <mug66kk@gmail.com> | 2020-12-05 18:27:55 (GMT) |
|---|---|---|
| committer | Daniel Thompson <daniel@redfelineninja.org.uk> | 2020-12-13 16:51:07 (GMT) |
| commit | 2624a6e998f7b5a78a38fa98be15bf3d25ed81a9 (patch) | |
| tree | 932437f9d64c3ca21745deacce570224c240a8de /tools/test_theme.py | |
| parent | 784c9bb36d29457ddb3a5ef5af55918e1f4cd93c (diff) | |
Added basic theming engine.
This theming engine uses a bytestring (but supports anything indexable,
as long as the index results are a byte long),
stored as `wasp.system._theme`.
It has a default value, which should not change anything about the way this looks currently.
The theme can be set via `wasp.system.set_theme`,
but this should *ONLY* be used in `main.py`.
`wasp.system.set_theme` will return True if it was successful,
or False if the theme is of an old format.
Using an old format theme will *not* crash the watch,
but will use the default theme instead.
To theme this, one has to use tools/themer.py (use flag -h for complete explanation)
to generate a bytestring that's added in main.py (see diff).
The bytestring is then loaded into 'wasp.system._theme'.
Theme values can be looked up by apps by using `wasp.system.theme("theme-key")`.
Theme keys appear in the function body of `wasp.system.theme()`.
I've took the liberty of converting existing apps to use this method,
and it seems to work well.
A test theme is provided in `tools/test_theme.py`
Signed-off-by: kozova1 <mug66kk@gmail.com>
Diffstat (limited to 'tools/test_theme.py')
| -rw-r--r-- | tools/test_theme.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/tools/test_theme.py b/tools/test_theme.py new file mode 100644 index 0000000..dc2b990 --- /dev/null +++ b/tools/test_theme.py @@ -0,0 +1,15 @@ +from themer import DefaultTheme + +class Theme(DefaultTheme): + # These colors were chosen specifically because they're hard to miss. + # Using this theme on an actual device is not advised + # The default theme was generated by removing all the lines below and adding `pass` instead. + BLE_COLOR = 0xfb80 + SCROLL_INDICATOR_COLOR = 0xf800 + BATTERY_CHARGING_COLOR = 0x07ff + SMALL_CLOCK_COLOR = 0x599f + NOTIFICATION_COLOR = 0x8fe0 + ACCENT_MID = 0xf800 + ACCENT_LO = 0x001f + ACCENT_HI = 0x07e0 + SLIDER_DEFAULT_COLOR = 0x7777 |
