summaryrefslogtreecommitdiff
path: root/wasp/apps/testapp.py
diff options
context:
space:
mode:
authorDaniel Thompson <daniel@redfelineninja.org.uk>2020-05-24 13:20:02 (GMT)
committerDaniel Thompson <daniel@redfelineninja.org.uk>2020-05-24 13:20:02 (GMT)
commitde647b324cd5731eed54fe38e3efe93b26a8be42 (patch)
treeac8f45c5fa88a44ac7424800c39527e907b430d6 /wasp/apps/testapp.py
parent57999226fdf8e36021c37478730084424947f604 (diff)
widgets: Introduce a slider widget
Currently the slider doesn't actually slide (because we process touch events rather than swipe events) but we've called is a slider anyway.
Diffstat (limited to 'wasp/apps/testapp.py')
-rw-r--r--wasp/apps/testapp.py33
1 files changed, 30 insertions, 3 deletions
diff --git a/wasp/apps/testapp.py b/wasp/apps/testapp.py
index 6681aa5..43b99ca 100644
--- a/wasp/apps/testapp.py
+++ b/wasp/apps/testapp.py
@@ -16,10 +16,16 @@ class TestApp():
ICON = icons.app
def __init__(self):
- self.tests = ('Button', 'Crash', 'RLE', 'String', 'Touch', 'Wrap')
+ self.tests = ('Button', 'Crash', 'Colours', 'RLE', 'String', 'Touch', 'Wrap')
self.test = self.tests[0]
self.scroll = wasp.widgets.ScrollIndicator()
+ self._sliders = (
+ wasp.widgets.Slider(32, 10, 90, 0xf800),
+ wasp.widgets.Slider(64, 10, 140, 0x27e4),
+ wasp.widgets.Slider(32, 10, 190, 0x211f),
+ )
+
def foreground(self):
"""Activate the application."""
self.on_screen = ( -1, -1, -1, -1, -1, -1 )
@@ -55,7 +61,14 @@ class TestApp():
self._draw()
def touch(self, event):
- if self.test == 'RLE':
+ if self.test == 'Colours':
+ if event[2] > 90:
+ s = self._sliders[(event[2] - 90) // 50]
+ s.touch(event)
+ s.update()
+ self.scroll.draw()
+ self._update_colours()
+ elif self.test == 'RLE':
self._benchmark_rle()
elif self.test == 'String':
self._benchmark_string()
@@ -119,12 +132,26 @@ class TestApp():
draw.fill()
draw.string('{} test'.format(self.test),
0, 6, width=240)
- self.scroll.draw()
if self.test == 'Crash':
draw.string("Press button to", 12, 24+24)
draw.string("throw exception.", 12, 24+48)
+ elif self.test == 'Colours':
+ for s in self._sliders:
+ s.draw()
+ self._update_colours()
elif self.test == 'RLE':
draw.blit(self.ICON, 120-48, 120-32)
+ self.scroll.draw()
wasp.watch.display.mute(False)
+
+ def _update_colours(self):
+ draw = wasp.watch.drawable
+ r = self._sliders[0].value
+ g = self._sliders[1].value
+ b = self._sliders[2].value
+ rgb = (r << 11) + (g << 5) + b
+
+ draw.string('RGB565 #{:04x}'.format(rgb), 0, 6, width=240)
+ draw.fill(rgb, 60, 35, 120, 50)