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.
Layout
There are some layout calculators beyond ratatui's Layout.
Relocation
Widgets like View and Clipper move the widget-image after rendering. This breaks any areas stored in the widget-states.