]> git.armaanb.net Git - lightcards.git/blob - src/display.py
Create frame for display application
[lightcards.git] / src / display.py
1 #!/usr/bin/env python
2 # Display flashcards
3 # Armaan Bhojwani 2021
4
5 from prompt_toolkit import Application
6 from prompt_toolkit.layout.containers import VSplit, Window
7 from prompt_toolkit.layout.controls import FormattedTextControl
8 from prompt_toolkit.layout.layout import Layout
9 from prompt_toolkit.key_binding import KeyBindings
10
11 from tqdm import tqdm
12
13 def disp_card():
14     root_container = VSplit([
15         Window(content=FormattedTextControl(text='Hello world')),
16     ])
17
18     layout = Layout(root_container)
19     kb = KeyBindings()
20
21     # Exit program
22     @kb.add('q')
23     @kb.add('c-q')
24     @kb.add('c-c')
25     @kb.add('c-z')
26     def exit_(event):
27         event.app.exit()
28
29     # Go to next card
30     @kb.add('l')
31     @kb.add('right')
32     def next_(event):
33         event.app.exit()
34
35     # Go to previous card
36     @kb.add('h')
37     @kb.add('left')
38     def back_(event):
39         event.app.exit()
40
41     # Flip card
42     @kb.add('space')
43     @kb.add('down')
44     @kb.add('up')
45     @kb.add('k')
46     @kb.add('j')
47     def back_(event):
48         event.app.exit()
49
50     # Help menu
51     @kb.add('?')
52     def help_(event):
53         event.app.exit()
54
55     app = Application(key_bindings=kb, layout=layout, full_screen=True)
56     app.run()