|
|
@@ -30,7 +30,7 @@ use crate::{
|
|
|
},
|
|
|
expr::{self, Compiler},
|
|
|
gfx::{gfxtag, Renderer},
|
|
|
- mesh::{COLOR_CYAN, COLOR_TEAL},
|
|
|
+ mesh::{Color, COLOR_CYAN, COLOR_PALECYAN, COLOR_TEAL},
|
|
|
prop::{PropertyAtomicGuard, PropertyFloat32, Role},
|
|
|
scene::{Pimpl, SceneNodePtr, Slot},
|
|
|
text,
|
|
|
@@ -203,15 +203,7 @@ pub async fn create_title(
|
|
|
|
|
|
*y += TITLE_PADDING * 2. + TITLE_FONTSIZE + 1.;
|
|
|
|
|
|
- create_separator(
|
|
|
- &app.renderer,
|
|
|
- &app.redraw_trigger,
|
|
|
- atom,
|
|
|
- layer,
|
|
|
- &format!("{name}_separator"),
|
|
|
- y,
|
|
|
- )
|
|
|
- .await;
|
|
|
+ create_separator(app, atom, layer, &format!("{}_separator", name), y, false).await;
|
|
|
node
|
|
|
}
|
|
|
|
|
|
@@ -232,11 +224,11 @@ pub async fn create_subtitle(
|
|
|
prop.set_default_f32(0, PADDING_X).unwrap();
|
|
|
prop.set_default_f32(1, *y + PADDING_Y).unwrap();
|
|
|
prop.set_default_f32(2, 1000.).unwrap();
|
|
|
- prop.set_default_f32(3, TITLE_FONTSIZE).unwrap();
|
|
|
- node.get_property("font_size").unwrap().set_default_f32(0, TITLE_FONTSIZE).unwrap();
|
|
|
+ prop.set_default_f32(3, SUBTITLE_FONTSIZE).unwrap();
|
|
|
+ node.get_property("font_size").unwrap().set_default_f32(0, SUBTITLE_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(&COLOR_PALECYAN).unwrap();
|
|
|
node.set_property_u32(atom, Role::App, "z_index", 2).unwrap();
|
|
|
let node = node
|
|
|
.setup(|me| {
|
|
|
@@ -251,17 +243,7 @@ pub async fn create_subtitle(
|
|
|
.await;
|
|
|
layer.link(node.clone());
|
|
|
|
|
|
- *y += PADDING_Y * 2. + TITLE_FONTSIZE + 1.;
|
|
|
-
|
|
|
- create_separator(
|
|
|
- &app.renderer,
|
|
|
- &app.redraw_trigger,
|
|
|
- atom,
|
|
|
- layer,
|
|
|
- &format!("{}_separator", text),
|
|
|
- y,
|
|
|
- )
|
|
|
- .await;
|
|
|
+ *y += PADDING_Y * 2. + SUBTITLE_FONTSIZE + 1.;
|
|
|
|
|
|
node
|
|
|
}
|
|
|
@@ -304,7 +286,12 @@ pub async fn create_separator_expr(
|
|
|
name: &str,
|
|
|
cc: &mut Compiler,
|
|
|
y_expr: &str,
|
|
|
+ dimmed: bool,
|
|
|
) -> SceneNodePtr {
|
|
|
+ let color = match dimmed {
|
|
|
+ true => [0.1333, 0.1725, 0.1725, 1.],
|
|
|
+ false => [0.2, 0.2745, 0.2784, 1.],
|
|
|
+ };
|
|
|
let sep_node = create_vector_art(name);
|
|
|
let prop = sep_node.get_property("rect").unwrap();
|
|
|
prop.set_default_f32(0, 0.).unwrap();
|
|
|
@@ -319,7 +306,7 @@ pub async fn create_separator_expr(
|
|
|
expr::const_f32(0.),
|
|
|
expr::load_var("w"),
|
|
|
expr::const_f32(1.),
|
|
|
- [0.2, 0.2745, 0.2784, 1.],
|
|
|
+ color,
|
|
|
);
|
|
|
sep_node.set_property_shape(atom, Role::App, "shape", shape).unwrap();
|
|
|
let sep_node = sep_node
|
|
|
@@ -332,13 +319,17 @@ pub async fn create_separator_expr(
|
|
|
/// Creates a separator line at the current y position and increments y.
|
|
|
/// Returns the separator node after setup, linked to the layer
|
|
|
pub async fn create_separator(
|
|
|
- renderer: &Renderer,
|
|
|
- redraw: &RedrawTrigger,
|
|
|
+ app: &App,
|
|
|
atom: &mut PropertyAtomicGuard,
|
|
|
layer: &SceneNodePtr,
|
|
|
name: &str,
|
|
|
y: &mut f32,
|
|
|
+ dimmed: bool,
|
|
|
) -> SceneNodePtr {
|
|
|
+ let color = match dimmed {
|
|
|
+ true => [0.1333, 0.1725, 0.1725, 1.],
|
|
|
+ false => [0.2, 0.2745, 0.2784, 1.],
|
|
|
+ };
|
|
|
let sep_node = create_vector_art(name);
|
|
|
let prop = sep_node.get_property("rect").unwrap();
|
|
|
prop.set_default_f32(0, 0.).unwrap();
|
|
|
@@ -352,10 +343,12 @@ pub async fn create_separator(
|
|
|
expr::const_f32(0.),
|
|
|
expr::load_var("w"),
|
|
|
expr::const_f32(1.),
|
|
|
- [0.2, 0.2745, 0.2784, 1.],
|
|
|
+ color,
|
|
|
);
|
|
|
sep_node.set_property_shape(atom, Role::App, "shape", shape).unwrap();
|
|
|
- let sep_node = sep_node.setup(|me| VectorArt::new(me, renderer.clone(), redraw.clone())).await;
|
|
|
+ let sep_node = sep_node
|
|
|
+ .setup(|me| VectorArt::new(me, app.renderer.clone(), app.redraw_trigger.clone()))
|
|
|
+ .await;
|
|
|
layer.link(sep_node.clone());
|
|
|
|
|
|
*y += 1.;
|