]> git.armaanb.net Git - lightcards.git/blobdiff - lightcards/display.py
Add comments to code
[lightcards.git] / lightcards / display.py
index bdad1d1e3c82acdef7dfec5da5167cfb9f9d0795..71fec497fd2155c8fc0f6b45afef2f2830efc72d 100755 (executable)
@@ -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()