altui_core/widgets/
mod.rs1mod barchart;
19mod block;
20pub mod canvas;
21mod chart;
22mod clear;
23mod gauge;
24mod list;
25mod paragraph;
26mod reflow;
27mod scrollbar;
28mod sparkline;
29mod table;
30mod tabs;
31
32pub use self::barchart::BarChart;
33pub use self::block::{Block, BorderType};
34pub use self::chart::{Axis, Chart, Dataset, GraphType};
35pub use self::clear::Clear;
36pub use self::gauge::{Gauge, LineGauge};
37pub use self::list::{List, ListItem};
38pub use self::paragraph::{Paragraph, Wrap};
39pub use self::scrollbar::{
40 ScrollDirection, Scrollbar, ScrollbarOrientation, DOUBLE_HORIZONTAL, DOUBLE_VERTICAL,
41 HORIZONTAL, VERTICAL,
42};
43pub use self::sparkline::Sparkline;
44pub use self::table::{Cell, Row, Table};
45pub use self::tabs::Tabs;
46
47use crate::{buffer::Buffer, layout::Rect};
48use bitflags::bitflags;
49
50bitflags! {
51 #[derive(Debug, Clone, Copy, PartialEq, Eq)]
53 pub struct Borders: u32 {
54 const NONE = 0b0000_0001;
56 const TOP = 0b0000_0010;
58 const RIGHT = 0b0000_0100;
60 const BOTTOM = 0b000_1000;
62 const LEFT = 0b0001_0000;
64 const ALL = Self::TOP.bits() | Self::RIGHT.bits() | Self::BOTTOM.bits() | Self::LEFT.bits();
66 }
67}
68
69pub trait Widget {
71 fn render(&mut self, area: Rect, buf: &mut Buffer);
74}