ltk

Socket-based GUI for X11 (WIP)
git clone git://lumidify.org/ltk.git (fast, but not encrypted)
git clone https://lumidify.org/git/ltk.git (encrypted, but very slow)
Log | Files | Refs | README | LICENSE

commit a4fc0017f5ba4c67cf067361a8bc26185d6f98da
parent 99e3c74d38ba3e85b623b73d4f16d8c9d6bf0506
Author: lumidify <nobody@lumidify.org>
Date:   Sun,  7 Jun 2020 09:09:55 +0200

Somewhat fix parsing; improve test_anim.sh

Diffstat:
MREADME.md | 2++
Mltk.c | 9++++++---
Mtest_anim.sh | 18++++++++++++++----
Dtmp.gui | 70----------------------------------------------------------------------
4 files changed, 22 insertions(+), 77 deletions(-)

diff --git a/README.md b/README.md @@ -4,6 +4,8 @@ To test: make ./ltk < test.gui +./ltk < test_draw.gui +./test_anim.sh | ./ltk Note: you need to uncomment "COMPATOBJ = strtonum.c" in Makefile if you're not using OpenBSD. diff --git a/ltk.c b/ltk.c @@ -223,9 +223,6 @@ static void proc_cmds(ltk_window *window) { if (!tokenize()) return; if (!tokens_len) return; - for (int i = 0; i < tokens_len; i++) { - printf("%s\n", tokens[i]); - } if (strcmp(tokens[0], "grid") == 0) { ltk_grid_cmd(window, tokens, tokens_len); } else if (strcmp(tokens[0], "button") == 0) { @@ -253,6 +250,12 @@ ltk_mainloop(ltk_window *window) { tv.tv_sec = 0; tv.tv_usec = 0; + tokens = malloc(10 * sizeof(char *)); + cmd_input = malloc(200 * sizeof(char)); + if (!tokens || !cmd_input) ltk_fatal("Out of memory.\n"); + tokens_bufsize = 10; + cmd_bufsize = 200; + while (running) { FD_ZERO(&rfds); FD_SET(fd_in, &rfds); diff --git a/test_anim.sh b/test_anim.sh @@ -12,8 +12,18 @@ draw drw1 set-color #000 " i=0 -while [[ $i -lt 300 ]]; do - echo "draw drw1 line $i $i 5 5"; - sleep 0.05; - i=$((i+5)); +while [[ $i -lt 400 ]]; do + j=0 + while [[ $j -lt 20 ]]; do + echo "draw drw1 line $((i+j)) $j $((i+j+2)) $((j+2))"; + sleep 0.05 + j=$((j+2)) + done + j=20 + while [[ $j -gt 0 ]]; do + echo "draw drw1 line $((i+40-j)) $j $((i+42-j)) $((j-2))"; + sleep 0.05 + j=$((j-2)) + done + i=$((i+40)); done diff --git a/tmp.gui b/tmp.gui @@ -1,70 +0,0 @@ -grid grd1 create 2 2 -grid grd1 set-row-weight 0 1 -grid grd1 set-row-weight 1 1 -grid grd1 set-column-weight 0 1 -grid grd1 set-column-weight 1 1 -set-root-widget grd1 -draw drw1 create 100 100 #fff -grid grd1 add drw1 0 1 1 1 15 -draw drw1 set-color #000 - -draw drw1 line 0 0 5 5 -draw drw1 line 5 5 5 5 -draw drw1 line 10 10 5 5 -draw drw1 line 15 15 5 5 -draw drw1 line 20 20 5 5 -draw drw1 line 25 25 5 5 -draw drw1 line 30 30 5 5 -draw drw1 line 35 35 5 5 -draw drw1 line 40 40 5 5 -draw drw1 line 45 45 5 5 -draw drw1 line 50 50 5 5 -draw drw1 line 55 55 5 5 -draw drw1 line 60 60 5 5 -draw drw1 line 65 65 5 5 -draw drw1 line 70 70 5 5 -draw drw1 line 75 75 5 5 -draw drw1 line 80 80 5 5 -draw drw1 line 85 85 5 5 -draw drw1 line 90 90 5 5 -draw drw1 line 95 95 5 5 -draw drw1 line 100 100 5 5 -draw drw1 line 105 105 5 5 -draw drw1 line 110 110 5 5 -draw drw1 line 115 115 5 5 -draw drw1 line 120 120 5 5 -draw drw1 line 125 125 5 5 -draw drw1 line 130 130 5 5 -draw drw1 line 135 135 5 5 -draw drw1 line 140 140 5 5 -draw drw1 line 145 145 5 5 -draw drw1 line 150 150 5 5 -draw drw1 line 155 155 5 5 -draw drw1 line 160 160 5 5 -draw drw1 line 165 165 5 5 -draw drw1 line 170 170 5 5 -draw drw1 line 175 175 5 5 -draw drw1 line 180 180 5 5 -draw drw1 line 185 185 5 5 -draw drw1 line 190 190 5 5 -draw drw1 line 195 195 5 5 -draw drw1 line 200 200 5 5 -draw drw1 line 205 205 5 5 -draw drw1 line 210 210 5 5 -draw drw1 line 215 215 5 5 -draw drw1 line 220 220 5 5 -draw drw1 line 225 225 5 5 -draw drw1 line 230 230 5 5 -draw drw1 line 235 235 5 5 -draw drw1 line 240 240 5 5 -draw drw1 line 245 245 5 5 -draw drw1 line 250 250 5 5 -draw drw1 line 255 255 5 5 -draw drw1 line 260 260 5 5 -draw drw1 line 265 265 5 5 -draw drw1 line 270 270 5 5 -draw drw1 line 275 275 5 5 -draw drw1 line 280 280 5 5 -draw drw1 line 285 285 5 5 -draw drw1 line 290 290 5 5 -draw drw1 line 295 295 5 5