Mercurial > web-gnusto
changeset 21:cfb61200e181
Basic keyboard input now works.
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Sun, 11 May 2008 18:19:08 -0700 |
parents | a6644169142b |
children | 5c40b7b7e6c7 |
files | trivial-zui.js |
diffstat | 1 files changed, 44 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/trivial-zui.js Sun May 11 17:43:36 2008 -0700 +++ b/trivial-zui.js Sun May 11 18:19:08 2008 -0700 @@ -1,10 +1,51 @@ +var BACKSPACE_KEYCODE = 8; +var RETURN_KEYCODE = 13; + function TrivialZui() { this._activeWindow = 0; + this._inputString = ""; + this._currentCallback = null; var self = this; this.__proto__ = { + _windowKeypress: function(event) { + if (!$("#current-input")) + return; + + var oldInputString = self._inputString; + + if (event.charCode) { + var newChar = String.fromCharCode(event.charCode); + self._inputString += newChar; + } else { + switch (event.keyCode) { + case BACKSPACE_KEYCODE: + if (self._inputString) { + self._inputString = self._inputString.slice(0, -1); + } + break; + case RETURN_KEYCODE: + var finalInputString = self._inputString; + var callback = self._currentCallback; + + self._inputString = ""; + self._currentCallback = null; + $("#current-input").replaceWith( + ('<span class="finished-input">' + finalInputString + + '</span><br/>') + ); + callback(finalInputString); + } + } + if ($("#current-input") && + oldInputString != self._inputString) { + $("#current-input").text(self._inputString); + } + }, + onLineInput: function(callback) { - throw Error("TODO: Implement this!"); + self._currentCallback = callback; + $("#content").append('<span id="current-input"></span>'); }, onQuit: function() { @@ -30,6 +71,8 @@ } } }; + + $(window).keypress(self._windowKeypress); } $(document).ready( function() {