From 571dbd50a2b6c2e1f480d93e20300196daeb7e89 Mon Sep 17 00:00:00 2001 From: serr Date: Tue, 4 Feb 2025 14:46:01 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=B4=D1=8B=20=D0=BA=D0=BD=D0=BE=D0=BF=D0=BE=D1=87?= =?UTF-8?q?=D0=B5=D0=BA=20=D0=B2=D0=BE=20=D0=B2=D1=8C=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mvc/controllers.py | 18 ++++++++---------- mvc/views.py | 10 ++++++++++ 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/mvc/controllers.py b/mvc/controllers.py index 0be2372..76c9abc 100644 --- a/mvc/controllers.py +++ b/mvc/controllers.py @@ -1,5 +1,3 @@ -import curses - from mvc.views import CursesAdapter from mvc.models import VimModel @@ -11,14 +9,14 @@ class EditController: def HandleInput(self, symbolCode): """Обработка ввода пользователя""" match symbolCode: - case 27: return False # escape - case curses.KEY_LEFT: self.model.MoveLeft() - case curses.KEY_RIGHT: self.model.MoveRight() - case curses.KEY_UP: self.model.MoveUp() - case curses.KEY_DOWN: self.model.MoveDown() - case 127 | 8: self.model.Backspace() - case 10: self.model.Enter() - case 19: self.model.SaveFile() + case self.view.KEY_ESCAPE: return False + case self.view.KEY_LEFT: self.model.MoveLeft() + case self.view.KEY_RIGHT: self.model.MoveRight() + case self.view.KEY_UP: self.model.MoveUp() + case self.view.KEY_DOWN: self.model.MoveDown() + case self.view.KEY_BACKSPACE: self.model.Backspace() + case self.view.KEY_ENTER: self.model.Enter() + case self.view.KEY_CTRL_S: self.model.SaveFile() case _: self.model.InsertSymbol(symbolCode) self.model.Scroll(self.view.lines, self.view.cols) diff --git a/mvc/views.py b/mvc/views.py index 8e5b8d2..70626ac 100644 --- a/mvc/views.py +++ b/mvc/views.py @@ -2,6 +2,16 @@ import curses class CursesAdapter: def __init__(self) -> None: + self.KEY_LEFT = curses.KEY_LEFT + self.KEY_RIGHT = curses.KEY_RIGHT + self.KEY_UP = curses.KEY_UP + self.KEY_DOWN = curses.KEY_DOWN + self.KEY_BACKSPACE = 127 | 8 + self.KEY_ENTER = 10 + self.KEY_CTRL_S = 19 + self.KEY_ESCAPE = 27 + + self.screen = curses.initscr() self.screen.keypad(True) self.cols = curses.COLS