lib.rs
pub mod dir_picker;
pub mod nav_scrollable;
pub mod report;
pub mod scrollable;
#[doc(inline)]
pub use nav_scrollable::NavScrollable;
#[doc(inline)]
pub use scrollable::Scrollable;
use iced::widget::container;
use iced::Element;
/// Creates a new [`Scrollable`] with the provided content.
///
/// Scrollables let users navigate an endless amount of content with a
/// scrollbar.
///
/// # Example
/// ```no_run
/// # mod iced { pub mod widget { pub use iced_widget::*; } }
/// # pub type Element<'a, Message> = iced_widget::core::Element<'a, Message, iced_widget::Theme, iced_widget::Renderer>;
/// use iced::widget::{column, vertical_space};
/// use inflorescence_iced_widget::scrollable;
///
/// pub type State = scrollable::State;
///
/// enum Message {
/// // ...
/// }
///
/// fn view(state: &State) -> Element<'_, Message> {
/// scrollable(state, column![
/// "Scroll me!",
/// vertical_space().height(3000),
/// "You did it!",
/// ]).into()
/// }
/// ```
pub fn scrollable<'a, Message, Theme, Renderer>(
state: &'a scrollable::State,
content: impl Into<Element<'a, Message, Theme, Renderer>>,
) -> Scrollable<'a, Message, Theme, Renderer>
where
Theme: 'a + scrollable::Catalog,
Renderer: iced_core::Renderer,
{
Scrollable::new(state, content)
}
/// Creates a new [`Scrollable`] with the provided content.
///
/// Scrollables let users navigate an endless amount of content with a
/// scrollbar.
///
/// # Example
/// ```no_run
/// # mod iced { pub mod widget { pub use iced_widget::*; } }
/// # pub type Element<'a, Message> = iced_widget::core::Element<'a, Message, iced_widget::Theme, iced_widget::Renderer>;
/// use iced::widget::{column, vertical_space};
/// use inflorescence_iced_widget::nav_scrollable;
///
/// pub type State = nav_scrollable::State;
///
/// enum Message {
/// // ...
/// }
///
/// fn view(state: &State) -> Element<'_, Message> {
/// nav_scrollable(state, [
/// "Scroll me!",
/// vertical_space().height(3000),
/// "You did it!",
/// ]).into()
/// }
/// ```
pub fn nav_scrollable<'a, Message, Theme, Renderer>(
state: &'a nav_scrollable::State,
children: impl IntoIterator<Item = Element<'a, Message, Theme, Renderer>>,
) -> NavScrollable<'a, Message, Theme, Renderer>
where
Message: 'a,
Theme: 'a + nav_scrollable::Catalog,
Renderer: 'a + iced_core::Renderer,
{
NavScrollable::new(state, children)
}
pub fn nav_selectable<'a, Message, Theme, Renderer>(
state: &'a nav_scrollable::State,
children: impl IntoIterator<Item = Element<'a, Message, Theme, Renderer>>,
non_selected_section: impl Fn() -> <Theme as container::Catalog>::Class<'a>,
selected_section: impl Fn() -> <Theme as container::Catalog>::Class<'a>,
) -> NavScrollable<'a, Message, Theme, Renderer>
where
Message: 'a,
Theme: 'a + nav_scrollable::Catalog + container::Catalog,
Renderer: 'a + iced_core::Renderer,
{
NavScrollable::with_selection(
state,
children,
non_selected_section,
selected_section,
)
}