From a52254ef57f8df0bee2f8aec0a2c0927d46f2c93 Mon Sep 17 00:00:00 2001 From: Nicholas Dyer Date: Thu, 21 Dec 2023 13:31:53 -0500 Subject: [PATCH] dumb cmatrix test --- terminal/__main__.py | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/terminal/__main__.py b/terminal/__main__.py index 9d20612..09a932a 100644 --- a/terminal/__main__.py +++ b/terminal/__main__.py @@ -6,6 +6,10 @@ TEXT_HIGHLIGHTED = '\033[38;5;0m\033[48;5;2m' RESET_CODE = '\033[2;0;0m' +def matrix(): + os.system('cmatrix') + + class Text: def __init__(self, text: str): self.text = text @@ -29,17 +33,21 @@ class Menu: def __init__(self, title: str, options: dict): self.title = f'[{title}]' self.options = options - self.selected = 0 + self.cursor_pos = 0 + self.selected = None def next(self): - self.selected += 1 - if self.selected > len(self.options) - 1: - self.selected = 0 + self.cursor_pos += 1 + if self.cursor_pos > len(self.options) - 1: + self.cursor_pos = 0 def prev(self): - self.selected -= 1 - if self.selected < 0: - self.selected = len(self.options) - 1 + self.cursor_pos -= 1 + if self.cursor_pos < 0: + self.cursor_pos = len(self.options) - 1 + + def execute(self): + globals()[self.selected]() def draw(self): term_dims = os.get_terminal_size() @@ -47,10 +55,11 @@ class Menu: Text(self.title).draw_at(1, title_start) for i, k in enumerate(self.options): - if i == self.selected: + if i == self.cursor_pos: Text(k).highlight().draw_at(i + 2, 1) else: Text(k).draw_at(i + 2, 1) + self.selected = self.options.get(k) def main(): @@ -61,7 +70,8 @@ def main(): menu = Menu('Test Menu', { 'Option 1:': 'opt', 'Option 2:': 'opt2', - 'Option 3:': 'opt3' + 'Option 3:': 'opt3', + 'Enter the Matrix': 'matrix' }) menu.draw() while True: @@ -71,6 +81,8 @@ def main(): menu.next() elif pressed_key.name == 'k': menu.prev() + elif pressed_key.name == 'enter': + menu.execute() menu.draw()