diff options
Diffstat (limited to 'wasp/widgets.py')
| -rw-r--r-- | wasp/widgets.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/wasp/widgets.py b/wasp/widgets.py new file mode 100644 index 0000000..90e98ea --- /dev/null +++ b/wasp/widgets.py @@ -0,0 +1,48 @@ +import icons +import watch + +class BatteryMeter(object): + def __init__(self): + self.level = None + + def draw(self): + display = watch.display + icon = icons.battery + + watch.display.rleblit(icon, pos=(239-icon[0], 0), fg=0x7bef) + self.level = -1 + self.update() + + def update(self): + if watch.battery.charging(): + if self.level != -1: + icon = icons.battery + watch.display.rleblit(icon, pos=(239-icon[0], 0), fg=0x7bef) + self.level = -1 + else: + level = watch.battery.level() + if level == self.level: + return + self.level = level + x = 239 - 31 + w = 18 + + # Use the level to work out the correct height + if level == 100: + h = 26 + else: + h = level // 4 + + # Use the level to figure out the right color + if level > 96: + rgb = 0x07e0 + else: + green = level // 3 + red = 31-green + rgb = (red << 11) + (green << 6) + + if 26 - h: + watch.display.fill(0, x, 13, 18, 26 - h) + if h: + watch.display.fill(rgb, x, 39 - h, 18, h) + |
