Add small interactive test scripts

This commit is contained in:
Joscha 2019-05-28 11:18:37 +00:00
parent 32bc9af2d8
commit 1803a6676e
4 changed files with 91 additions and 0 deletions

2
test_scripts/.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
cheuph
yaboli

View file

@ -0,0 +1,38 @@
import urwid
import urwid.curses_display
import cheuph
from cheuph import AT, AttributedLines, AttributedLinesWidget
class TestWidget(urwid.WidgetWrap):
def __init__(self):
lines = [
({}, AT("a")),
({}, AT("Hello world")),
({}, AT("super long line " * 20)),
]
self.lines = AttributedLinesWidget(AttributedLines(lines))
super().__init__(self.lines)
def selectable(self):
return True
def keypress(self, size, key):
if key == "left":
self.lines.horizontal_offset -= 1
elif key == "right":
self.lines.horizontal_offset += 1
elif key == "home":
self.lines.horizontal_offset = 0
elif key == "up":
self.lines.upper_offset += 1
elif key == "down":
self.lines.upper_offset -= 1
def main():
screen = urwid.curses_display.Screen()
loop = urwid.MainLoop(TestWidget(), screen=screen)
loop.run()
main()

View file

@ -0,0 +1,20 @@
import urwid
import urwid.curses_display
import cheuph
from cheuph import AT, AttributedTextWidget
class TestWidget(urwid.WidgetWrap):
def __init__(self):
text = AT("Hello world!\nThis is some text.\nThird line.")
self.text = AttributedTextWidget(text)
self.filler = urwid.Filler(self.text)
super().__init__(self.filler)
def main():
screen = urwid.curses_display.Screen()
loop = urwid.MainLoop(TestWidget(), screen=screen)
loop.run()
main()

View file

@ -0,0 +1,31 @@
import urwid
import urwid.curses_display
class TestWidget(urwid.WidgetWrap):
KEY_LIMIT = 10
def __init__(self):
self.last_keys = []
self.text = urwid.Text("No key pressed yet", align=urwid.CENTER)
self.filler = urwid.Filler(self.text)
super().__init__(self.filler)
def selectable(self):
return True
def keypress(self, size, key):
self.last_keys.append(repr(key))
self.last_keys = self.last_keys[-self.KEY_LIMIT:]
self.text.set_text("\n".join(self.last_keys))
def mouse_event(self, size, event, button, col, row, focus):
self.last_keys.append(f"{size!r} {event!r} {button!r} ({row}, {col})")
self.last_keys = self.last_keys[-self.KEY_LIMIT:]
self.text.set_text("\n".join(self.last_keys))
def main():
screen = urwid.curses_display.Screen()
loop = urwid.MainLoop(TestWidget(), screen=screen)
loop.run()
main()