4.0.0: specify a function to be called
This commit is contained in:
@@ -35,7 +35,7 @@ import ezztui
|
||||
menu = {
|
||||
'First menu':
|
||||
{'Function 1': 'ezztui_return_value', # use 'return' also from 2.0.0
|
||||
'Function 2': 'ezztui_return_value',
|
||||
'Function 2': 'ezztui_return_value', # specify a function to be called from 4.0.0
|
||||
'Function 3': 'ezztui_return_value',
|
||||
'Function 4': 'ezztui_return_value',
|
||||
'Function 5': 'ezztui_return_value',
|
||||
|
||||
34
ezztui.py
34
ezztui.py
@@ -1,6 +1,9 @@
|
||||
import os
|
||||
|
||||
|
||||
def check_curses():
|
||||
import subprocess, sys
|
||||
import subprocess
|
||||
import sys
|
||||
try:
|
||||
import curses
|
||||
except:
|
||||
@@ -9,15 +12,18 @@ def check_curses():
|
||||
|
||||
try:
|
||||
import curses
|
||||
except:
|
||||
except ImportError:
|
||||
check_curses()
|
||||
|
||||
|
||||
def cls():
|
||||
os.system('cls' if os.name == 'nt' else 'clear')
|
||||
|
||||
|
||||
def softcls():
|
||||
print("\n" * (os.get_terminal_size().lines * 2))
|
||||
|
||||
|
||||
def center_message(text: str):
|
||||
print("\n" * (os.get_terminal_size().lines // 2 - 2))
|
||||
print(" " * ((os.get_terminal_size().columns//2 - (len(text)//2)) - 1) + text)
|
||||
@@ -25,6 +31,7 @@ def center_message(text: str):
|
||||
input()
|
||||
cls()
|
||||
|
||||
|
||||
def center_multiline(text: list):
|
||||
print("\n" * ((os.get_terminal_size().lines // 2 - (len(text) // 2)) - 1))
|
||||
for line in text:
|
||||
@@ -33,6 +40,7 @@ def center_multiline(text: list):
|
||||
input()
|
||||
cls()
|
||||
|
||||
|
||||
def menu(menulist: dict):
|
||||
def print_menu(stdscr, selected_row_idx, menu):
|
||||
stdscr.clear()
|
||||
@@ -80,17 +88,14 @@ def menu(menulist: dict):
|
||||
elif key == curses.KEY_DOWN and current_row == len(currentmenu) - 1:
|
||||
current_row = 0
|
||||
|
||||
elif key == curses.KEY_ENTER or key in [10, 13] and isinstance(currentmenu[list(currentmenu.keys())[current_row]], dict):
|
||||
elif key == curses.KEY_ENTER or key in [10, 13] and \
|
||||
isinstance(currentmenu[list(currentmenu.keys())[current_row]], dict):
|
||||
menupath.append(list(currentmenu)[current_row])
|
||||
currentmenu = currentmenu[list(currentmenu.keys())[current_row]]
|
||||
break
|
||||
|
||||
elif key == curses.KEY_ENTER or key in [10, 13] and currentmenu[list(currentmenu.keys())[current_row]] in ['ezztui_return_value', 'return']:
|
||||
menupath.append(list(currentmenu)[current_row])
|
||||
returning = menupath
|
||||
break
|
||||
|
||||
elif key == curses.KEY_BACKSPACE or str(key) in ['KEY_BACKSPACE', '8', '127'] or currentmenu[list(currentmenu.keys())[current_row]] in ['ezztui_back_value', 'back']:
|
||||
elif key == curses.KEY_BACKSPACE or str(key) in ['KEY_BACKSPACE', '8', '127'] or \
|
||||
currentmenu[list(currentmenu.keys())[current_row]] in ['ezztui_back_value', 'back']:
|
||||
menupath = menupath[:-1:]
|
||||
try:
|
||||
currentmenu = menulist[list(menupath)[0]]
|
||||
@@ -101,9 +106,18 @@ def menu(menulist: dict):
|
||||
mainmenu(stdscr)
|
||||
break
|
||||
|
||||
elif key == curses.KEY_ENTER or key in [10, 13] and currentmenu[list(currentmenu.keys())[current_row]] in ['ezztui_exit_value', 'exit']:
|
||||
elif key == curses.KEY_ENTER or key in [10, 13] and currentmenu[list(currentmenu.keys())[current_row]] in \
|
||||
['ezztui_exit_value', 'exit']:
|
||||
exit()
|
||||
|
||||
elif key == curses.KEY_ENTER or key in [10, 13]:
|
||||
menupath.append(list(currentmenu)[current_row])
|
||||
try:
|
||||
returning = currentmenu[list(currentmenu.keys())[current_row]]()
|
||||
except TypeError:
|
||||
returning = menupath
|
||||
break
|
||||
|
||||
print_menu(stdscr, current_row, currentmenu)
|
||||
|
||||
while returning is None:
|
||||
|
||||
5
setup.py
5
setup.py
@@ -5,12 +5,11 @@ with open("README.md", "r") as fh:
|
||||
|
||||
setup(
|
||||
name="ezztui",
|
||||
version="2.0.0",
|
||||
scripts=["ezztui.py"],
|
||||
version="4.0.0",
|
||||
py_modules=["ezztui"],
|
||||
author="BarsTiger",
|
||||
description="Easy TextUI creating package",
|
||||
long_description=long_description,
|
||||
py_modules=["ezztui"],
|
||||
license='MIT',
|
||||
url='https://github.com/BarsTiger/ezztui',
|
||||
long_description_content_type="text/markdown",
|
||||
|
||||
Reference in New Issue
Block a user