Ansi Colors for Mac and Linux

This commit is contained in:
NeeEoo
2023-08-10 17:44:07 +02:00
parent 8a48f2186e
commit bd7dccce3f
+71 -37
View File
@@ -49,58 +49,92 @@ class NativeAPI {
/** /**
* Sets the console colors * Sets the console colors
*/ */
public static function setConsoleColors(foregroundColor:ConsoleColor = LIGHTGRAY, ?backgroundColor:ConsoleColor = BLACK) { public static function setConsoleColors(foregroundColor:ConsoleColor = NONE, ?backgroundColor:ConsoleColor = NONE) {
#if windows #if windows
if(foregroundColor == NONE)
foregroundColor = LIGHTGRAY;
if(backgroundColor == NONE)
backgroundColor = BLACK;
var fg = cast(foregroundColor, Int); var fg = cast(foregroundColor, Int);
var bg = cast(backgroundColor, Int); var bg = cast(backgroundColor, Int);
Windows.setConsoleColors((bg * 16) + fg); Windows.setConsoleColors((bg * 16) + fg);
#else
Sys.print("\x1b[0m");
if(foregroundColor != NONE)
Sys.print("\x1b[" + Std.int(consoleColorToANSI(foregroundColor)) + "m");
if(backgroundColor != NONE)
Sys.print("\x1b[" + Std.int(consoleColorToANSI(backgroundColor) + 10) + "m");
#end #end
} }
public static function consoleColorToANSI(color:ConsoleColor) {
return switch(color) {
case BLACK: 30;
case DARKBLUE: 34;
case DARKGREEN: 32;
case DARKCYAN: 36;
case DARKRED: 31;
case DARKMAGENTA: 35;
case DARKYELLOW: 33;
case LIGHTGRAY: 37;
case GRAY: 90;
case BLUE: 94;
case GREEN: 92;
case CYAN: 96;
case RED: 91;
case MAGENTA: 95;
case YELLOW: 93;
case WHITE | _: 97;
}
}
public static function consoleColorToOpenFL(color:ConsoleColor) { public static function consoleColorToOpenFL(color:ConsoleColor) {
return switch(color) { return switch(color) {
case BLACK: 0xFF000000; case BLACK: 0xFF000000;
case DARKBLUE: 0xFF000088; case DARKBLUE: 0xFF000088;
case DARKGREEN: 0xFF008800; case DARKGREEN: 0xFF008800;
case DARKCYAN: 0xFF008888; case DARKCYAN: 0xFF008888;
case DARKRED: 0xFF880000; case DARKRED: 0xFF880000;
case DARKMAGENTA: 0xFF880000; case DARKMAGENTA: 0xFF880000;
case DARKYELLOW: 0xFF888800; case DARKYELLOW: 0xFF888800;
case LIGHTGRAY: 0xFFBBBBBB; case LIGHTGRAY: 0xFFBBBBBB;
case GRAY: 0xFF888888; case GRAY: 0xFF888888;
case BLUE: 0xFF0000FF; case BLUE: 0xFF0000FF;
case GREEN: 0xFF00FF00; case GREEN: 0xFF00FF00;
case CYAN: 0xFF00FFFF; case CYAN: 0xFF00FFFF;
case RED: 0xFFFF0000; case RED: 0xFFFF0000;
case MAGENTA: 0xFFFF00FF; case MAGENTA: 0xFFFF00FF;
case YELLOW: 0xFFFFFF00; case YELLOW: 0xFFFFFF00;
case WHITE | _: 0xFFFFFFFF; case WHITE | _: 0xFFFFFFFF;
} }
} }
} }
@:enum abstract ConsoleColor(Int) { enum abstract ConsoleColor(Int) {
var BLACK:ConsoleColor = 0; var BLACK = 0;
var DARKBLUE:ConsoleColor = 1; var DARKBLUE = 1;
var DARKGREEN:ConsoleColor = 2; var DARKGREEN = 2;
var DARKCYAN:ConsoleColor = 3; var DARKCYAN = 3;
var DARKRED:ConsoleColor = 4; var DARKRED = 4;
var DARKMAGENTA:ConsoleColor = 5; var DARKMAGENTA = 5;
var DARKYELLOW:ConsoleColor = 6; var DARKYELLOW = 6;
var LIGHTGRAY:ConsoleColor = 7; var LIGHTGRAY = 7;
var GRAY:ConsoleColor = 8; var GRAY = 8;
var BLUE:ConsoleColor = 9; var BLUE = 9;
var GREEN:ConsoleColor = 10; var GREEN = 10;
var CYAN:ConsoleColor = 11; var CYAN = 11;
var RED:ConsoleColor = 12; var RED = 12;
var MAGENTA:ConsoleColor = 13; var MAGENTA = 13;
var YELLOW:ConsoleColor = 14; var YELLOW = 14;
var WHITE:ConsoleColor = 15; var WHITE = 15;
var NONE = -1;
} }
@:enum abstract MessageBoxIcon(Int) { enum abstract MessageBoxIcon(Int) {
var MSG_ERROR:MessageBoxIcon = 0x00000010; var MSG_ERROR = 0x00000010;
var MSG_QUESTION:MessageBoxIcon = 0x00000020; var MSG_QUESTION = 0x00000020;
var MSG_WARNING:MessageBoxIcon = 0x00000030; var MSG_WARNING = 0x00000030;
var MSG_INFORMATION:MessageBoxIcon = 0x00000040; var MSG_INFORMATION = 0x00000040;
} }