]> git.armaanb.net Git - lightcards.git/blob - lightcards/display.py
Add label for current side
[lightcards.git] / lightcards / display.py
1 # Display card output and retreive input
2 # Armaan Bhojwani 2021
3
4 import os
5
6 class Status():
7     index = 0
8     side = 0
9
10     def forward(self, stack):
11         if not self.index == len(stack) - 1:
12             self.index += 1
13
14     def back(self):
15         if not self.index < 1:
16             self.index -= 1
17
18     def flip(self):
19         if self.side == 0:
20             self.side = 1
21         else:
22             self.side = 0
23
24     def setSide(self, inp):
25         self.side = inp
26
27     def getSide(self):
28         return self.side
29
30     def getIdx(self):
31         return self.index
32
33
34 def disp_card(stdscr, stack, headers, obj):
35     stdscr.clear()
36     side_title = headers[obj.getSide()]
37     stdscr.addstr(side_title + "\n")
38     for i in range(len(side_title)):
39         stdscr.addstr("=")
40     stdscr.addstr("\n" + str(stack[obj.getIdx()][obj.getSide()]))
41
42 def get_key(stdscr, stack, headers):
43     idx = Status()
44     disp_card(stdscr, stack, headers, idx)
45
46     while True:
47         key = stdscr.getkey()
48         try:
49             if key == "q" or key == os.linesep:
50                 exit(0)
51             if key == "j":
52                 idx.forward(stack)
53                 idx.setSide(0)
54                 disp_card(stdscr, stack, headers, idx)
55             if key == "k":
56                 idx.back()
57                 idx.setSide(0)
58                 disp_card(stdscr, stack, headers,  idx)
59             if key == "l" or key == "h":
60                 idx.flip()
61                 disp_card(stdscr, stack, headers, idx)
62         except Exception:
63             pass