Crate rat_widget

Source
Expand description

beta 3 crates.io Documentation License License

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.

and some adapters for ratatui widgets

§Layout

There are some layout calculators beyond ratatui’s Layout.

Modules§

button
Button widget.
calendar
Calendars.
checkbox
Checkbox widget.
choice
Choice/Select widget.
clipper
An alternative view widget.
date_input
Number input with patterns from chrono.
event
Event-handler traits and Keybindings.
file_dialog
File dialog
focus
Module for focus-handling functionality. For details see rat-focus
layout
Some functions that calculate more complicate layouts.
line_number
Line numbers widget. For use with TextArea mostly.
list
Extensions for ratatui List.
menu
Menu widgets.
msgdialog
A message dialog.
number_input
Number input with pattern.
pager
If you are tired of scrolling, try paging :)
paired
paragraph
Extensions for ratatui Paragraph.
popup
PopupCore helps with managing popup widgets.
radio
range_op
Bounded numeric operations.
reloc
Relocatable widgets.
scrolled
Scroll attribute and event-handling.
shadow
Draw a shadow around a widget.
slider
Slider widget.
splitter
Vertical and horizontal multiple split.
statusline
Statusbar with multiple sections.
tabbed
Tabs.
table
Table widget.
text
Text editing core functionality and utilities.
text_input
Text-Input widget
text_input_mask
Text-Input with pattern/mask.
textarea
Text-Area.
util
Small helpers.
view
A view allows scrolling of on or more widgets without builtin support for scrolling.