-
Notifications
You must be signed in to change notification settings - Fork 0
Example code
GrayAi0 edited this page Feb 11, 2021
·
2 revisions
from ConsoleMenu.menu import Menu
from ConsoleMenu.items.natives import *
import ConsoleMenu.settings as pkg_settings
characters = {}
def tms(status):
print(status)
def getValuesForStyle(key):
if key in ["minimal_width", "minimal_height"]:
return [i for i in range(pkg_settings.default_menu_settings[key], pkg_settings.default_menu_settings[key] * 4)]
if key in ['left-character', 'right-character']:
isright = key == 'right-character'
return [
'|',
':',
'!',
('[' if not isright else ']'),
('(' if not isright else ')'),
('{' if not isright else '}'),
('<' if not isright else '>'),
# ...
]
if key in ['top-character', 'middle-character', 'bottom-character']:
return [
'-',
'_',
'+',
'=',
'ـ', # This could be not work
'~',
# ...
]
def exit():
menu.running = False
menu = Menu('Menu', (0,0))
stylemenu = SubMenu("Styles", None, "Style Menu")
for key, value in zip(pkg_settings.default_menu_settings.keys(), pkg_settings.default_menu_settings.values()):
if key in ['maximal_width', 'maximal_height']:
continue
def style_change(key):
chrs = characters[key]
chrs['index'] += 1
if chrs['index'] > len(chrs['values'])-1:
chrs['index'] = 0
menu.settings[key] = chrs['values'][chrs['index']]
stylemenu.settings[key] = chrs['values'][chrs['index']]
stylemenu._rendermenu()
values = getValuesForStyle(key)
characters[key] = {
"value": value,
"index": 0 ,
"values": values
}
vkey = key.replace('-', ' ').replace('_', ' ')
vkey = ''.join([vkey[0].upper(), *list(vkey)[1:]])
stylemenu.appendItem(Button(vkey, style_change, call_params=(key,)))
menu.appendItem(CheckBox('Toggel Menu style', tms, True))
menu.appendItem(stylemenu) # sub-menu fixed
menu.appendItem(Button('Exit', exit))
menu.run_pool()