diff options
| author | Julian Hurst <ark@mansus.space> | 2025-03-17 23:13:06 +0100 |
|---|---|---|
| committer | Julian Hurst <ark@mansus.space> | 2025-03-17 23:13:06 +0100 |
| commit | a574b7a367956efca0e0a13123bc60c98b9908c9 (patch) | |
| tree | 56399fb7c4fada35b5990ce94950827aef484980 /cmd | |
| parent | 0d0186d63712472a037cf510812e68774c73c12f (diff) | |
| download | hare-tui-a574b7a367956efca0e0a13123bc60c98b9908c9.tar.gz | |
Initial scrolllist and input support
Diffstat (limited to 'cmd')
| -rw-r--r-- | cmd/scrolllist.ha | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/cmd/scrolllist.ha b/cmd/scrolllist.ha new file mode 100644 index 0000000..6b631fc --- /dev/null +++ b/cmd/scrolllist.ha @@ -0,0 +1,52 @@ +use tui; +use tui::layout; +use tui::widget; +use tui::widget::list; +use unix::tty; +use io; +use fmt; +use time; + +export fn main() void = { + const state = tui::init()!; + defer tui::finish(&state); + let li = list::newscrolllist(&state, (1, 1), tty::ttysize { + rows = 2u16, + columns = 50u16, + }, + &widget::style { + border = true, + colorfg = widget::color::REDFG, + colorbg = widget::color::REDBG, + },"hello", "world", "bye", "world")!; + + let l = layout::newvlayout(&li); + defer l.layout.finish(&l); + l.layout.print(&l); + + for (true) { + const r = tui::read(&state)!; + if (r == 'j') { + list::down(&li); + }; + if (r == 'k') { + list::up(&li); + }; + if (r == 'K') { + list::frameup(&li); + }; + if (r == 'J') { + list::framedown(&li); + }; + if (r == 'g') { + list::top(&li); + }; + if (r == 'G') { + list::bottom(&li); + }; + if (r == 'q') { + break; + }; + l.layout.print(&l); + }; +}; |
