1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-25 19:18: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

@ -1,5 +0,0 @@
FileVersion = 1
Projects = {corlib = {Path = "."}}
[Workspace]
StartupProject = "corlib"

View file

@ -127,6 +127,45 @@ namespace System
} }
SetConsoleOutputCP(/*CP_UTF8*/65001); 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 #endif
static StreamWriter OpenStreamWriter(Platform.BfpFileStdKind stdKind, ref StreamWriter outStreamWriter) static StreamWriter OpenStreamWriter(Platform.BfpFileStdKind stdKind, ref StreamWriter outStreamWriter)