diff --git a/src/main.rs b/src/main.rs index 76e5f2b..07cf2f5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,7 @@ #![windows_subsystem = "windows"] -use bevy::{prelude::*, winit::WinitSettings}; +use bevy::{prelude::*, utils::Duration, winit::WinitSettings}; use bevy_egui::{ - egui::{self}, + egui::{self, Color32}, EguiContexts, EguiPlugin, }; @@ -25,14 +25,29 @@ struct NeedsStrip { value: bool, } +#[derive(Resource, Debug)] +struct UITimer(Timer); + +#[derive(Resource, Debug)] +struct Msg { + value: String, +} + fn main() { App::new() - .insert_resource(WinitSettings::desktop_app()) + .insert_resource(WinitSettings { + focused_mode: bevy::winit::UpdateMode::Continuous, + unfocused_mode: bevy::winit::UpdateMode::reactive_low_power(Duration::from_millis(10)), + }) .insert_resource(InputText { value: "".to_string(), }) + .insert_resource(Msg { + value: "".to_string(), + }) .insert_resource(NeedsSort { value: false }) .insert_resource(NeedsStrip { value: false }) + .insert_resource(UITimer(Timer::from_seconds(3., TimerMode::Once))) .add_plugins(DefaultPlugins.set(WindowPlugin { primary_window: Some(Window { title: "dsort".to_string(), @@ -41,6 +56,7 @@ fn main() { ..Default::default() })) .add_plugins(EguiPlugin) + .add_systems(Startup, ui_startup) .add_systems(Update, ui_system) .add_systems(Update, process_text) .run(); @@ -78,13 +94,26 @@ fn button_clicked(button: egui::Response) -> bool { button.clicked() || button.drag_stopped() } +fn ui_startup(mut contexts: EguiContexts, mut timer: ResMut) { + contexts.ctx_mut().set_visuals(egui::Visuals::light()); + let duration = timer.0.duration(); + timer.0.set_elapsed(duration); +} + fn ui_system( mut contexts: EguiContexts, mut input_text: ResMut, mut needs_sort: ResMut, mut needs_strip: ResMut, + time: Res