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
 import itertools
 from typing import Union
 from typing import Union
 import urwid
 import urwid
+from urwid import raw_display
 from app.db_utils import QueryManager
 from app.db_utils import QueryManager
 from app.activities import (
 from app.activities import (
     show_or_exit,
     show_or_exit,
@@ -34,13 +35,22 @@ except:
     exit(1)
     exit(1)
     #from mock import *
     #from mock import *
 
 
-palette = [
+dark_palette = [
+    ('popup_focus', 'light red', 'light gray'),
+    ('popup', 'light red', 'dark gray'),
     ('banner', 'light gray', 'dark red'),
     ('banner', 'light gray', 'dark red'),
     ('streak', 'light gray', 'black'),
     ('streak', 'light gray', 'black'),
     ('bg', 'dark red', 'black'),
     ('bg', 'dark red', 'black'),
     ('badge', 'light gray', '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 = [
 top_pane = [
@@ -75,9 +85,9 @@ inputs = filter(
 )
 )
 
 
 display_map = {
 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
 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)
 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()
 loop.run()
 
 
 cur.close()
 cur.close()