iced_aw/
lib.rs

1//! Additional widget for the Iced GUI library.
2//!
3//! # Examples
4//!
5//! * `badge` (Author: Kaiden42 <gitlab@tinysn.com>)
6//! * `card` (Author: Kaiden42 <gitlab@tinysn.com>)
7//! * `color_picker` (Author: Kaiden42 <gitlab@tinysn.com>)
8//! * `context_menu` (Author: wiiznokes <wiiznokes2@gmail.com>)
9//! * `date_picker` (Author: Kaiden42 <gitlab@tinysn.com>)
10//! * `drop_down` (Author: wiiznokes <wiiznokes2@gmail.com>)
11//! * `menu`
12//! * `number_input` (Author: leang27 <52003343+leang27@users.noreply.github.com>)
13//! * `selection_list` (Author: Héctor Ramón Jiménez <hector0193@gmail.com> and Andrew Wheeler <genusistimelord@gmail.com>)
14//! * `side_bar` (Author: Kaiden42 <gitlab@tinysn.com> and Rizzen Yazston)
15//! * `slide_bar` (Author: Andrew Wheeler <genusistimelord@gmail.com>)
16//! * `spinner` (Author: Iohann Rabeson <irabeson42@gmail.com>)
17//! * `tab_bar` (Author: Kaiden42 <gitlab@tinysn.com>)
18//! * `tabs` (Author: Kaiden42 <gitlab@tinysn.com>)
19//! * `time_picker` (Author: Kaiden42 <gitlab@tinysn.com>)
20//! * `typed_input` (Author: Ultraxime <36888699+Ultraxime@users.noreply.github.com>)
21//! * `widget_id_return` (Author: Andrew Wheeler <genusistimelord@gmail.com>)
22//! * `wrap` (Author: owntime <yrainbxqc@gmail.com>)
23//! * `labeled_frame` (Author: JL710)
24#![deny(missing_docs)]
25#![deny(unused_results)]
26#![forbid(unsafe_code)]
27#![warn(
28    clippy::pedantic,
29    clippy::nursery,
30
31    // Restriction lints
32    clippy::clone_on_ref_ptr,
33    clippy::create_dir,
34    clippy::dbg_macro,
35    clippy::decimal_literal_representation,
36    clippy::exit,
37    clippy::float_cmp_const,
38    clippy::get_unwrap,
39    clippy::let_underscore_must_use,
40    clippy::map_err_ignore,
41    clippy::mem_forget,
42    clippy::missing_docs_in_private_items,
43    clippy::multiple_inherent_impl,
44    clippy::panic,
45    clippy::panic_in_result_fn,
46    clippy::print_stderr,
47    clippy::print_stdout,
48    clippy::rest_pat_in_fully_bound_structs,
49    clippy::str_to_string,
50    clippy::todo,
51    clippy::unimplemented,
52    clippy::unneeded_field_pattern,
53    clippy::unwrap_in_result,
54    clippy::unwrap_used,
55    clippy::use_debug,
56)]
57#![allow(
58    clippy::suboptimal_flops,
59    clippy::cast_possible_truncation,
60    clippy::cast_sign_loss,
61    clippy::cast_possible_wrap,
62    clippy::module_name_repetitions,
63    clippy::borrowed_box,
64    clippy::missing_const_for_fn,
65    clippy::too_many_lines,
66    clippy::cast_precision_loss,
67    clippy::missing_docs_in_private_items,
68    clippy::unit_arg,
69    clippy::trivially_copy_pass_by_ref,
70    clippy::let_unit_value
71)]
72
73pub mod widget;
74#[deprecated(since = "0.9.4", note = "use `widget` instead")]
75pub use widget as widgets;
76
77pub mod core;
78pub mod style;
79pub use iced_fonts;
80
81/// Exports for all platforms that are not WASM32.
82mod platform {
83    #[allow(unused_imports)]
84    pub use crate::style;
85    pub use crate::widget::helpers;
86
87    #[doc(no_inline)]
88    #[cfg(feature = "badge")]
89    pub use {crate::widget::badge, badge::Badge};
90
91    #[doc(no_inline)]
92    #[cfg(feature = "card")]
93    pub use {crate::widget::card, card::Card};
94
95    #[doc(no_inline)]
96    #[cfg(feature = "color_picker")]
97    pub use {crate::widget::color_picker, color_picker::ColorPicker};
98
99    #[doc(no_inline)]
100    #[cfg(feature = "date_picker")]
101    pub use {crate::widget::date_picker, date_picker::DatePicker};
102
103    #[doc(no_inline)]
104    #[cfg(feature = "tab_bar")]
105    pub use {
106        crate::widget::tab_bar,
107        tab_bar::{TabBar, TabLabel},
108    };
109
110    #[doc(no_inline)]
111    #[cfg(feature = "tabs")]
112    pub use {
113        crate::widget::tabs,
114        tabs::{TabBarPosition, Tabs},
115    };
116
117    #[doc(no_inline)]
118    #[cfg(feature = "time_picker")]
119    pub use {crate::widget::time_picker, time_picker::TimePicker};
120
121    #[doc(no_inline)]
122    #[cfg(feature = "wrap")]
123    pub use {crate::widget::wrap, wrap::Wrap, wrap::direction};
124
125    #[doc(no_inline)]
126    #[cfg(feature = "number_input")]
127    pub use {crate::widget::number_input, number_input::NumberInput};
128
129    #[doc(no_inline)]
130    #[cfg(feature = "typed_input")]
131    pub use {crate::widget::typed_input, typed_input::TypedInput};
132
133    #[doc(no_inline)]
134    #[cfg(feature = "selection_list")]
135    pub use {crate::widget::selection_list, selection_list::SelectionList};
136
137    #[doc(no_inline)]
138    #[cfg(feature = "menu")]
139    pub use {crate::widget::menu, menu::Menu, menu::MenuBar};
140
141    #[doc(no_inline)]
142    #[cfg(feature = "quad")]
143    pub use {crate::widget::quad, quad::Quad};
144
145    #[doc(no_inline)]
146    #[cfg(feature = "spinner")]
147    pub use {crate::widget::spinner, spinner::Spinner};
148
149    #[doc(no_inline)]
150    #[cfg(feature = "slide_bar")]
151    pub use crate::widget::SlideBar;
152
153    #[doc(no_inline)]
154    #[cfg(feature = "context_menu")]
155    pub use {crate::widget::context_menu, context_menu::ContextMenu};
156
157    #[doc(no_inline)]
158    #[cfg(feature = "drop_down")]
159    pub use {crate::widget::drop_down, drop_down::DropDown};
160
161    #[doc(no_inline)]
162    #[cfg(feature = "sidebar")]
163    pub use crate::widget::sidebar;
164}
165
166#[doc(no_inline)]
167pub use platform::*;
168
169use iced_core::Font;
170use iced_fonts::generate_icon_functions;
171
172/// Embedded font file. There a handfull of glyphs so no need to worry.
173pub const ICED_AW_FONT_BYTES: &[u8] = include_bytes!("../font.ttf");
174/// Font type to use in text widgets.
175pub const ICED_AW_FONT: Font = Font::with_name("iced_aw");
176generate_icon_functions!("font.ttf", iced_aw_font, ICED_AW_FONT);