Skip to main content

scrin/widgets/
mod.rs

1pub mod barchart;
2pub mod block;
3pub mod canvas;
4pub mod chart;
5pub mod clear;
6pub mod code;
7pub mod form;
8pub mod gauge;
9pub mod kanban_board;
10pub mod list;
11pub mod markdown_output;
12pub mod pane_cockpit;
13pub mod paragraph;
14pub mod popup;
15pub mod scroll_text;
16pub mod scrollbar;
17pub mod sparkline;
18pub mod status_deck;
19pub mod table;
20pub mod tabs;
21pub mod todo_list;
22pub mod toggle;
23pub mod transcript_viewport;
24
25pub use barchart::BarChart;
26pub use block::Block;
27pub use canvas::Canvas;
28pub use chart::Chart;
29pub use clear::{centered_rect, Clear};
30pub use code::{CodeBlock, CodeCopyMode};
31pub use form::{Dropdown, Form, FormAction, FormField, TextInput};
32pub use gauge::Gauge;
33pub use kanban_board::{KanbanBoard, KanbanCard, KanbanLane};
34pub use list::{rich_item, List, ListItem, ListState};
35pub use markdown_output::{MarkdownOutput, RetainedMarkdownOutput};
36pub use pane_cockpit::{PaneCockpit, PaneCockpitLayout, PaneCockpitSpec};
37pub use paragraph::{Alignment, Line, Paragraph, Span, Text, WrapMode};
38pub use popup::Popup;
39pub use scroll_text::ScrollableText;
40pub use scrollbar::ScrollBar;
41pub use sparkline::Sparkline;
42pub use status_deck::{
43    RightPaneVisibility, StatusDeck, StatusDeckItem, StatusDeckItemKind, StatusDeckSection,
44    StatusDeckSectionKind, ValidationState,
45};
46pub use table::Table;
47pub use tabs::Tabs;
48pub use todo_list::{TodoItem, TodoList, TodoListStyle, TodoStatus};
49pub use toggle::Toggle;
50pub use transcript_viewport::TranscriptViewport;
51
52use crate::core::buffer::Buffer;
53use crate::core::rect::Rect;
54
55pub trait Widget {
56    fn render(&self, buffer: &mut Buffer, area: Rect);
57}