X-Git-Url: https://git.armaanb.net/?a=blobdiff_plain;f=lightcards%2Fdisplay.py;h=71fec497fd2155c8fc0f6b45afef2f2830efc72d;hb=852be3a599b3686e20b2f3bfe10291380fcc5ff7;hp=bdad1d1e3c82acdef7dfec5da5167cfb9f9d0795;hpb=fa534964b6dd5eb9311d235a6b3ec51174e750a4;p=lightcards.git diff --git a/lightcards/display.py b/lightcards/display.py index bdad1d1..71fec49 100755 --- a/lightcards/display.py +++ b/lightcards/display.py @@ -8,12 +8,19 @@ import textwrap def disp_bar(stdscr, stack, headers, obj): + """ + Display the statusbar at the bottom of the screen with progress, star + status, and card side. + """ (mlines, mcols) = stdscr.getmaxyx() + + # Calculate percent done if len(stack) <= 1: percent = "100" else: percent = str(round(obj.getIdx() / (len(stack) - 1) * 100)).zfill(3) + # Put all the info together stdscr.insstr(mlines - 1, 0, "[" + stack[obj.getIdx()].printStar() + @@ -32,6 +39,10 @@ def disp_bar(stdscr, stack, headers, obj): def disp_menu(stdscr, stack, headers, idx): + """ + Display a menu once the end of the deck has been reached, offering + multiple options on how to continue. + """ stdscr.addstr("Good job, you've completed a round!\n\n", curses.color_pair(1)) stdscr.addstr("Choose one of the following options:\n" + @@ -53,6 +64,8 @@ def disp_menu(stdscr, stack, headers, idx): x.unStar() get_key(stdscr, stack, headers, idx) elif key == "s": + # Check if there are any starred cards before proceeding, and if + # not, don't allow to proceed and show an error message cont = False for x in stack: if x.getStar(): @@ -74,11 +87,17 @@ def disp_menu(stdscr, stack, headers, idx): def disp_card(stdscr, stack, headers, obj): + """ + Display the contents of the card + Shows a header, a horizontal line, and the contents of the current side. + """ stdscr.clear() (mlines, mcols) = stdscr.getmaxyx() if obj.getIdx() == len(stack): disp_menu(stdscr, stack, headers, obj) else: + # If on the back of the card, show the content of the front side in the + # header if obj.getSide() == 0: top = str(obj.getIdx() + 1) + " | " + headers[obj.getSide()] else: @@ -107,6 +126,7 @@ def disp_card(stdscr, stack, headers, obj): def disp_help(stdscr, stack, headers, idx): + """Display help screen""" stdscr.clear() stdscr.addstr("LIGHTCARDS HELP SCREEN", curses.color_pair(1)) stdscr.hline(1, 0, curses.ACS_HLINE, 23) @@ -129,12 +149,19 @@ def disp_help(stdscr, stack, headers, idx): def init_disp(stdscr, stack, headers, idx): - curses.curs_set(0) + """Initialize curses options. Entrypoint into the display functions.""" + curses.curs_set(0) # Hide cursor curses.init_pair(1, curses.COLOR_CYAN, 0) curses.init_pair(2, curses.COLOR_RED, 0) get_key(stdscr, stack, headers, idx) + def get_key(stdscr, stack, headers, idx): + """ + Display a card and wait for the input. + Used as a general way of getting back into the card flow from a menu + """ + disp_card(stdscr, stack, headers, idx) while True: key = stdscr.getkey()