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