Add :css property to widgets
This commit is contained in:
parent
a470bb816f
commit
dc3129aee2
1 changed files with 7 additions and 0 deletions
|
@ -142,6 +142,7 @@ pub(super) fn resolve_widget_attrs(bargs: &mut BuilderArgs, gtk_widget: >k::Wi
|
||||||
}
|
}
|
||||||
|
|
||||||
let css_provider = gtk::CssProvider::new();
|
let css_provider = gtk::CssProvider::new();
|
||||||
|
let css_provider2 = css_provider.clone();
|
||||||
|
|
||||||
let visible_result: Result<_> = try {
|
let visible_result: Result<_> = try {
|
||||||
let visible_expr = bargs.widget_use.attrs.attrs.get("visible").map(|x| x.value.as_simplexpr()).transpose()?;
|
let visible_expr = bargs.widget_use.attrs.attrs.get("visible").map(|x| x.value.as_simplexpr()).transpose()?;
|
||||||
|
@ -207,6 +208,12 @@ pub(super) fn resolve_widget_attrs(bargs: &mut BuilderArgs, gtk_widget: >k::Wi
|
||||||
css_provider.load_from_data(format!("* {{ {} }}", style).as_bytes())?;
|
css_provider.load_from_data(format!("* {{ {} }}", style).as_bytes())?;
|
||||||
gtk_widget.style_context().add_provider(&css_provider, gtk::STYLE_PROVIDER_PRIORITY_APPLICATION)
|
gtk_widget.style_context().add_provider(&css_provider, gtk::STYLE_PROVIDER_PRIORITY_APPLICATION)
|
||||||
},
|
},
|
||||||
|
// @prop css - scss code applied to the widget, i.e.: `button {color: red;}`
|
||||||
|
prop(css: as_string) {
|
||||||
|
gtk_widget.reset_style();
|
||||||
|
css_provider2.load_from_data(grass::from_string(css, &grass::Options::default())?.as_bytes())?;
|
||||||
|
gtk_widget.style_context().add_provider(&css_provider2, gtk::STYLE_PROVIDER_PRIORITY_APPLICATION)
|
||||||
|
},
|
||||||
});
|
});
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue