diff options
Diffstat (limited to 'asciifarm/client')
| -rw-r--r-- | asciifarm/client/commandhandler.py | 4 | ||||
| -rw-r--r-- | asciifarm/client/inputhandler.py | 11 |
2 files changed, 12 insertions, 3 deletions
diff --git a/asciifarm/client/commandhandler.py b/asciifarm/client/commandhandler.py index ebb773e..550484c 100644 --- a/asciifarm/client/commandhandler.py +++ b/asciifarm/client/commandhandler.py @@ -61,8 +61,8 @@ class CommandHandler: for action in actions: self.execute(action) - def runInput(self): - self.client.inputHandler.startTyping() + def runInput(self, startText=""): + self.client.inputHandler.startTyping(startText) def select(self, widget, value, relative=False, modular=False): self.client.display.getWidget(widget).select(value, relative, modular) diff --git a/asciifarm/client/inputhandler.py b/asciifarm/client/inputhandler.py index 5296f9d..1db594d 100644 --- a/asciifarm/client/inputhandler.py +++ b/asciifarm/client/inputhandler.py @@ -41,8 +41,12 @@ class InputHandler: else: self.commandHandler.chat(message) - def startTyping(self): + def startTyping(self, startText=""): self.typing = True + if startText and not self.string: + self.string = startText + self.cursor = len(self.string) + self.showString() def showString(self): @@ -67,15 +71,20 @@ class InputHandler: self.cursor = len(self.string) elif key == curses.ascii.ESC or key == curses.KEY_DL: + # throw away entered string and go back to game self.typing = False self.string = "" self.cursor = 0 elif key == curses.ascii.LF or key == curses.ascii.CR: + # process entered string and reset it message = self.string self.string = "" self.cursor = 0 self.typing = False self.processString(message) + elif key == curses.ascii.TAB: + # return to game but keep entered string + self.typing = False self.showString() |
