1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-24 18:48:01 +02:00

Merge pull request #1785 from Booklordofthedings/master

added GetCursorPosition
This commit is contained in:
Brian Fiete 2023-01-26 10:58:59 -05:00 committed by GitHub
commit 1291089f47
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 39 additions and 5 deletions

View file

@ -127,6 +127,45 @@ namespace System
}
SetConsoleOutputCP(/*CP_UTF8*/65001);
}
public static int32 CursorTop
{
public get
{
let handle = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO consoleInfo = .();
GetConsoleScreenBufferInfo(handle,out consoleInfo);
return consoleInfo.mCursorPosition[1]; //1 = y position
}
public set
{
//This has to be done afaik to ensure x stays the same
let handle = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO consoleInfo = .();
GetConsoleScreenBufferInfo(handle,out consoleInfo);
SetConsoleCursorPosition(handle, COORD((.)consoleInfo.mCursorPosition[0], (.)value));
}
}
public static int32 CursorLeft
{
public get
{
let handle = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO consoleInfo = .();
GetConsoleScreenBufferInfo(handle,out consoleInfo);
return consoleInfo.mCursorPosition[0]; //1 = y position
}
public set
{
//This has to be done afaik to ensure x stays the same
let handle = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO consoleInfo = .();
GetConsoleScreenBufferInfo(handle,out consoleInfo);
SetConsoleCursorPosition(handle, COORD((.)value,(.)consoleInfo.mCursorPosition[0]));
}
}
#endif
static StreamWriter OpenStreamWriter(Platform.BfpFileStdKind stdKind, ref StreamWriter outStreamWriter)