1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
//! Reusable widgets.
//!
//! This is currently the least mature module. Expect significant changes and improvements.
//!
//! If what you need isn't here, the [Widget Garden](https://github.com/sailbrush/rosin-widget-garden) may have what you're looking for.
//!
//! ## Overview
//! Rosin provides relatively low level primitives for describing a UI precisely, but it's usually preferable to work at a higher level of abstraction.
//! Widgets are reusable components that handle the low level details for you.
//!
//! Building widgets does not require implementing any traits. Widgets can take whatever shape they need to.
//!
//! The included widgets can be split into three categories:
//! 1) Function widgets: stateless functions that add nodes to the UI tree.
//! - [`button`](button::button), [`checkbox`](checkbox::checkbox), [`dragvalue`](dragvalue::dragvalue), [`label`](label::label)
//! 2) Parameterized widgets: stateless widgets whose behavior can be customized.
//! - [`ProgressBarParams`], [`SliderParams`]
//! - `*Params` can be created in the view callback, and don't need to be stored in the app's state.
//! 3) Stateful widgets: widgets that maintain internal state between frames.
//! - [`DropDown`], [`PerfDisplay`], [`ScrollArea`], [`TextBox`]
//! - These widgets need to be stored in the app's state.
//!
//! By convention, Parameterized and Stateful widgets have a `view()`
//! method that takes [`&mut Ui`](crate::tree::Ui) and adds their nodes to the tree.
//!
//! ### Themes
//!
//! The [`dark_theme`] function returns the parsed stylesheet located at `rosin/src/widgets/styles/dark_theme.css`
//! and should be assigned to the root node of the tree, along with a CSS class of `root`.
//!
//! More themes are planned once the set of included widgets has matured.
use OnceLock;
use crate*;
pub
pub use *;
pub use *;
pub use *;
pub use *;
pub use *;
pub use *;
pub use *;
pub use *;
pub use *;
pub use *;