diff options
author | Max Horn | 2002-12-15 00:36:34 +0000 |
---|---|---|
committer | Max Horn | 2002-12-15 00:36:34 +0000 |
commit | f7b692dfbbcf73b7a43019f66e66bc7f3bd591d1 (patch) | |
tree | 981d4a3e46c6e305105744690a34145cb1dbaed4 /gui/console.cpp | |
parent | d58ec10ea2abf739ee129fef893397a45d8da04c (diff) | |
download | scummvm-rg350-f7b692dfbbcf73b7a43019f66e66bc7f3bd591d1.tar.gz scummvm-rg350-f7b692dfbbcf73b7a43019f66e66bc7f3bd591d1.tar.bz2 scummvm-rg350-f7b692dfbbcf73b7a43019f66e66bc7f3bd591d1.zip |
added input callback hook to console
svn-id: r5973
Diffstat (limited to 'gui/console.cpp')
-rw-r--r-- | gui/console.cpp | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/gui/console.cpp b/gui/console.cpp index a416d57192..9318e73d9a 100644 --- a/gui/console.cpp +++ b/gui/console.cpp @@ -48,7 +48,7 @@ This code is not finished, so please don't complain :-) * - a *lot* of others things, this code is in no way complete and heavily under progress */ ConsoleDialog::ConsoleDialog(NewGui *gui) - : Dialog(gui, 0, 0, 320, 6*kLineHeight+2) + : Dialog(gui, 0, 0, 320, 12*kLineHeight+2) { _lineWidth = (_w - kScrollBarWidth - 2) / kCharWidth; _linesPerPage = (_h - 2) / kLineHeight; @@ -70,8 +70,19 @@ ConsoleDialog::ConsoleDialog(NewGui *gui) print("ScummVM "SCUMMVM_VERSION" (" SCUMMVM_CVS ")\n"); print("Console is ready\n"); - print(PROMPT); - _promptStartPos = _promptEndPos = _currentPos; + _promptStartPos = _promptEndPos = -1; + + _callbackProc = 0; + _callbackRefCon = 0; +} + +void ConsoleDialog::open() +{ + Dialog::open(); + if (_promptStartPos == -1) { + print(PROMPT); + _promptStartPos = _promptEndPos = _currentPos; + } } void ConsoleDialog::drawDialog() @@ -138,12 +149,18 @@ void ConsoleDialog::handleKeyDown(uint16 ascii, int keycode, int modifiers) for (i = 0; i < len; i++) str[i] = _buffer[(_promptStartPos + i) % kBufferSize]; str[len] = 0; - printf("You entered '%s'\n", str); + + bool keepRunning = true; + if (_callbackProc) + keepRunning = (*_callbackProc)(this, str, _callbackRefCon); + //printf("You entered '%s'\n", str); print(PROMPT); _promptStartPos = _promptEndPos = _currentPos; draw(); + if (!keepRunning) + close(); break; } case 27: // escape |