created reusable center text method in Interface class
This commit is contained in:
parent
841c3d5932
commit
f3a5242c70
31
interface.py
31
interface.py
|
@ -75,6 +75,13 @@ class Interface():
|
||||||
else:
|
else:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
def center_message(self, message):
|
||||||
|
""" center message in stdscr """
|
||||||
|
max_h, max_w = self.stdscr.getmaxyx()
|
||||||
|
h = max_h // 2
|
||||||
|
w = max_w // 2 - len(message) // 2
|
||||||
|
return h, w
|
||||||
|
|
||||||
def curses_main(self, stdscr):
|
def curses_main(self, stdscr):
|
||||||
""" curses main to desplay and restart the menu """
|
""" curses main to desplay and restart the menu """
|
||||||
self.stdscr = stdscr
|
self.stdscr = stdscr
|
||||||
|
@ -96,7 +103,9 @@ class Interface():
|
||||||
current_row_idx += 1
|
current_row_idx += 1
|
||||||
elif key == curses.KEY_ENTER or key in [10, 13]:
|
elif key == curses.KEY_ENTER or key in [10, 13]:
|
||||||
menu_item = self.menu[current_row_idx]
|
menu_item = self.menu[current_row_idx]
|
||||||
stdscr.addstr(0, 0, f'start task: {menu_item}')
|
message = f'start task: {menu_item}'
|
||||||
|
h, w = self.center_message(message)
|
||||||
|
stdscr.addstr(h, w, message)
|
||||||
stdscr.refresh()
|
stdscr.refresh()
|
||||||
sleep(1)
|
sleep(1)
|
||||||
# exit curses and do something
|
# exit curses and do something
|
||||||
|
@ -104,7 +113,9 @@ class Interface():
|
||||||
elif key == ord('q'):
|
elif key == ord('q'):
|
||||||
return 'Exit'
|
return 'Exit'
|
||||||
elif key == ord('r'):
|
elif key == ord('r'):
|
||||||
stdscr.addstr(0, 0, 'refreshing pending')
|
message = 'refreshing pending'
|
||||||
|
h, w = self.center_message(message)
|
||||||
|
stdscr.addstr(h, w, message)
|
||||||
self.pending = self.get_pending_all()
|
self.pending = self.get_pending_all()
|
||||||
stdscr.refresh()
|
stdscr.refresh()
|
||||||
sleep(1)
|
sleep(1)
|
||||||
|
@ -138,17 +149,19 @@ class Interface():
|
||||||
|
|
||||||
def print_menu(self, current_row_idx):
|
def print_menu(self, current_row_idx):
|
||||||
""" print menu with populated pending count """
|
""" print menu with populated pending count """
|
||||||
# build stdscr
|
self.stdscr.clear()
|
||||||
max_h, max_w = self.stdscr.getmaxyx()
|
max_h, max_w = self.stdscr.getmaxyx()
|
||||||
|
# menu strings
|
||||||
|
message = 'github.com/bbilly1/media_organizer'
|
||||||
|
_, w = self.center_message(message)
|
||||||
|
self.stdscr.addstr(max_h - 1, w, message)
|
||||||
|
message = 'q: quit, r: refresh'
|
||||||
|
_, w = self.center_message(message)
|
||||||
|
self.stdscr.addstr(max_h - 2, w, message)
|
||||||
|
# build stdscr
|
||||||
longest = len(max(self.menu))
|
longest = len(max(self.menu))
|
||||||
x = max_w // 2 - longest // 2 - 2
|
x = max_w // 2 - longest // 2 - 2
|
||||||
first_menu = max_h // 2 - len(self.menu) // 2
|
first_menu = max_h // 2 - len(self.menu) // 2
|
||||||
self.stdscr.clear()
|
|
||||||
# menu strings
|
|
||||||
url = 'github.com/bbilly1/media_organizer'
|
|
||||||
h_str = 'q: quit, r: refresh'
|
|
||||||
self.stdscr.addstr(max_h - 2, max_w // 2 - len(h_str) // 2, h_str)
|
|
||||||
self.stdscr.addstr(max_h - 1, max_w // 2 - len(url) // 2, url)
|
|
||||||
self.stdscr.addstr(first_menu - 2, x, 'Media Organizer')
|
self.stdscr.addstr(first_menu - 2, x, 'Media Organizer')
|
||||||
# loop through menu items
|
# loop through menu items
|
||||||
for idx, row in enumerate(self.menu):
|
for idx, row in enumerate(self.menu):
|
||||||
|
|
Loading…
Reference in New Issue