diff --git a/CHANGELOG.md b/CHANGELOG.md index e6a6891..ed98f64 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/). - `placeholder` property to input widget. - `transition_duration` property to stack widget. - `widget_control` utility function for dynamic widget handling. +- `text` and `show_text` property to progressbar widget. ## [0.3.1] - 2025-11-01 diff --git a/Cargo.lock b/Cargo.lock index b19d902..e63c8d8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -526,13 +526,6 @@ dependencies = [ "x11rb", ] -[[package]] -name = "ewwii_anims" -version = "0.1.0" -dependencies = [ - "gtk4", -] - [[package]] name = "ewwii_plugin_api" version = "0.7.0" diff --git a/crates/ewwii/src/widgets/widget_definitions.rs b/crates/ewwii/src/widgets/widget_definitions.rs index f5d4957..0f145a8 100644 --- a/crates/ewwii/src/widgets/widget_definitions.rs +++ b/crates/ewwii/src/widgets/widget_definitions.rs @@ -1445,7 +1445,15 @@ pub(super) fn build_gtk_progress( } if let Ok(bar_value) = get_f64_prop(&props, "value", None) { - widget.set_fraction(bar_value / 100f64) + widget.set_fraction(bar_value / 100f64); + } + + if let Ok(bar_text) = get_string_prop(&props, "text", None) { + widget.set_text(Some(&bar_text)); + } + + if let Ok(show_text) = get_bool_prop(&props, "show_text", None) { + widget.set_show_text(show_text); } Ok(()) @@ -2636,17 +2644,18 @@ pub(super) fn resolve_rhai_widget_attrs(gtk_widget: >k4::Widget, props: &Map) } } + let css_provider = gtk4::CssProvider::new(); + let css_provider2 = css_provider.clone(); + if let Ok(style_str) = get_string_prop(&props, "style", None) { - let css_provider = gtk4::CssProvider::new(); let scss = format!("* {{ {} }}", style_str); css_provider.load_from_data(&grass::from_string(scss, &grass::Options::default())?); gtk_widget.style_context().add_provider(&css_provider, 950); } if let Ok(css_str) = get_string_prop(&props, "css", None) { - let css_provider = gtk4::CssProvider::new(); - css_provider.load_from_data(&grass::from_string(css_str, &grass::Options::default())?); - gtk_widget.style_context().add_provider(&css_provider, 950); + css_provider2.load_from_data(&grass::from_string(css_str, &grass::Options::default())?); + gtk_widget.style_context().add_provider(&css_provider2, 950); } if let Ok(valign) = get_string_prop(&props, "valign", None) {