rat_widget/
lib.rs

1#![doc = include_str!("../readme.md")]
2//
3#![allow(clippy::collapsible_else_if)]
4#![allow(clippy::collapsible_if)]
5#![allow(clippy::if_same_then_else)]
6#![allow(clippy::clone_on_copy)]
7#![allow(clippy::assigning_clones)]
8#![allow(clippy::question_mark)]
9#![allow(clippy::uninlined_format_args)]
10
11pub mod event {
12    //!
13    //! Event-handler traits and Keybindings.
14    //!
15    //! See [rat-event](https://docs.rs/rat-event/latest/rat_event/)
16    //!
17    pub use rat_event::*;
18
19    pub use crate::button::event::ButtonOutcome;
20    pub use crate::calendar::event::CalOutcome;
21    pub use crate::checkbox::event::CheckOutcome;
22    pub use crate::choice::event::ChoiceOutcome;
23    pub use crate::combobox::event::ComboboxOutcome;
24    pub use crate::file_dialog::event::FileOutcome;
25    pub use crate::form::event::FormOutcome;
26    pub use crate::radio::event::RadioOutcome;
27    pub use crate::slider::event::SliderOutcome;
28    pub use crate::tabbed::event::TabbedOutcome;
29    pub use rat_ftable::event::{DoubleClickOutcome, EditOutcome, TableOutcome};
30    pub use rat_menu::event::MenuOutcome;
31    pub use rat_popup::event::PopupOutcome;
32    pub use rat_scrolled::event::ScrollOutcome;
33    pub use rat_text::event::{ReadOnly, TextOutcome};
34}
35
36/// Module for focus-handling functionality.
37/// See [rat-focus](https://docs.rs/rat-focus)
38pub mod focus {
39    pub use rat_focus::{
40        Focus, FocusBuilder, FocusFlag, HasFocus, Navigation, handle_focus, impl_has_focus,
41        match_focus, on_gained, on_lost,
42    };
43}
44
45/// Layout calculations apart from ratatui/Layout.
46pub mod layout;
47
48/// Trait for relocatable widgets.
49/// See also [rat-reloc](https://docs.rs/rat-reloc/latest/rat_reloc/)
50pub mod reloc {
51    pub use rat_reloc::{
52        RelocatableState, impl_relocatable_state, relocate_area, relocate_areas, relocate_position,
53        relocate_positions,
54    };
55}
56
57/// Scroll attribute and event-handling.
58/// See [rat-scrolled](https://docs.rs/rat-scrolled/latest/rat_scrolled/)
59pub mod scrolled {
60    pub use rat_scrolled::{
61        SCROLLBAR_DOUBLE_HORIZONTAL, SCROLLBAR_DOUBLE_VERTICAL, SCROLLBAR_HORIZONTAL,
62        SCROLLBAR_VERTICAL, Scroll, ScrollArea, ScrollAreaState, ScrollState, ScrollStyle,
63        ScrollSymbols, ScrollbarPolicy,
64    };
65}
66
67/// Text editing core functionality and utilities.
68pub mod text {
69    pub use rat_text::clipboard;
70    pub use rat_text::core;
71    pub use rat_text::undo_buffer;
72    pub use rat_text::{
73        Cursor, Grapheme, HasScreenCursor, Locale, TextError, TextFocusGained, TextFocusLost,
74        TextPosition, TextRange, TextStyle, impl_screen_cursor, ipos_type, screen_cursor,
75        upos_type,
76    };
77}
78
79// --- widget modules here --- (alphabetical)
80
81pub mod button;
82pub mod calendar;
83pub mod checkbox;
84pub mod choice;
85pub mod clipper;
86pub mod color_input;
87pub mod combobox;
88pub mod date_input;
89pub mod dialog_frame;
90pub mod file_dialog;
91pub mod form;
92pub mod hover;
93pub mod line_number;
94pub mod list;
95pub mod menu;
96pub mod msgdialog;
97pub mod number_input;
98pub mod paired;
99pub mod paragraph;
100pub mod popup;
101pub mod radio;
102pub mod range_op;
103pub mod shadow;
104pub mod slider;
105pub mod splitter;
106pub mod statusline;
107pub mod statusline_stacked;
108pub mod tabbed;
109pub mod table;
110pub mod text_input;
111pub mod text_input_mask;
112pub mod textarea;
113pub mod util;
114pub mod view;
115
116mod _private {
117    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
118    pub struct NonExhaustive;
119}