diff --git a/wgui/doc/widgets.md b/wgui/doc/widgets.md index 0587c25..a1f6573 100644 --- a/wgui/doc/widgets.md +++ b/wgui/doc/widgets.md @@ -104,6 +104,10 @@ _Translated by key_ _Text size in pixel units_ +`wrap`: "1" | "0" (default: "0") + +_Enable text wrapping?_ + `color`: #FFAABB | #FFAABBCC `align`: "left" | "right" | "center" | "justified" | "end" diff --git a/wgui/src/parser/widget_label.rs b/wgui/src/parser/widget_label.rs index 2ef6ddc..71c567e 100644 --- a/wgui/src/parser/widget_label.rs +++ b/wgui/src/parser/widget_label.rs @@ -2,7 +2,8 @@ use crate::{ i18n::Translation, layout::WidgetID, parser::{ - AttribPair, ParserContext, ParserFile, parse_children, parse_widget_universal, + AttribPair, ParserContext, ParserFile, parse_check_i32, parse_children, parse_i32, parse_widget_universal, + print_invalid_attrib, style::{parse_style, parse_text_style}, }, widget::label::{WidgetLabel, WidgetLabelParams}, @@ -23,6 +24,13 @@ pub fn parse_widget_label<'a>( for pair in attribs { let (key, value) = (pair.attrib.as_ref(), pair.value.as_ref()); match key { + "wrap" => { + if let Some(num) = parse_i32(value) { + params.style.wrap = num == 1; + } else { + print_invalid_attrib(key, value); + } + } "text" => { if !value.is_empty() { params.content = Translation::from_raw_text(value); diff --git a/wlx-overlay-s/src/assets/gui/toast.xml b/wlx-overlay-s/src/assets/gui/toast.xml index deb0ae9..c916932 100644 --- a/wlx-overlay-s/src/assets/gui/toast.xml +++ b/wlx-overlay-s/src/assets/gui/toast.xml @@ -1,14 +1,27 @@ -
- -
-