]> git.armaanb.net Git - lightcards.git/blobdiff - src/display.py
Switch to curses
[lightcards.git] / src / display.py
index 2517e3b761851004d1e9d8ac4c4c2061226e04ea..0ed78638772889399e0b7ab253965a6a13d263ff 100755 (executable)
@@ -1,56 +1,33 @@
-#!/usr/bin/env python
-# Display flashcards
+# Display card output and retreive input
 # Armaan Bhojwani 2021
 
-from prompt_toolkit import Application
-from prompt_toolkit.layout.containers import VSplit, Window
-from prompt_toolkit.layout.controls import FormattedTextControl
-from prompt_toolkit.layout.layout import Layout
-from prompt_toolkit.key_binding import KeyBindings
-
-from tqdm import tqdm
-
-def disp_card():
-    root_container = VSplit([
-        Window(content=FormattedTextControl(text='Hello world')),
-    ])
-
-    layout = Layout(root_container)
-    kb = KeyBindings()
-
-    # Exit program
-    @kb.add('q')
-    @kb.add('c-q')
-    @kb.add('c-c')
-    @kb.add('c-z')
-    def exit_(event):
-        event.app.exit()
-
-    # Go to next card
-    @kb.add('l')
-    @kb.add('right')
-    def next_(event):
-        event.app.exit()
-
-    # Go to previous card
-    @kb.add('h')
-    @kb.add('left')
-    def back_(event):
-        event.app.exit()
-
-    # Flip card
-    @kb.add('space')
-    @kb.add('down')
-    @kb.add('up')
-    @kb.add('k')
-    @kb.add('j')
-    def back_(event):
-        event.app.exit()
-
-    # Help menu
-    @kb.add('?')
-    def help_(event):
-        event.app.exit()
-
-    app = Application(key_bindings=kb, layout=layout, full_screen=True)
-    app.run()
+import os
+
+def disp_card(stdscr, stack, idx, side):
+    stdscr.clear()
+    stdscr.addstr(str(stack[idx][side]))
+
+def get_key(stdscr, stack):
+    idx = 0
+    side = 0
+    while True:
+        key = stdscr.getkey()
+
+        try:
+            if key == "q" or key == os.linesep:
+                exit(0)
+            if key == "l":
+                idx += 1
+                disp_card(stdscr, stack, idx, 0)
+            if key == "h":
+                idx -= 1
+                side = 0
+                disp_card(stdscr, stack, idx, 0)
+            if key == "k":
+                if side == 0:
+                    side = 1
+                else:
+                    side = 0
+                disp_card(stdscr, stack, idx, side)
+        except Exception:
+            pass