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