Skip to main content

qframe/widgets/
mod.rs

1//! Ready-made widgets. Every one takes its look from the theme and works with keyboard and mouse.
2
3mod accordion;
4mod app_shell;
5mod axis;
6mod badge;
7mod bar_chart;
8mod big_text;
9mod boundary;
10mod breadcrumb;
11mod button;
12mod card_grid;
13mod cells;
14mod checkbox;
15mod close_mark;
16mod code_view;
17mod command_palette;
18mod context_item;
19mod context_menu;
20mod copy_value;
21mod date_picker;
22mod delayed;
23mod divider;
24mod duration_input;
25mod edge_scroll;
26pub(crate) mod edit_menu;
27mod editor;
28mod eighths;
29mod empty_state;
30mod field;
31mod file_browser;
32mod file_picker;
33mod filter;
34#[cfg(test)]
35mod floating_tests;
36mod form;
37mod form_errors;
38mod gauge;
39mod heatmap;
40mod help_layer;
41mod highlight;
42mod hold_to_confirm;
43#[cfg(test)]
44mod huge_text_tests;
45mod key_hints;
46mod layer;
47mod legend;
48mod list;
49mod log_buffer;
50mod log_view;
51mod markdown;
52mod menu;
53mod modal;
54mod number_input;
55mod numeric;
56mod page_transition;
57mod panel;
58mod placement;
59mod popover;
60mod popup_menu;
61mod press;
62mod progress_bar;
63mod radio_group;
64mod row;
65mod rows;
66mod scroll_view;
67mod scrollbar;
68mod sections;
69mod segmented;
70mod select;
71mod settings_list;
72mod shimmer_text;
73mod side_panel;
74mod skeleton;
75mod slider;
76mod sparkline;
77mod spinner;
78mod splitter;
79mod steps;
80mod switch;
81mod tab_model;
82mod tab_rail;
83mod table;
84mod tabs;
85mod task_list;
86#[cfg(feature = "pty")]
87mod terminal;
88#[cfg(feature = "pty")]
89mod terminal_mouse;
90#[cfg(feature = "pty")]
91mod terminal_session;
92mod text;
93mod text_area;
94mod text_input;
95mod text_rows;
96mod time_input;
97mod timeline;
98mod toast;
99mod tooltip;
100mod tree;
101mod widget_dock;
102mod wizard;
103
104pub use accordion::Accordion;
105pub use app_shell::AppShell;
106pub use axis::Axis;
107pub use badge::Badge;
108pub use bar_chart::{Bar, BarChart, Series};
109pub use big_text::{BigText, Gradient};
110pub use breadcrumb::Breadcrumb;
111pub use button::Button;
112pub use card_grid::CardGrid;
113pub use checkbox::{Checkbox, CheckboxStyle};
114pub use code_view::CodeView;
115pub use command_palette::{CommandPalette, PaletteCommand};
116pub use context_item::ContextItem;
117pub use context_menu::ContextMenu;
118pub use copy_value::CopyValue;
119pub use date_picker::DatePicker;
120pub use divider::Divider;
121pub use duration_input::{DurationError, DurationInput, DurationUnit, parse_duration};
122pub use empty_state::EmptyState;
123pub use field::Field;
124pub use file_browser::{FileBrowser, FileEntry, FilePickerMsg, Listing, ListingError, PickMode, read_folder};
125pub use file_picker::FilePicker;
126pub use form::{Form, FormFields};
127pub use form_errors::FormErrors;
128pub use gauge::Gauge;
129pub use heatmap::Heatmap;
130pub use help_layer::HelpLayer;
131pub use highlight::Language;
132pub use hold_to_confirm::HoldToConfirm;
133pub use key_hints::KeyHints;
134pub use legend::Legend;
135pub use list::{ItemKind, List, ListItem};
136pub use log_buffer::{LogBuffer, LogLevel, LogLine};
137pub use log_view::LogView;
138pub use markdown::Markdown;
139pub use menu::{Menu, MenuGroup, MenuItem};
140pub use modal::Modal;
141pub use number_input::NumberInput;
142pub use page_transition::PageTransition;
143pub use panel::Panel;
144pub use placement::Placement;
145pub use popover::Popover;
146pub use progress_bar::ProgressBar;
147pub use radio_group::{RadioGroup, RadioStyle};
148pub use scroll_view::ScrollView;
149pub use scrollbar::{ScrollMetrics, ScrollbarStyle};
150pub use sections::Section;
151pub use segmented::Segmented;
152pub use select::Select;
153pub use settings_list::{SettingRow, SettingsList, SettingsRows};
154pub use shimmer_text::{ShimmerStyle, ShimmerText};
155pub use side_panel::{Closed, Side, SidePanel};
156pub use skeleton::Skeleton;
157pub use slider::Slider;
158pub use sparkline::Sparkline;
159pub use spinner::{Spinner, SpinnerStyle};
160pub use splitter::Splitter;
161pub use steps::Steps;
162pub use switch::{Switch, SwitchStyle};
163pub use tab_model::TabEdit;
164pub use tab_rail::{CollapsedMarker, RailTab, TabRail};
165pub use table::{Column, ColumnWidth, SortDirection, Table, TableCell, TableRow};
166pub use tabs::{Overflow, TabWidth, Tabs};
167pub use task_list::TaskList;
168#[cfg(feature = "pty")]
169pub use terminal::Terminal;
170#[cfg(feature = "pty")]
171pub use terminal_session::{TerminalEvent, TerminalSession, TerminalWatch};
172pub use text::{Span, Text};
173pub use text_area::TextArea;
174pub use text_input::TextInput;
175pub use time_input::TimeInput;
176pub use timeline::{TimeBlock, Timeline};
177// `TimeOfDay` lives in `date`, next to `Date`; it is re-exported here because the time field is
178// where most applications meet it.
179pub use crate::date::TimeOfDay;
180pub use toast::{Corner, Toast, ToastKind};
181pub(crate) use toast::{ToastPress, ToastStack};
182pub use tooltip::Tooltip;
183pub use tree::{Tree, TreeMove, TreeNode};
184pub use widget_dock::WidgetDock;
185pub use wizard::Wizard;
186
187/// Builds a message from a chosen index.
188type IndexMessage<Msg> = Box<dyn Fn(usize) -> Msg>;
189
190/// Builds a message from a new on/off state.
191type ToggleMessage<Msg> = Box<dyn Fn(bool) -> Msg>;