Files
armorpaint/base/Sources/TabConsole.ts
T
luboslenco 779218d9b8 Refactor
2024-02-06 19:32:21 +01:00

64 lines
1.6 KiB
TypeScript

class TabConsole {
static draw = (htab: zui_handle_t) => {
let ui = UIBase.ui;
let title = Console.messageTimer > 0 ? Console.message + " " : tr("Console");
let color = Console.messageTimer > 0 ? Console.messageColor : -1;
let statush = Config.raw.layout[LayoutSize.LayoutStatusH];
if (zui_tab(htab, title, false, color) && statush > UIStatus.defaultStatusH * zui_SCALE(ui)) {
zui_begin_sticky();
///if (krom_windows || krom_linux || krom_darwin) // Copy
if (Config.raw.touch_ui) {
zui_row([1 / 4, 1 / 4, 1 / 4]);
}
else {
zui_row([1 / 14, 1 / 14, 1 / 14]);
}
///else
if (Config.raw.touch_ui) {
zui_row([1 / 4, 1 / 4]);
}
else {
zui_row([1 / 14, 1 / 14]);
}
///end
if (zui_button(tr("Clear"))) {
Console.lastTraces = [];
}
if (zui_button(tr("Export"))) {
let str = Console.lastTraces.join("\n");
UIFiles.show("txt", true, false, (path: string) => {
let f = UIFiles.filename;
if (f == "") f = tr("untitled");
path = path + Path.sep + f;
if (!path.endsWith(".txt")) path += ".txt";
Krom.fileSaveBytes(path, sys_string_to_buffer(str));
});
}
///if (krom_windows || krom_linux || krom_darwin)
if (zui_button(tr("Copy"))) {
let str = Console.lastTraces.join("\n");
Krom.copyToClipboard(str);
}
///end
zui_end_sticky();
let _font = ui.font;
let _fontSize = ui.font_size;
data_get_font("font_mono.ttf", (f: font_t) => { zui_set_font(ui, f); }); // Sync
ui.font_size = Math.floor(15 * zui_SCALE(ui));
for (let t of Console.lastTraces) {
zui_text(t);
}
zui_set_font(ui, _font);
ui.font_size = _fontSize;
}
}
}