diff --git a/gui/Cargo.toml b/gui/Cargo.toml index 54c26469a..15d5e1025 100644 --- a/gui/Cargo.toml +++ b/gui/Cargo.toml @@ -21,7 +21,7 @@ liana_ui = { path = "ui" } backtrace = "0.3" hex = "0.4.3" -iced = { version = "0.12.1", default-features = false, features = ["tokio", "svg", "qr_code", "image", "lazy", "wgpu"] } +iced = { version = "0.12.1", default-features = false, features = ["tokio", "svg", "qr_code", "image", "lazy", "wgpu", "advanced"] } iced_runtime = "0.12.1" tokio = {version = "1.21.0", features = ["signal"]} diff --git a/gui/src/app/view/label.rs b/gui/src/app/view/label.rs index b3c616061..298b7aaa3 100644 --- a/gui/src/app/view/label.rs +++ b/gui/src/app/view/label.rs @@ -1,4 +1,4 @@ -use iced::{widget::row, Alignment}; +use iced::{advanced::text::Shaping, widget::row, Alignment}; use liana_ui::{ component::{button, form}, @@ -17,7 +17,9 @@ pub fn label_editable( if !label.is_empty() { return Container::new( row!( - iced::widget::Text::new(label).size(size), + iced::widget::Text::new(label) + .size(size) + .shaping(Shaping::Advanced), button::primary(Some(icon::pencil_icon()), "Edit").on_press( view::Message::Label( labelled, diff --git a/gui/src/app/view/psbt.rs b/gui/src/app/view/psbt.rs index 5cb6bbe2f..173769ed4 100644 --- a/gui/src/app/view/psbt.rs +++ b/gui/src/app/view/psbt.rs @@ -425,7 +425,7 @@ pub fn signatures<'a>( Container::new(text(alias)) .padding(10) .style(theme::Container::Pill(theme::Pill::Simple)), - liana_ui::widget::Text::new(value.to_string()), + text(value.to_string()), tooltip::Position::Bottom, ) .style(theme::Container::Card(theme::Card::Simple)), diff --git a/gui/ui/src/component/text.rs b/gui/ui/src/component/text.rs index f51fc719d..5dcd143fd 100644 --- a/gui/ui/src/component/text.rs +++ b/gui/ui/src/component/text.rs @@ -1,4 +1,5 @@ use crate::{font, theme::Theme}; +use iced::advanced::text::Shaping; use std::borrow::Cow; pub const H1_SIZE: u16 = 40; @@ -12,78 +13,91 @@ pub const CAPTION_SIZE: u16 = 12; pub fn h1<'a>(content: impl Into>) -> iced::widget::Text<'a, Theme> { iced::widget::Text::new(content) + .shaping(Shaping::Advanced) .font(font::BOLD) .size(H1_SIZE) } pub fn h2<'a>(content: impl Into>) -> iced::widget::Text<'a, Theme> { iced::widget::Text::new(content) + .shaping(Shaping::Advanced) .font(font::BOLD) .size(H2_SIZE) } pub fn h3<'a>(content: impl Into>) -> iced::widget::Text<'a, Theme> { iced::widget::Text::new(content) + .shaping(Shaping::Advanced) .font(font::BOLD) .size(H3_SIZE) } pub fn h4_bold<'a>(content: impl Into>) -> iced::widget::Text<'a, Theme> { iced::widget::Text::new(content) + .shaping(Shaping::Advanced) .font(font::BOLD) .size(H4_SIZE) } pub fn h4_regular<'a>(content: impl Into>) -> iced::widget::Text<'a, Theme> { iced::widget::Text::new(content) + .shaping(Shaping::Advanced) .font(font::REGULAR) .size(H4_SIZE) } pub fn h5_medium<'a>(content: impl Into>) -> iced::widget::Text<'a, Theme> { iced::widget::Text::new(content) + .shaping(Shaping::Advanced) .font(font::MEDIUM) .size(H5_SIZE) } pub fn h5_regular<'a>(content: impl Into>) -> iced::widget::Text<'a, Theme> { iced::widget::Text::new(content) + .shaping(Shaping::Advanced) .font(font::REGULAR) .size(H5_SIZE) } pub fn p1_bold<'a>(content: impl Into>) -> iced::widget::Text<'a, Theme> { iced::widget::Text::new(content) + .shaping(Shaping::Advanced) .font(font::BOLD) .size(P1_SIZE) } pub fn p1_medium<'a>(content: impl Into>) -> iced::widget::Text<'a, Theme> { iced::widget::Text::new(content) + .shaping(Shaping::Advanced) .font(font::MEDIUM) .size(P1_SIZE) } pub fn p1_regular<'a>(content: impl Into>) -> iced::widget::Text<'a, Theme> { iced::widget::Text::new(content) + .shaping(Shaping::Advanced) .font(font::REGULAR) .size(P1_SIZE) } pub fn p2_medium<'a>(content: impl Into>) -> iced::widget::Text<'a, Theme> { iced::widget::Text::new(content) + .shaping(Shaping::Advanced) .font(font::MEDIUM) .size(P2_SIZE) } pub fn p2_regular<'a>(content: impl Into>) -> iced::widget::Text<'a, Theme> { iced::widget::Text::new(content) + .shaping(Shaping::Advanced) .font(font::REGULAR) .size(P2_SIZE) } pub fn caption<'a>(content: impl Into>) -> iced::widget::Text<'a, Theme> { iced::widget::Text::new(content) + .shaping(Shaping::Advanced) .font(font::REGULAR) .size(CAPTION_SIZE) }