Skip to content

Instantly share code, notes, and snippets.

@richardanaya
Last active July 26, 2020 15:58
Show Gist options
  • Select an option

  • Save richardanaya/bf6036414b95fb1709159a79bca7d359 to your computer and use it in GitHub Desktop.

Select an option

Save richardanaya/bf6036414b95fb1709159a79bca7d359 to your computer and use it in GitHub Desktop.
GTK-rs set global CSS
extern crate gtk;
use crate::gtk::prelude::*;
use gtk::*;
fn main() {
if gtk::init().is_err() {
println!("Failed to initialize GTK.");
return;
}
let glade_src = include_str!("app.glade");
let builder = gtk::Builder::from_string(glade_src);
let window: gtk::Window = builder.get_object("window1").unwrap();
let button: gtk::Button = builder.get_object("button1").unwrap();
// set global style
let screen = window.get_screen().unwrap();
let style = include_str!("style.css");
let provider = CssProvider::new();
provider.load_from_data(style.as_bytes()).unwrap();
gtk::StyleContext::add_provider_for_screen(&screen, &provider, STYLE_PROVIDER_PRIORITY_APPLICATION);
button.connect_clicked(move |_| println!("foo"));
window.show_all();
gtk::main();
}
/* set styles that affect everythint */
* {
color: red;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment