Handle console input.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23355 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -251,6 +251,8 @@ console_set_color(int32 foreground, int32 background)
|
|||||||
int
|
int
|
||||||
console_wait_for_key(void)
|
console_wait_for_key(void)
|
||||||
{
|
{
|
||||||
|
#if 0
|
||||||
|
// XXX: do this way and remove keyboard.cpp ?
|
||||||
// wait for a key
|
// wait for a key
|
||||||
char buffer[3];
|
char buffer[3];
|
||||||
ssize_t bytesRead;
|
ssize_t bytesRead;
|
||||||
@@ -259,34 +261,27 @@ console_wait_for_key(void)
|
|||||||
if (bytesRead < 0)
|
if (bytesRead < 0)
|
||||||
return 0;
|
return 0;
|
||||||
} while (bytesRead == 0);
|
} while (bytesRead == 0);
|
||||||
|
#endif
|
||||||
|
union key key = wait_for_key();
|
||||||
|
|
||||||
// translate the ESC sequences for cursor keys
|
if (key.code.ascii == 0) {
|
||||||
if (bytesRead == 3 && buffer[0] == 27 && buffer [1] == 91) {
|
switch (key.code.bios) {
|
||||||
switch (buffer[2]) {
|
case BIOS_KEY_UP:
|
||||||
case 65:
|
|
||||||
return TEXT_CONSOLE_KEY_UP;
|
return TEXT_CONSOLE_KEY_UP;
|
||||||
case 66:
|
case BIOS_KEY_DOWN:
|
||||||
return TEXT_CONSOLE_KEY_DOWN;
|
return TEXT_CONSOLE_KEY_DOWN;
|
||||||
case 67:
|
case BIOS_KEY_PAGE_UP:
|
||||||
return TEXT_CONSOLE_KEY_RIGHT;
|
return TEXT_CONSOLE_KEY_PAGE_UP;
|
||||||
case 68:
|
case BIOS_KEY_PAGE_DOWN:
|
||||||
return TEXT_CONSOLE_KEY_LEFT;
|
return TEXT_CONSOLE_KEY_PAGE_DOWN;
|
||||||
// TODO: Translate the codes for the following keys. Unfortunately my OF just
|
case BIOS_KEY_HOME:
|
||||||
// returns a '\0' character. :-/
|
return TEXT_CONSOLE_KEY_HOME;
|
||||||
// TEXT_CONSOLE_KEY_PAGE_UP,
|
case BIOS_KEY_END:
|
||||||
// TEXT_CONSOLE_KEY_PAGE_DOWN,
|
return TEXT_CONSOLE_KEY_END;
|
||||||
// TEXT_CONSOLE_KEY_HOME,
|
|
||||||
// TEXT_CONSOLE_KEY_END,
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
} else
|
||||||
|
return key.code.ascii;
|
||||||
// put back unread chars
|
|
||||||
if (bytesRead > 1)
|
|
||||||
sInput.PutChars(buffer + 1, bytesRead - 1);
|
|
||||||
|
|
||||||
return buffer[0];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user