from . import Screen
[docs]class Page:
def __init__(self, name, parent=None, menu=None):
self.name = name
self.parent = parent
self.menu = menu
self.actions = []
[docs] def init(self):
pass
[docs] def choices(self):
i = 1
for a in self.actions:
Screen.write("%d%s%s\n" % (i, self.menu.chars[2], a.name))
i += 1
[docs] def add(self, actions):
for a in actions:
a.parent = self
a.menu = self.menu
a.init()
self.actions.append(a)
[docs] def add_action(self, action):
action.parent = self
action.menu = self.menu
action.init()
self.actions.append(action)
[docs] def run(self, index):
if index <= 0 or index > len(self.actions):
Screen.user_input("Value out of range, try again....")
return
action = self.actions[index - 1]
self.menu.current.append(action)
self.menu.header()
self.menu.current.pop()
if isinstance(action, Page):
return action
return action.run()