nuclide/Source/menu-fn/colors.cpp

122 lines
2.3 KiB
C++

/***
*
* Copyright (c) 2016-2019 Marco 'eukara' Hladik. All rights reserved.
*
* See the file LICENSE attached with the sources for usage details.
*
****/
vector col_help;
vector col_prompt_bg;
vector col_prompt_text;
vector col_prompt_title;
vector col_input_text;
vector col_input_bg;
vector col_refresh_title;
vector col_refresh_text;
vector col_refresh_bg;
string Colors_RGB8_to_HEX(vector color)
{
string out = "^x";
for (int i = 0; i < 3; i++) {
string a;
float b = rint(color[i] * 15);
switch (b) {
case 10:
a = "A";
break;
case 11:
a = "B";
break;
case 12:
a = "C";
break;
case 13:
a = "D";
break;
case 14:
a = "E";
break;
case 15:
a = "F";
break;
default:
a = ftos(b);
}
out = sprintf("%s%s", out, a);
}
return out;
}
void Colors_Init(void)
{
int c;
vector coltmp;
string temp;
filestream fs_colors;
/* Defaults */
col_help = [127,127,127] / 255;
col_prompt_bg = [56,56,56] / 255;
col_prompt_text = [240,180,24] / 255;
col_prompt_title = [255,255,255] / 255;
col_input_text = [240,180,24] / 255;
col_input_bg = [56,56,56] / 255;
col_refresh_title = [240,180,24] / 255;
col_refresh_text = [255,255,255] / 255;
col_refresh_bg = [56,56,56] / 255;
fs_colors = fopen("gfx/shell/colors.lst", FILE_READ);
if (fs_colors < 0) {
fs_colors = fopen("gfx/shell/Colors.lst", FILE_READ);
}
if (fs_colors < 0) {
print("^1WARNING: ^7Could NOT load gfx/shell/colors.lst");
return;
}
/* Count the valid entries */
if (fs_colors >= 0) {
while ((temp = fgets(fs_colors))) {
c = tokenize(temp);
if (c != 4) {
continue;
}
coltmp = [stof(argv(1)),stof(argv(2)),stof(argv(3))] / 255;
switch(argv(0)) {
case "HELP_COLOR":
col_help = coltmp;
break;
case "PROMPT_BG_COLOR":
col_prompt_bg = coltmp;
break;
case "PROMPT_TEXT_COLOR":
col_prompt_text = coltmp;
break;
case "PROMPT_TITLE_COLOR":
col_prompt_title = coltmp;
break;
case "INPUT_TEXT_COLOR":
col_input_text = coltmp;
break;
case "INPUT_BG_COLOR":
col_input_bg = coltmp;
break;
case "REFRESH_TITLE_COLOR":
col_refresh_title = coltmp;
break;
case "REFRESH_TEXT_COLOR":
col_refresh_text = coltmp;
break;
case "REFRESH_BG_COLOR":
col_refresh_bg = coltmp;
break;
}
}
}
}