diff options
| author | dam <dam@gudinoff> | 2023-08-17 20:28:47 +0100 |
|---|---|---|
| committer | dam <dam@gudinoff> | 2023-08-17 20:28:47 +0100 |
| commit | 709879ee56d31fe543a0ad882713bd4e3d17d2d2 (patch) | |
| tree | 12a35282bdd0f1f8a2159ade147944c89254db24 /kscurses/ui/links.jai | |
| parent | fa1b8ea54646f1a0f3eadef33e3a660b875cc1ff (diff) | |
| download | task-time-tracker-709879ee56d31fe543a0ad882713bd4e3d17d2d2.tar.zst task-time-tracker-709879ee56d31fe543a0ad882713bd4e3d17d2d2.zip | |
Added kscurses and testing program.
Diffstat (limited to 'kscurses/ui/links.jai')
| -rw-r--r-- | kscurses/ui/links.jai | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/kscurses/ui/links.jai b/kscurses/ui/links.jai new file mode 100644 index 0000000..dc8c667 --- /dev/null +++ b/kscurses/ui/links.jai @@ -0,0 +1,94 @@ +link_lr :: (el : *UI_Elem, er : *UI_Elem) { + el.right = er; + er.left = el; +} +link_tb :: (et : *UI_Elem, eb : *UI_Elem) { + et.bottom = eb; + eb.top = et; +} +link_oi :: (eo : *UI_Elem, ei : *UI_Elem) { + eo.inner = ei; + ei.outer = eo; +} + +link_grid :: (size : ivec2, elements : ..*UI_Elem) { + assert(size.x * size.y == elements.count); + for y : 0..size.y-1 { + for x : 0..size.x-2 { + i := x + size.x * y; + link_lr(elements[i], elements[i + 1]); + } + } + for y : 0..size.y-2 { + for x : 0..size.x-1 { + i := x + size.x * y; + link_tb(elements[i], elements[i + size.x]); + } + } +} +link_grid :: (size : ivec2, elements : []UI_Elem) { + assert(size.x * size.y == elements.count); + for y : 0..size.y-1 { + for x : 0..size.x-2 { + i := x + size.x * y; + link_lr(*elements[i], *elements[i + 1]); + } + } + for y : 0..size.y-2 { + for x : 0..size.x-1 { + i := x + size.x * y; + link_tb(*elements[i], *elements[i + size.x]); + } + } +} +link_row :: (elements : ..*UI_Elem) { + for i : 0..elements.count-2 { + link_lr(elements[i], elements[i + 1]); + } +} +link_column :: (elements : ..*UI_Elem) { + for i : 0..elements.count-2 { + link_tb(elements[i], elements[i + 1]); + } +} +link_to_outer :: (eo : *UI_Elem, ei : ..*UI_Elem) { + if ei.count > 0 { + for ei { + it.outer = eo; + } + eo.inner = ei[0]; + } + +} +link_to_bottom :: (eb : *UI_Elem, et : ..*UI_Elem) { + if et.count > 0 { + for et { + it.bottom = eb; + } + eb.top = et[0]; + } +} +link_to_top :: (et : *UI_Elem, eb : ..*UI_Elem) { + if eb.count > 0 { + for eb { + it.top = et; + } + et.bottom = eb[0]; + } +} +link_to_right :: (er : *UI_Elem, el : ..*UI_Elem) { + if el.count > 0 { + for el { + it.right = er; + } + er.left = el[0]; + } +} +link_to_left :: (el : *UI_Elem, er : ..*UI_Elem) { + if er.count > 0 { + for er { + it.left = el; + } + el.right = er[0]; + } +}
\ No newline at end of file |
