new: initial implementation
This commit is contained in:
parent
5ea7f6de91
commit
69d911ccb8
3 changed files with 67 additions and 7 deletions
7
Cargo.lock
generated
7
Cargo.lock
generated
|
@ -1669,6 +1669,7 @@ version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bevy",
|
"bevy",
|
||||||
"bevy_egui",
|
"bevy_egui",
|
||||||
|
"vsort",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -3867,6 +3868,12 @@ version = "0.9.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
|
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "vsort"
|
||||||
|
version = "0.2.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "11331a1b48f99ea6bb27faae41399d08783d055ddee131e1b1b70a854207ebf8"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "walkdir"
|
name = "walkdir"
|
||||||
version = "2.5.0"
|
version = "2.5.0"
|
||||||
|
|
|
@ -5,4 +5,6 @@ edition = "2021"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
bevy = "0.14"
|
bevy = "0.14"
|
||||||
bevy_egui = "0.28"
|
bevy_egui = "0.28"
|
||||||
|
# natord = "1.0"
|
||||||
|
vsort = "0.2"
|
||||||
|
|
63
src/main.rs
63
src/main.rs
|
@ -1,16 +1,67 @@
|
||||||
use bevy::prelude::*;
|
use bevy::{prelude::*, winit::WinitSettings};
|
||||||
use bevy_egui::{egui, EguiContexts, EguiPlugin};
|
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() {
|
fn main() {
|
||||||
App::new()
|
App::new()
|
||||||
|
.insert_resource(WinitSettings::desktop_app())
|
||||||
|
.insert_resource(InputText {
|
||||||
|
value: "".to_string(),
|
||||||
|
})
|
||||||
|
.insert_resource(OutputText {
|
||||||
|
value: "".to_string(),
|
||||||
|
})
|
||||||
.add_plugins(DefaultPlugins)
|
.add_plugins(DefaultPlugins)
|
||||||
.add_plugins(EguiPlugin)
|
.add_plugins(EguiPlugin)
|
||||||
.add_systems(Update, ui_example_system)
|
.add_systems(Update, ui_system)
|
||||||
|
.add_systems(Update, process_text)
|
||||||
.run();
|
.run();
|
||||||
}
|
}
|
||||||
|
|
||||||
fn ui_example_system(mut contexts: EguiContexts) {
|
fn process_text(input_text: Res<InputText>, mut output_text: ResMut<OutputText>) {
|
||||||
egui::Window::new("Hello").show(contexts.ctx_mut(), |ui| {
|
let mut arr = input_text.value.lines().collect::<Vec<_>>();
|
||||||
ui.label("world");
|
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
Reference in a new issue