Newer
Older
fn setup(mut commands: Commands, mut font_system: ResMut<CosmicFontSystem>) {
commands.spawn(Camera2dBundle::default());
let root = commands
.spawn(NodeBundle {
style: bevy::prelude::Style {
position_type: PositionType::Absolute,
width: Val::Percent(100.),
height: Val::Percent(100.),
..default()
},
..default()
})
.id();
let attrs = Attrs::new();
let serif_attrs = attrs.family(Family::Serif);
let mono_attrs = attrs.family(Family::Monospace);
let comic_attrs = attrs.family(Family::Name("Comic Neue"));
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
let lines = vec![
("B", attrs.weight(FontWeight::BOLD)),
("old ", attrs),
("I", attrs.style(FontStyle::Italic)),
("talic ", attrs),
("f", attrs),
("i ", attrs),
("f", attrs.weight(FontWeight::BOLD)),
("i ", attrs),
("f", attrs.style(FontStyle::Italic)),
("i ", attrs),
("Sans-Serif Normal ", attrs),
("Sans-Serif Bold ", attrs.weight(FontWeight::BOLD)),
("Sans-Serif Italic ", attrs.style(FontStyle::Italic)),
(
"Sans-Serif Bold Italic",
attrs.weight(FontWeight::BOLD).style(FontStyle::Italic),
),
("Serif Normal ", serif_attrs),
("Serif Bold ", serif_attrs.weight(FontWeight::BOLD)),
("Serif Italic ", serif_attrs.style(FontStyle::Italic)),
(
"Serif Bold Italic",
serif_attrs
.weight(FontWeight::BOLD)
.style(FontStyle::Italic),
),
("\n", attrs),
("Mono Normal ", mono_attrs),
("Mono Bold ", mono_attrs.weight(FontWeight::BOLD)),
("Mono Italic ", mono_attrs.style(FontStyle::Italic)),
(
"Mono Bold Italic",
mono_attrs.weight(FontWeight::BOLD).style(FontStyle::Italic),
),
("Comic Normal ", comic_attrs),
("Comic Bold ", comic_attrs.weight(FontWeight::BOLD)),
("Comic Italic ", comic_attrs.style(FontStyle::Italic)),
(
"Comic Bold Italic",
comic_attrs
.weight(FontWeight::BOLD)
.style(FontStyle::Italic),
),
("\n", attrs),
("R", attrs.color(bevy_color_to_cosmic(Color::RED))),
("A", attrs.color(bevy_color_to_cosmic(Color::ORANGE))),
("I", attrs.color(bevy_color_to_cosmic(Color::YELLOW))),
("N", attrs.color(bevy_color_to_cosmic(Color::GREEN))),
("B", attrs.color(bevy_color_to_cosmic(Color::BLUE))),
("O", attrs.color(bevy_color_to_cosmic(Color::INDIGO))),
("W ", attrs.color(bevy_color_to_cosmic(Color::PURPLE))),
("Red ", attrs.color(bevy_color_to_cosmic(Color::RED))),
("Orange ", attrs.color(bevy_color_to_cosmic(Color::ORANGE))),
("Yellow ", attrs.color(bevy_color_to_cosmic(Color::YELLOW))),
("Green ", attrs.color(bevy_color_to_cosmic(Color::GREEN))),
("Blue ", attrs.color(bevy_color_to_cosmic(Color::BLUE))),
("Indigo ", attrs.color(bevy_color_to_cosmic(Color::INDIGO))),
("Violet ", attrs.color(bevy_color_to_cosmic(Color::PURPLE))),
("U", attrs.color(bevy_color_to_cosmic(Color::PURPLE))),
("N", attrs.color(bevy_color_to_cosmic(Color::INDIGO))),
("I", attrs.color(bevy_color_to_cosmic(Color::BLUE))),
("C", attrs.color(bevy_color_to_cosmic(Color::GREEN))),
("O", attrs.color(bevy_color_to_cosmic(Color::YELLOW))),
("R", attrs.color(bevy_color_to_cosmic(Color::ORANGE))),
("N", attrs.color(bevy_color_to_cosmic(Color::RED))),
(
"生活,삶,जिंदगी 😀 FPS",
attrs.color(bevy_color_to_cosmic(Color::RED)),
),
let cosmic_edit_1 = commands
.spawn(CosmicEditBundle {
buffer: CosmicBuffer::new(&mut font_system, Metrics::new(18., 22.)).with_rich_text(
&mut font_system,
lines,
attrs,
),
let mut attrs_2 = Attrs::new();
attrs_2 = attrs_2.family(Family::Name("Times New Roman"));
attrs_2.color_opt = Some(bevy_color_to_cosmic(Color::PURPLE));
let cosmic_edit_2 = commands
.spawn(CosmicEditBundle {
buffer: CosmicBuffer::new(&mut font_system, Metrics::new(28., 36.)).with_text(
&mut font_system,
"Widget 2.\nClick on me =>",
attrs_2,
),
// Spawn the CosmicEditUiBundles as children of root
commands.entity(root).with_children(|parent| {
parent
.spawn(ButtonBundle {
style: Style {
width: Val::Percent(50.),
height: Val::Percent(100.),
..default()
},
background_color: BackgroundColor(Color::WHITE),
..default()
})
.insert(CosmicSource(cosmic_edit_1));
parent
.spawn(ButtonBundle {
background_color: BackgroundColor(Color::WHITE.with_a(0.8)),
style: Style {
width: Val::Percent(50.),
height: Val::Percent(100.),
..default()
},
..default()
})
.insert(CosmicSource(cosmic_edit_2));
.add_systems(Update, (change_active_editor_ui, deselect_editor_on_esc))