[Scummvm-cvs-logs] CVS: scummvm/gui console.cpp,1.9,1.10 console.h,1.8,1.9
Oliver Kiehl
olki at users.sourceforge.net
Sat Dec 14 14:26:01 CET 2002
Update of /cvsroot/scummvm/scummvm/gui
In directory sc8-pr-cvs1:/tmp/cvs-serv30477
Modified Files:
console.cpp console.h
Log Message:
fixed ctrl-w and added ctrl-d and <delete>
Index: console.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gui/console.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- console.cpp 14 Dec 2002 22:18:00 -0000 1.9
+++ console.cpp 14 Dec 2002 22:25:08 -0000 1.10
@@ -163,6 +163,10 @@
scrollToCurrent();
draw(); // FIXME - not nice to redraw the full console just for one char!
break;
+ case 127:
+ killChar();
+ draw();
+ break;
/*
case 256+24: // pageup
_selectedItem -= _entriesPerPage - 1;
@@ -231,6 +235,10 @@
_currentPos = _promptStartPos;
draw();
break;
+ case 'd':
+ killChar();
+ draw();
+ break;
case 'e':
_currentPos = _promptEndPos;
draw();
@@ -246,6 +254,14 @@
}
}
+void ConsoleDialog::killChar()
+{
+ for (int i = _currentPos; i < _promptEndPos; i++)
+ _buffer[i % kBufferSize] = _buffer[(i+1) % kBufferSize];
+ _buffer[_promptEndPos % kBufferSize] = ' ';
+ _promptEndPos--;
+}
+
void ConsoleDialog::killLine()
{
for (int i = _currentPos; i < _promptEndPos; i++)
@@ -256,14 +272,20 @@
void ConsoleDialog::killLastWord()
{
int pos;
+ int cnt = 0;
while (_currentPos > _promptStartPos) {
_currentPos--;
pos = getBufferPos();
if (_buffer[pos] != ' ')
- _buffer[pos] = ' ';
+ cnt++;
else
break;
}
+
+ for (int i = _currentPos; i < _promptEndPos; i++)
+ _buffer[i % kBufferSize] = _buffer[(i+cnt+1) % kBufferSize];
+ _buffer[_promptEndPos % kBufferSize] = ' ';
+ _promptEndPos--;
}
void ConsoleDialog::nextLine()
Index: console.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gui/console.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- console.h 14 Dec 2002 22:10:37 -0000 1.8
+++ console.h 14 Dec 2002 22:25:09 -0000 1.9
@@ -82,6 +82,7 @@
// Line editing
void specialKeys(int keycode);
+ void killChar();
void killLine();
void killLastWord();
};
More information about the Scummvm-git-logs
mailing list