20 releases (11 breaking)
0.30.0 | Nov 1, 2024 |
---|---|
0.27.0 | Oct 16, 2024 |
0.13.0 | Jul 3, 2024 |
#754 in Command-line interface
46 downloads per month
Used in 2 crates
520KB
12K
SLoC
This crate is a part of rat-salsa.
For examples see rat-widget GitHub
Rat Widgets
This crate tries to provide an extended set of widgets with
- Event handling
- Focus handling
- Builtin scrolling
- Speed
Event handling
Uses the trait defined in rat-event to implement event-handling for crossterm. All widgets are designed with other event-handlers in mind.
Focus handling
Uses FocusFlag defined by rat-focus internally, to mark the focused widget. This is just a passive flag, that probably can be used with other focus systems. Or you use rat-focus.
Scrolling
Where it makes sense the widgets implement internal scrolling. They use Scroll from rat-scrolled.
Speed
Rendering all the widgets tries hard not to need allocations and extensive copying during rendering.
Special mentions:
- rat-ftable::Table: It uses an adapter for the data for rendering instead of creating Row/Cell structs.
Widgets
All the widgets are plain ratatui widgets, and implement StatefulWidget and the (experimental) StatefulWidgetRef traits.
Event handling uses rat-event::HandleEvent. Currently, crossterm events are implemented.
- Button
- Choice
- Clipper
- Calendar
- DateInput (using chrono)
- EditList
- EditTable
- FileDialog
- TextInput
- MaskedInput
- Menubar
- MenuLine
- MsgDialog
- NumberInput (using format_num_pattern)
- SinglePager and DualPager
- PopupMenu
- Split
- StatusLine
- Tabbed
- Table
- TextArea
- View
and some adapters for ratatui widgets
Dependencies
~13–23MB
~312K SLoC