Browse Source

add light theme to price check also

Daniel Sheffield 3 years ago
parent
commit
ef58af78e2
1 changed files with 29 additions and 7 deletions
  1. 29 7
      price_check.py

+ 29 - 7
price_check.py

@@ -8,6 +8,7 @@
 import itertools
 from typing import Union
 import urwid
+from urwid import raw_display
 from app.db_utils import QueryManager
 from app.activities import (
     show_or_exit,
@@ -34,13 +35,22 @@ except:
     exit(1)
     #from mock import *
 
-palette = [
+dark_palette = [
+    ('popup_focus', 'light red', 'light gray'),
+    ('popup', 'light red', 'dark gray'),
     ('banner', 'light gray', 'dark red'),
     ('streak', 'light gray', 'black'),
     ('bg', 'dark red', 'black'),
     ('badge', 'light gray', 'black'),
-    ('badge_green', 'light green', 'black',),
-    ('badge_red', 'light red', 'black',),
+]
+
+light_palette = [
+    ('popup_focus', 'dark blue', 'light gray'),
+    ('popup', 'light blue', 'dark gray'),
+    ('banner', 'light gray', 'dark red'),
+    ('streak', 'white', 'dark blue'),
+    ('bg', 'white', 'dark blue'),
+    ('badge', 'white', 'dark blue'),
 ]
 
 top_pane = [
@@ -75,9 +85,9 @@ inputs = filter(
 )
 
 display_map = {
-    'price': lambda x: f"{x:.4f}",
-    'quantity': lambda x: f"{x:.2f}",
-    'organic': lambda x: "true" if x else "false",
+    'price': lambda x: f'{x:.4f}',
+    'quantity': lambda x: f'{x:.2f}',
+    'organic': lambda x: 'true' if x else 'false',
 }
 display = lambda data, name: display_map[name](data) if name in display_map else data
 
@@ -119,7 +129,19 @@ activity_manager.create(PriceCheck, 'price_check',
 
 app = GroceryPriceCheck(activity_manager)
 
-loop = urwid.MainLoop(app, palette, unhandled_input=show_or_exit, pop_ups=True)
+def iter_palettes():
+    palettes = [light_palette, dark_palette]
+    while True:
+        p = palettes.pop(0)
+        palettes.append(p)
+        yield p
+
+palettes = iter_palettes()
+
+screen = raw_display.Screen()
+loop = urwid.MainLoop(app, dark_palette, screen=screen,
+        unhandled_input=lambda k: show_or_exit(k, screen=screen, palettes=palettes),
+        pop_ups=True)
 loop.run()
 
 cur.close()