new: initial implementation
This commit is contained in:
parent
5ea7f6de91
commit
69d911ccb8
3 changed files with 67 additions and 7 deletions
63
src/main.rs
63
src/main.rs
|
@ -1,16 +1,67 @@
|
|||
use bevy::prelude::*;
|
||||
use bevy_egui::{egui, EguiContexts, EguiPlugin};
|
||||
use bevy::{prelude::*, winit::WinitSettings};
|
||||
use bevy_egui::{
|
||||
egui::{self},
|
||||
EguiContexts, EguiPlugin,
|
||||
};
|
||||
|
||||
#[cfg(windows)]
|
||||
const LINE_ENDING: &str = "\r\n";
|
||||
#[cfg(not(windows))]
|
||||
const LINE_ENDING: &str = "\n";
|
||||
|
||||
#[derive(Resource)]
|
||||
struct InputText {
|
||||
value: String,
|
||||
}
|
||||
|
||||
#[derive(Resource)]
|
||||
struct OutputText {
|
||||
value: String,
|
||||
}
|
||||
|
||||
fn main() {
|
||||
App::new()
|
||||
.insert_resource(WinitSettings::desktop_app())
|
||||
.insert_resource(InputText {
|
||||
value: "".to_string(),
|
||||
})
|
||||
.insert_resource(OutputText {
|
||||
value: "".to_string(),
|
||||
})
|
||||
.add_plugins(DefaultPlugins)
|
||||
.add_plugins(EguiPlugin)
|
||||
.add_systems(Update, ui_example_system)
|
||||
.add_systems(Update, ui_system)
|
||||
.add_systems(Update, process_text)
|
||||
.run();
|
||||
}
|
||||
|
||||
fn ui_example_system(mut contexts: EguiContexts) {
|
||||
egui::Window::new("Hello").show(contexts.ctx_mut(), |ui| {
|
||||
ui.label("world");
|
||||
fn process_text(input_text: Res<InputText>, mut output_text: ResMut<OutputText>) {
|
||||
let mut arr = input_text.value.lines().collect::<Vec<_>>();
|
||||
arr.sort_by(|&a, &b| vsort::compare(a, b));
|
||||
output_text.value = arr.join(LINE_ENDING);
|
||||
}
|
||||
|
||||
fn ui_system(
|
||||
mut contexts: EguiContexts,
|
||||
mut input_text: ResMut<InputText>,
|
||||
mut output_text: ResMut<OutputText>,
|
||||
) {
|
||||
egui::CentralPanel::default().show(contexts.ctx_mut(), |ui| {
|
||||
ui.horizontal(|ui| {
|
||||
ui.vertical(|ui| {
|
||||
ui.label("input: ");
|
||||
ui.add_sized(
|
||||
[ui.available_width() / 2.0, ui.available_height()],
|
||||
egui::TextEdit::multiline(&mut input_text.value),
|
||||
);
|
||||
});
|
||||
ui.vertical(|ui| {
|
||||
ui.label("output: ");
|
||||
ui.add_sized(
|
||||
[ui.available_width() / 2.0, ui.available_height()],
|
||||
egui::TextEdit::multiline(&mut output_text.value),
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue