summaryrefslogtreecommitdiff
path: root/wasp/widgets.py
diff options
context:
space:
mode:
authorDaniel Thompson <daniel@redfelineninja.org.uk>2020-12-28 11:12:16 (GMT)
committerDaniel Thompson <daniel@redfelineninja.org.uk>2020-12-28 11:12:16 (GMT)
commit8abb6f3f4ddf658c70788c028c6bde156bb018ea (patch)
tree0fd3c95b48f24716cb022d8d14fd2412db3b9aaf /wasp/widgets.py
parentff958d154ffd9b3a8ac1863f14adbd15aa44c8a4 (diff)
widgets: Reduce the size of the battery icon
Currently the battery icon is overlarge compared to other status bar icons such as the BT and notification icons (both of which are 32px high). Fix this by redrawing the battery artwork and updating the widgets in the status bar. Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
Diffstat (limited to 'wasp/widgets.py')
-rw-r--r--wasp/widgets.py39
1 files changed, 18 insertions, 21 deletions
diff --git a/wasp/widgets.py b/wasp/widgets.py
index d39de90..d1cf1fd 100644
--- a/wasp/widgets.py
+++ b/wasp/widgets.py
@@ -39,7 +39,7 @@ class BatteryMeter:
if watch.battery.charging():
if self.level != -1:
- draw.rleblit(icon, pos=(239-icon[0], 0),
+ draw.blit(icon, 239-icon[1], 0,
fg=wasp.system.theme('battery'))
self.level = -1
else:
@@ -47,30 +47,28 @@ class BatteryMeter:
if level == self.level:
return
- if level > 96:
- h = 24
- rgb = 0x07e0
- else:
- h = level // 4
- green = level // 3
- red = 31-green
- rgb = (red << 11) + (green << 6)
+ green = level // 3
+ if green > 31:
+ green = 31
+ red = 31-green
+ rgb = (red << 11) + (green << 6)
if self.level < 0 or ((level > 5) ^ (self.level > 5)):
if level > 5:
- draw.rleblit(icon, pos=(239-icon[0], 0),
+ draw.blit(icon, 239-icon[1], 0,
fg=wasp.system.theme('battery'))
else:
rgb = 0xf800
- draw.rleblit(icon, pos=(239-icon[0], 0), fg=0xf800)
+ draw.blit(icon, 239-icon[1], 0, fg=0xf800)
- x = 239 - 30
- w = 16
- if 24 - h:
- draw.fill(0, x, 14, w, 24 - h)
+ w = icon[1] - 10
+ x = 239 - 5 - w
+ h = 2*level // 11
+ if 18 - h:
+ draw.fill(0, x, 9, w, 18 - h)
if h:
- draw.fill(rgb, x, 38 - h, w, h)
+ draw.fill(rgb, x, 27 - h, w, h)
self.level = level
@@ -111,14 +109,14 @@ class Clock:
draw = wasp.watch.drawable
draw.set_font(fonts.sans28)
draw.set_color(wasp.system.theme('status-clock'))
- draw.string(t1, 52, 12, 138)
+ draw.string(t1, 52, 4, 138)
self.on_screen = now
return now
class NotificationBar:
"""Show BT status and if there are pending notifications."""
- def __init__(self, x=2, y=8):
+ def __init__(self, x=0, y=0):
self._pos = (x, y)
def draw(self):
@@ -213,10 +211,9 @@ class ScrollIndicator:
color = wasp.system.theme('scroll-indicator')
if self.up:
- draw.rleblit(icons.up_arrow, pos=self._pos, fg=color)
+ draw.blit(icons.up_arrow, self._pos[0], self._pos[1], fg=color)
if self.down:
- draw.rleblit(icons.down_arrow, pos=(self._pos[0], self._pos[1] + 13),
- fg=color)
+ draw.blit(icons.down_arrow, self._pos[0], self._pos[1]+13, fg=color)
_SLIDER_KNOB_DIAMETER = const(40)
_SLIDER_KNOB_RADIUS = const(_SLIDER_KNOB_DIAMETER // 2)