diff options
| author | dam <dam@gudinoff> | 2023-12-08 03:08:31 +0000 |
|---|---|---|
| committer | dam <dam@gudinoff> | 2023-12-08 03:08:31 +0000 |
| commit | c61e13ae21cbac7b6642d2d813245c7fc0575834 (patch) | |
| tree | d978514d403f8de762b37bc566385168c9b460a0 /ttt.jai | |
| parent | 53f82bca92edbe4a8883c713c30d5ac81897a43f (diff) | |
| download | task-time-tracker-c61e13ae21cbac7b6642d2d813245c7fc0575834.tar.zst task-time-tracker-c61e13ae21cbac7b6642d2d813245c7fc0575834.zip | |
Made get_terminal_size and get_cursor_position more robust.
Diffstat (limited to 'ttt.jai')
| -rw-r--r-- | ttt.jai | 91 |
1 files changed, 21 insertions, 70 deletions
@@ -1181,6 +1181,7 @@ read_enter_confirmation :: inline (row: int, style: int, message: string) -> boo main :: () { + // -- -- -- Testing TUI -- START #if 0 { print("test 0\n"); TUI.test(); @@ -1258,86 +1259,36 @@ main :: () { TUI.start(); xcolumns, xrows: int; key: TUI.Key = #char "d"; + last_none_char := "X"; while(key != #char "q") { // __mark := get_temporary_storage_mark(); + + if key == { + case xx TUI.Keys.None; { + TUI.set_cursor_position(2, 2); + last_none_char = ifx last_none_char == "X" then "+" else "X"; + write_string(last_none_char); + } + + case xx TUI.Keys.Resize; { + TUI.clear_terminal(); + } + } + size_r, size_c := TUI.get_terminal_size(); + TUI.draw_box(1, 1, size_c, size_r); + x := ifx size_r > 1 then size_r-1 else 1; + y := ifx size_c > 24 then size_c-24 else 1; + TUI.set_cursor_position(x, y); + print("size(CxR): %x%\n", size_c, size_r); - TUI.set_cursor_position(3, 3); - write_string("dam "); - print("%:%", xcolumns, xrows); key = TUI.get_key(3000); - if key == xx TUI.Keys.None { - write_string(">bazinga<"); - sleep_milliseconds(1000); - } - else if key == xx TUI.Keys.Resize { - TUI.clear_terminal(); - xrows, xcolumns = TUI.get_terminal_size(); - TUI.draw_box(1, 1, xcolumns, xrows); - } - else if key == #char "i" { - auto_release_temp(); - TUI.set_cursor_position(7, 3); - write_string("input: "); - TUI.flush_input(); - str := TUI.get_str(3); - print(">%<\n\r", str); - TUI.set_cursor_position(8, 3); - } - else { - print_character(cast(u8)key); - } } TUI.stop(); print("size(CxR): %x%\n", xcolumns, xrows); return; } - - // -- -- -- TODO WIP Testing TUI -- START - // TUI.start(); - // TUI.clear_terminal(); - // rows, columns := TUI.get_terminal_size(); - // TUI.draw_box(1, 1, columns, rows); - // TUI.set_cursor_position(4, 4); - // c_row, c_column := TUI.get_cursor_position(); - // TUI.set_cursor_position(3, 3); - // input := TUI.read_input(); - - // sleep_milliseconds(5000); - // TUI.stop(); - // print("- - -\n"); - // print("window r:c = %:%\n", rows, columns); - // print("cursor r:c = %:%\n", c_row, c_column); - // print("input = %\n", input); - // return; -// -// - // str: string; -// - // write_string("\e(0"); // Enter Line drawing mode - // write_string("\e[104;93m"); // bright yellow on bright blue - // write_string("x"); // in line drawing mode, \x78 -> \u2502 "Vertical Bar" - // write_string("\e[10m"); // restore color - // write_string("\e(B"); // exit line drawing mode - // sleep_milliseconds(1000); - - - // // str = "\e[sWOW\e[u\e[1P"; - // str = "\e[sWOW"; - // // write(STDIN_FILENO, str.data, xx str.count); - // write_string(str); - // sleep_milliseconds(1000); - // - // str = "\e[?25l"; - // // write(STDIN_FILENO, str.data, xx str.count); - // write_string(str); - // sleep_milliseconds(1000); - // - // str = "\e[?25h"; - // // write(STDIN_FILENO, str.data, xx str.count); - // write_string(str); - // return; - // -- -- -- TODO WIP Testing TUI -- STOP + // -- -- -- Testing TUI -- STOP // TODO Implement signal handling and see modules/Debug.jai for examples. |
