summaryrefslogtreecommitdiff
path: root/Source/Library/Userland/Binding
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Library/Userland/Binding')
-rw-r--r--Source/Library/Userland/Binding/VirtualTerminal.class.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/Source/Library/Userland/Binding/VirtualTerminal.class.h b/Source/Library/Userland/Binding/VirtualTerminal.class.h
index 5fd9733..c8a4123 100644
--- a/Source/Library/Userland/Binding/VirtualTerminal.class.h
+++ b/Source/Library/Userland/Binding/VirtualTerminal.class.h
@@ -4,6 +4,7 @@
#include <Syscall/RessourceCaller.class.h>
#include <VirtualTerminal.iface.h>
+#include <Kbd.iface.h>
#include <String.class.h>
#include <WChar.class.h>
@@ -29,6 +30,10 @@ class VirtualTerminal : public RessourceCaller {
void write(String s) {
doCall(VTIF_WRITE, (u32int)&s);
}
+ keypress_t getKeypress(bool show = true, bool block = true) {
+ keypress_t* ptr = (keypress_t*)doCall(VTIF_GETKEYPRESS, (show ? 1 : 0) | (block ? 2 : 0));
+ return *ptr;
+ }
String readLine(bool show = true) {
return String::unserialize(doCall(VTIF_READLINE, (show ? 1 : 0)));
}
@@ -44,9 +49,21 @@ class VirtualTerminal : public RessourceCaller {
bool isBoxed() {
return doCall(VTIF_ISBOXED) != 0;
}
+ u8int height() {
+ return doCall(VTIF_GETHEIGHT);
+ }
+ u8int width() {
+ return doCall(VTIF_GETWIDTH);
+ }
void put(WChar c) {
doCall(VTIF_PUT, c);
}
+ void moveCursor(u8int line, u8int col) {
+ doCall(VTIF_LOCATE, line, col);
+ }
+ void put(u8int line, u8int col, WChar c) {
+ moveCursor(line, col); put(c);
+ }
inline VirtualTerminal& operator<<(const String& s) { write(s); return *this; }
inline VirtualTerminal& operator<<(s32int i) { writeDec(i); return *this; }