Newer
Older
use bevy::{core_pipeline::clear_color::ClearColorConfig, prelude::*, window::PrimaryWindow};
AttrsOwned, CosmicAttrs, CosmicEditBundle, CosmicEditPlugin, CosmicEditor, CosmicFontConfig,
CosmicMetrics, CosmicText, CosmicTextPosition, Focus,
fn setup(mut commands: Commands, windows: Query<&Window, With<PrimaryWindow>>) {
let camera_bundle = Camera2dBundle {
camera_2d: Camera2d {
clear_color: ClearColorConfig::Custom(Color::WHITE),
},
..default()
let mut attrs = cosmic_text::Attrs::new();
attrs = attrs.family(cosmic_text::Family::Name("Victor Mono"));
attrs = attrs.color(cosmic_text::Color::rgb(0x94, 0x00, 0xD3));
let scale_factor = primary_window.scale_factor() as f32;
let cosmic_edit = (
CosmicEditBundle {
metrics: CosmicMetrics {
font_size: 14.,
line_height: 18.,
scale_factor,
},
text_position: CosmicTextPosition::Center,
attrs: CosmicAttrs(AttrsOwned::new(attrs)),
text_setter: CosmicText::OneStyle("😀😀😀 x => y".to_string()),
// Use buttonbundle for layout
ButtonBundle {
style: Style {
width: Val::Percent(100.),
height: Val::Percent(100.),
// Needs to be set to prevent a bug where nothing is displayed
background_color: Color::WHITE.into(),
let cosmic_edit = commands.spawn(cosmic_edit).id();
fn print_text(
text_inputs_q: Query<&CosmicEditor, With<CosmicEditor>>,
mut previous_value: Local<String>,
) {
for text_input in text_inputs_q.iter() {
let current_text = text_input.get_text();
if current_text == *previous_value {
return;
}
*previous_value = current_text.clone();
info!("Widget text: {}", current_text);
}
}
let font_bytes: &[u8] = include_bytes!("../assets/fonts/VictorMono-Regular.ttf");
let font_config = CosmicFontConfig {
fonts_dir_path: None,
font_bytes: Some(vec![font_bytes]),
load_system_fonts: true,
};
.add_plugins(CosmicEditPlugin {
font_config,
..default()
})