|
|
|
@ -61,11 +61,50 @@ pub fn fonts_ui(
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
pub fn set_active_font(
|
|
|
|
pub fn ui_control_font(
|
|
|
|
events: Query<&ui::TargetAsset<Font>, Added<ui::Active>>,
|
|
|
|
events: Query<
|
|
|
|
|
|
|
|
(&Interaction, &ui::TargetAsset<Font>, Option<&ui::Active>),
|
|
|
|
|
|
|
|
(With<Button>, Changed<Interaction>),
|
|
|
|
|
|
|
|
>,
|
|
|
|
mut font: ResMut<FontInfo>,
|
|
|
|
mut font: ResMut<FontInfo>,
|
|
|
|
) {
|
|
|
|
) {
|
|
|
|
events
|
|
|
|
events
|
|
|
|
.iter()
|
|
|
|
.iter()
|
|
|
|
.for_each(|ui::TargetAsset { handle }| font.default = Some(handle.clone()));
|
|
|
|
.filter_map(
|
|
|
|
|
|
|
|
|(interaction, ui::TargetAsset { handle }, active)| match interaction {
|
|
|
|
|
|
|
|
Interaction::Pressed => Some((handle, active)),
|
|
|
|
|
|
|
|
_ => None,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
.for_each(|(handle, active)| match active {
|
|
|
|
|
|
|
|
Some(_) => font.default = None,
|
|
|
|
|
|
|
|
None => font.default = Some(handle.clone()),
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pub fn sync_font(
|
|
|
|
|
|
|
|
query: Query<(Entity, &ui::TargetAsset<Font>)>,
|
|
|
|
|
|
|
|
font: Res<FontInfo>,
|
|
|
|
|
|
|
|
mut commands: Commands,
|
|
|
|
|
|
|
|
) {
|
|
|
|
|
|
|
|
if font.is_changed() || font.is_added() {
|
|
|
|
|
|
|
|
match &font.default {
|
|
|
|
|
|
|
|
Some(current_handle) => {
|
|
|
|
|
|
|
|
query
|
|
|
|
|
|
|
|
.iter()
|
|
|
|
|
|
|
|
.for_each(|(entity, ui::TargetAsset { handle })| {
|
|
|
|
|
|
|
|
if *handle == *current_handle {
|
|
|
|
|
|
|
|
commands.entity(entity).insert(ui::Active);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
commands.entity(entity).remove::<ui::Active>();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
None => {
|
|
|
|
|
|
|
|
query.iter().for_each(|(entity, _)| {
|
|
|
|
|
|
|
|
commands.entity(entity).remove::<ui::Active>();
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|