// Copyright 2022 System76 // SPDX-License-Identifier: MPL-2.0 //! Cosmic-themed widget implementations. // Re-exports from Iced pub use iced::widget::{checkbox, Checkbox}; pub use iced::widget::{container, Container}; pub use iced::widget::{horizontal_space, space, vertical_space, Space}; pub use iced::widget::{image, Image}; pub use iced::widget::{mouse_area, MouseArea}; pub use iced::widget::{pick_list, PickList}; pub use iced::widget::{radio, Radio}; pub use iced::widget::{slider, Slider}; pub use iced::widget::{svg, Svg}; pub mod aspect_ratio; pub mod button; pub use button::{button, Button, IconButton, LinkButton, TextButton}; pub mod card; pub use card::*; pub use column::{column, Column}; pub mod column { pub type Column<'a, Message> = iced::widget::Column<'a, Message, crate::Renderer>; #[must_use] pub fn column<'a, Message>() -> Column<'a, Message> { Column::new() } #[must_use] pub fn with_capacity<'a, Message>(capacity: usize) -> Column<'a, Message> { Column::with_children(Vec::with_capacity(capacity)) } #[must_use] pub fn with_children(children: Vec>) -> Column { Column::with_children(children) } } pub mod cosmic_container; pub use cosmic_container::LayerContainer; /// An element to distinguish a boundary between two elements. pub mod divider { /// Horizontal variant of a divider. pub mod horizontal { use iced::widget::{horizontal_rule, Rule}; /// Horizontal divider with default thickness #[must_use] pub fn default() -> Rule { horizontal_rule(1).style(crate::theme::Rule::Default) } /// Horizontal divider with light thickness #[must_use] pub fn light() -> Rule { horizontal_rule(4).style(crate::theme::Rule::LightDivider) } /// Horizontal divider with heavy thickness. #[must_use] pub fn heavy() -> Rule { horizontal_rule(10).style(crate::theme::Rule::HeavyDivider) } } } pub mod flex_row; pub use flex_row::{flex_row, FlexRow}; mod header_bar; pub use header_bar::{header_bar, HeaderBar}; pub mod icon; pub use icon::{icon, Icon}; #[cfg(feature = "animated-image")] pub mod frames; pub mod list; pub use list::*; pub mod nav_bar; pub use nav_bar::nav_bar; pub mod nav_bar_toggle; pub use nav_bar_toggle::{nav_bar_toggle, NavBarToggle}; pub mod popover; pub use popover::{popover, Popover}; pub mod rectangle_tracker; pub use row::{row, Row}; pub mod row { pub type Row<'a, Message> = iced::widget::Row<'a, Message, crate::Renderer>; #[must_use] pub fn row<'a, Message>() -> Row<'a, Message> { Row::new() } #[must_use] pub fn with_capacity<'a, Message>(capacity: usize) -> Row<'a, Message> { Row::with_children(Vec::with_capacity(capacity)) } #[must_use] pub fn with_children(children: Vec>) -> Row { Row::with_children(children) } } mod scrollable; pub use scrollable::*; pub mod search; pub mod segmented_button; pub mod segmented_selection; pub mod settings; pub mod spin_button; pub use spin_button::{spin_button, SpinButton}; pub mod text; pub use text::{text, Text}; pub mod text_input; pub use text_input::*; mod toggler; pub use toggler::toggler; pub mod view_switcher; pub use view_switcher::horizontal as horiontal_view_switcher; pub use view_switcher::vertical as vertical_view_switcher; pub mod warning; pub use warning::*;