danceinterpreter_rs/ui/
mod.rs1use iced::widget::Text;
2use iced::widget::text::Shaping;
3use iced::widget::{container, text, tooltip};
4use iced::{Element, Font, Length, Pixels, Renderer, Theme};
5
6pub mod config_window;
7pub mod song_window;
8pub mod widget;
9
10pub fn with_tooltip<'a, Message: 'a>(
12 content: impl Into<Element<'a, Message>>,
13 label: impl text::IntoFragment<'a>,
14) -> Element<'a, Message> {
15 tooltip(
16 content,
17 container(text(label)).padding([4, 8]).style(|t: &Theme| {
18 container::Style::default()
19 .background(t.extended_palette().background.strong.color)
20 .border(iced::border::rounded(4))
21 }),
22 tooltip::Position::Bottom,
23 )
24 .gap(4)
25 .into()
26}
27
28pub fn material_icon_sized(id: &'_ str, size: impl Into<Pixels>) -> Text<'_, Theme, Renderer> {
29 Text::new(id)
30 .font(Font::with_name("Material Symbols Outlined"))
31 .size(size)
32 .shaping(Shaping::Advanced)
33 .width(Length::Shrink)
34}
35
36pub fn material_icon(id: &'_ str) -> Text<'_, Theme, Renderer> {
37 Text::new(id)
38 .font(Font::with_name("Material Symbols Outlined"))
39 .shaping(Shaping::Advanced)
40 .width(Length::Shrink)
41}