aboutsummaryrefslogtreecommitdiff
path: root/ttt.jai
diff options
context:
space:
mode:
authordam <dam@gudinoff>2023-12-08 03:08:31 +0000
committerdam <dam@gudinoff>2023-12-08 03:08:31 +0000
commitc61e13ae21cbac7b6642d2d813245c7fc0575834 (patch)
treed978514d403f8de762b37bc566385168c9b460a0 /ttt.jai
parent53f82bca92edbe4a8883c713c30d5ac81897a43f (diff)
downloadtask-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.jai91
1 files changed, 21 insertions, 70 deletions
diff --git a/ttt.jai b/ttt.jai
index 110d089..1a25143 100644
--- a/ttt.jai
+++ b/ttt.jai
@@ -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.