colorins en la consola
This commit is contained in:
@@ -951,6 +951,54 @@ static auto cmdSize(const std::vector<std::string>& /*unused*/) -> std::string {
|
||||
return std::to_string(w) + "x" + std::to_string(h);
|
||||
}
|
||||
|
||||
// CONSOLE [TRANSPARENT [ON|OFF]|BG|MSG|PROMPT|COMMAND <0-255>]
|
||||
static auto cmdConsole(const std::vector<std::string>& args) -> std::string { // NOLINT(readability-function-cognitive-complexity)
|
||||
if (args.empty()) {
|
||||
return std::string("Console ") + (Options::console.transparent ? "transparent" : "solid")
|
||||
+ " bg:" + std::to_string(Options::console.bg_color)
|
||||
+ " msg:" + std::to_string(Options::console.msg_color)
|
||||
+ " prompt:" + std::to_string(Options::console.prompt_color)
|
||||
+ " cmd:" + std::to_string(Options::console.command_color);
|
||||
}
|
||||
|
||||
if (args[0] == "TRANSPARENT") {
|
||||
if (args.size() < 2) {
|
||||
return std::string("Console ") + (Options::console.transparent ? "transparent" : "solid");
|
||||
}
|
||||
if (args[1] == "ON") {
|
||||
Options::console.transparent = true;
|
||||
return "Console transparent";
|
||||
}
|
||||
if (args[1] == "OFF") {
|
||||
Options::console.transparent = false;
|
||||
return "Console solid";
|
||||
}
|
||||
return "usage: console transparent [on|off]";
|
||||
}
|
||||
|
||||
// Helper para los cuatro comandos de color (BG, MSG, PROMPT, COMMAND)
|
||||
const auto SET_COLOR = [&args](int& target, const char* label) -> std::string {
|
||||
if (args.size() < 2) {
|
||||
return std::string("Console ") + label + ":" + std::to_string(target);
|
||||
}
|
||||
try {
|
||||
const int VAL = std::stoi(args[1]);
|
||||
if (VAL < 0 || VAL > 255) { return std::string(label) + " must be 0-255"; }
|
||||
target = VAL;
|
||||
return std::string("Console ") + label + ":" + std::to_string(VAL);
|
||||
} catch (...) {
|
||||
return std::string("usage: console ") + label + " <0-255>";
|
||||
}
|
||||
};
|
||||
|
||||
if (args[0] == "BG") { return SET_COLOR(Options::console.bg_color, "bg"); }
|
||||
if (args[0] == "MSG") { return SET_COLOR(Options::console.msg_color, "msg"); }
|
||||
if (args[0] == "PROMPT") { return SET_COLOR(Options::console.prompt_color, "prompt"); }
|
||||
if (args[0] == "COMMAND") { return SET_COLOR(Options::console.command_color, "command"); }
|
||||
|
||||
return "usage: console [transparent [on|off]|bg|msg|prompt|command <0-255>]";
|
||||
}
|
||||
|
||||
// ── CommandRegistry ──────────────────────────────────────────────────────────
|
||||
|
||||
void CommandRegistry::registerHandlers() { // NOLINT(readability-function-cognitive-complexity)
|
||||
@@ -974,6 +1022,7 @@ void CommandRegistry::registerHandlers() { // NOLINT(readability-function-cogni
|
||||
handlers_["cmd_exit"] = cmdExit;
|
||||
handlers_["cmd_quit"] = cmdExit; // QUIT usa el mismo handler que EXIT
|
||||
handlers_["cmd_size"] = cmdSize;
|
||||
handlers_["cmd_console"] = cmdConsole;
|
||||
#ifdef _DEBUG
|
||||
handlers_["cmd_debug"] = cmdDebug;
|
||||
handlers_["cmd_items"] = cmdItems;
|
||||
|
||||
Reference in New Issue
Block a user