|
|
@@ -151,6 +151,32 @@ pub async fn create_title(
|
|
|
text: &str,
|
|
|
y: &mut f32,
|
|
|
) -> SceneNodePtr {
|
|
|
+ // Background gradient
|
|
|
+ let bg_node = create_vector_art(&format!("{}_bg", name));
|
|
|
+ let prop = bg_node.get_property("rect").unwrap();
|
|
|
+ prop.set_default_f32(0, 0.).unwrap();
|
|
|
+ prop.set_default_f32(1, *y).unwrap();
|
|
|
+ prop.set_default_expr(2, expr::load_var("w")).unwrap();
|
|
|
+ prop.set_default_f32(3, (TITLE_PADDING * 2. + TITLE_FONTSIZE) / 2.).unwrap();
|
|
|
+ bg_node.set_property_u32(atom, Role::App, "z_index", 1).unwrap();
|
|
|
+ let mut shape = VectorShape::new();
|
|
|
+ shape.add_smooth_vertical_gradient(
|
|
|
+ expr::const_f32(0.),
|
|
|
+ expr::const_f32(0.),
|
|
|
+ expr::load_var("w"),
|
|
|
+ expr::load_var("h"),
|
|
|
+ [0., 0.9059, 0.9216, 0.20],
|
|
|
+ [0., 0.8784, 1., 0.],
|
|
|
+ 8,
|
|
|
+ 0.2,
|
|
|
+ );
|
|
|
+ bg_node.set_property_shape(atom, Role::App, "shape", shape).unwrap();
|
|
|
+ let bg_node = bg_node
|
|
|
+ .setup(|me| VectorArt::new(me, app.renderer.clone(), app.redraw_trigger.clone()))
|
|
|
+ .await;
|
|
|
+ layer.link(bg_node);
|
|
|
+
|
|
|
+ // Title text
|
|
|
let node = create_text(name);
|
|
|
let prop = node.get_property("rect").unwrap();
|
|
|
prop.set_default_f32(0, PADDING_X).unwrap();
|
|
|
@@ -160,7 +186,7 @@ pub async fn create_title(
|
|
|
node.get_property("font_size").unwrap().set_default_f32(0, TITLE_FONTSIZE).unwrap();
|
|
|
node.set_property_str(atom, Role::App, "text", text).unwrap();
|
|
|
let prop = node.get_property("text_color").unwrap();
|
|
|
- prop.set_default_f32_multi(&[1., 1., 1., 1.]).unwrap();
|
|
|
+ prop.set_default_f32_multi(&[0.6471, 0.8667, 0.8157, 1.]).unwrap();
|
|
|
node.set_property_u32(atom, Role::App, "z_index", 2).unwrap();
|
|
|
let node = node
|
|
|
.setup(|me| {
|