|
|
@@ -53,6 +53,7 @@ pub const COLOR_SCHEME: ColorScheme = ColorScheme::DarkMode;
|
|
|
//pub const COLOR_SCHEME: ColorScheme = ColorScheme::PaperLight;
|
|
|
|
|
|
mod android_ui_consts {
|
|
|
+ pub const NETSTATUS_ICON_SIZE: f32 = 140.;
|
|
|
pub const EMOJI_PICKER_ICON_SIZE: f32 = 100.;
|
|
|
}
|
|
|
|
|
|
@@ -96,6 +97,7 @@ mod ui_consts {
|
|
|
not(feature = "emulate-android")
|
|
|
))]
|
|
|
mod ui_consts {
|
|
|
+ pub const NETSTATUS_ICON_SIZE: f32 = 60.;
|
|
|
pub const EMOJI_PICKER_ICON_SIZE: f32 = 40.;
|
|
|
pub use super::desktop_paths::*;
|
|
|
}
|
|
|
@@ -113,6 +115,8 @@ enum ColorScheme {
|
|
|
|
|
|
pub async fn make(app: &App, window: SceneNodePtr) {
|
|
|
let mut cc = Compiler::new();
|
|
|
+ cc.add_const_f32("NETSTATUS_ICON_SIZE", NETSTATUS_ICON_SIZE);
|
|
|
+
|
|
|
let atom = &mut PropertyAtomicGuard::new();
|
|
|
|
|
|
if COLOR_SCHEME == ColorScheme::DarkMode {
|
|
|
@@ -222,6 +226,99 @@ pub async fn make(app: &App, window: SceneNodePtr) {
|
|
|
window.clone().link(node);
|
|
|
}
|
|
|
|
|
|
+ let netlayer_node = create_layer("netstatus_layer");
|
|
|
+ let prop = netlayer_node.get_property("rect").unwrap();
|
|
|
+ let code = cc.compile("w - NETSTATUS_ICON_SIZE").unwrap();
|
|
|
+ prop.clone().set_expr(atom, Role::App, 0, code).unwrap();
|
|
|
+ prop.clone().set_f32(atom, Role::App, 1, 0.).unwrap();
|
|
|
+ prop.clone().set_f32(atom, Role::App, 2, NETSTATUS_ICON_SIZE).unwrap();
|
|
|
+ prop.clone().set_f32(atom, Role::App, 3, NETSTATUS_ICON_SIZE).unwrap();
|
|
|
+ netlayer_node.set_property_bool(atom, Role::App, "is_visible", true).unwrap();
|
|
|
+ netlayer_node.set_property_u32(atom, Role::App, "z_index", 2).unwrap();
|
|
|
+ let netlayer_node =
|
|
|
+ netlayer_node.setup(|me| Layer::new(me, app.render_api.clone(), app.ex.clone())).await;
|
|
|
+ window.clone().link(netlayer_node.clone());
|
|
|
+
|
|
|
+ let node = create_vector_art("net0");
|
|
|
+ let prop = node.get_property("rect").unwrap();
|
|
|
+ prop.clone().set_f32(atom, Role::App, 0, 0.).unwrap();
|
|
|
+ prop.clone().set_f32(atom, Role::App, 1, 0.).unwrap();
|
|
|
+ prop.clone().set_expr(atom, Role::App, 2, expr::load_var("w")).unwrap();
|
|
|
+ prop.clone().set_expr(atom, Role::App, 3, expr::load_var("h")).unwrap();
|
|
|
+ node.set_property_bool(atom, Role::App, "is_visible", true).unwrap();
|
|
|
+ node.set_property_u32(atom, Role::App, "z_index", 0).unwrap();
|
|
|
+ let mut shape = VectorShape::new();
|
|
|
+ shape.add_filled_box(
|
|
|
+ expr::const_f32(0.),
|
|
|
+ expr::const_f32(0.),
|
|
|
+ expr::load_var("w"),
|
|
|
+ expr::load_var("h"),
|
|
|
+ [1., 0., 0., 1.],
|
|
|
+ );
|
|
|
+ let net0_node =
|
|
|
+ node.setup(|me| VectorArt::new(me, shape, app.render_api.clone(), app.ex.clone())).await;
|
|
|
+ netlayer_node.clone().link(net0_node);
|
|
|
+
|
|
|
+ let node = create_vector_art("net1");
|
|
|
+ let prop = node.get_property("rect").unwrap();
|
|
|
+ prop.clone().set_f32(atom, Role::App, 0, 0.).unwrap();
|
|
|
+ prop.clone().set_f32(atom, Role::App, 1, 0.).unwrap();
|
|
|
+ prop.clone().set_expr(atom, Role::App, 2, expr::load_var("w")).unwrap();
|
|
|
+ prop.clone().set_expr(atom, Role::App, 3, expr::load_var("h")).unwrap();
|
|
|
+ node.set_property_bool(atom, Role::App, "is_visible", false).unwrap();
|
|
|
+ node.set_property_u32(atom, Role::App, "z_index", 0).unwrap();
|
|
|
+ let mut shape = VectorShape::new();
|
|
|
+ shape.add_filled_box(
|
|
|
+ expr::const_f32(0.),
|
|
|
+ expr::const_f32(0.),
|
|
|
+ expr::load_var("w"),
|
|
|
+ expr::load_var("h"),
|
|
|
+ [0., 0.3, 0., 1.],
|
|
|
+ );
|
|
|
+ let net1_node =
|
|
|
+ node.setup(|me| VectorArt::new(me, shape, app.render_api.clone(), app.ex.clone())).await;
|
|
|
+ netlayer_node.clone().link(net1_node);
|
|
|
+
|
|
|
+ let node = create_vector_art("net2");
|
|
|
+ let prop = node.get_property("rect").unwrap();
|
|
|
+ prop.clone().set_f32(atom, Role::App, 0, 0.).unwrap();
|
|
|
+ prop.clone().set_f32(atom, Role::App, 1, 0.).unwrap();
|
|
|
+ prop.clone().set_expr(atom, Role::App, 2, expr::load_var("w")).unwrap();
|
|
|
+ prop.clone().set_expr(atom, Role::App, 3, expr::load_var("h")).unwrap();
|
|
|
+ node.set_property_bool(atom, Role::App, "is_visible", false).unwrap();
|
|
|
+ node.set_property_u32(atom, Role::App, "z_index", 0).unwrap();
|
|
|
+ let mut shape = VectorShape::new();
|
|
|
+ shape.add_filled_box(
|
|
|
+ expr::const_f32(0.),
|
|
|
+ expr::const_f32(0.),
|
|
|
+ expr::load_var("w"),
|
|
|
+ expr::load_var("h"),
|
|
|
+ [0., 0.6, 0., 1.],
|
|
|
+ );
|
|
|
+ let net2_node =
|
|
|
+ node.setup(|me| VectorArt::new(me, shape, app.render_api.clone(), app.ex.clone())).await;
|
|
|
+ netlayer_node.clone().link(net2_node);
|
|
|
+
|
|
|
+ let node = create_vector_art("net3");
|
|
|
+ let prop = node.get_property("rect").unwrap();
|
|
|
+ prop.clone().set_f32(atom, Role::App, 0, 0.).unwrap();
|
|
|
+ prop.clone().set_f32(atom, Role::App, 1, 0.).unwrap();
|
|
|
+ prop.clone().set_expr(atom, Role::App, 2, expr::load_var("w")).unwrap();
|
|
|
+ prop.clone().set_expr(atom, Role::App, 3, expr::load_var("h")).unwrap();
|
|
|
+ node.set_property_bool(atom, Role::App, "is_visible", false).unwrap();
|
|
|
+ node.set_property_u32(atom, Role::App, "z_index", 0).unwrap();
|
|
|
+ let mut shape = VectorShape::new();
|
|
|
+ shape.add_filled_box(
|
|
|
+ expr::const_f32(0.),
|
|
|
+ expr::const_f32(0.),
|
|
|
+ expr::load_var("w"),
|
|
|
+ expr::load_var("h"),
|
|
|
+ [0., 1., 0., 1.],
|
|
|
+ );
|
|
|
+ let net3_node =
|
|
|
+ node.setup(|me| VectorArt::new(me, shape, app.render_api.clone(), app.ex.clone())).await;
|
|
|
+ netlayer_node.clone().link(net3_node);
|
|
|
+
|
|
|
let emoji_meshes = emoji_picker::EmojiMeshes::new(
|
|
|
app.render_api.clone(),
|
|
|
app.text_shaper.clone(),
|