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

added console left and top properties

This commit is contained in:
j vh 2023-01-25 15:30:42 +01:00
parent cefc8dff59
commit b2d1d98f1a
2 changed files with 36 additions and 13 deletions

View file

@ -127,16 +127,44 @@ namespace System
}
SetConsoleOutputCP(/*CP_UTF8*/65001);
}
public static uint16[2] GetConsoleCursorPosition()
{
let handle = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO consoleInfo = .();
if (GetConsoleScreenBufferInfo(handle, out consoleInfo) != 0)
public static int32 CursorTop
{
public get
{
return consoleInfo.mCursorPosition;
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]));
}
return uint16[2](0,0);
}
#endif