Skip to content

Commit

Permalink
ui: datepicker works!
Browse files Browse the repository at this point in the history
  • Loading branch information
philiplinden committed Aug 13, 2024
1 parent 845595b commit e8c9044
Show file tree
Hide file tree
Showing 6 changed files with 34 additions and 25 deletions.
2 changes: 2 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion spacetime/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,9 @@ iyes_progress = { version = "0.12.0", features = [
rand = "0.8"
big_space = "0.7.0"
hifitime = "3.9.0"
lofitime = { path = "../lofitime" }
particular = { version = "0.7.0", features = ["gpu", "parallel"] }
log = { workspace = true }
log = { workspace = true }
bevy_egui = { version = "0.28.0", features = ["serde"] }
avian2d = { version = "0.1.1", features = [
"default-collider",
Expand All @@ -34,6 +35,7 @@ bevy-inspector-egui = { version = "0.25.1", features = ["highlight_changes"] }
bevy_pancam = { version = "0.13.0", features = ["bevy_egui"] }
bevy_prototype_lyon = "0.12.0"
egui_extras = { version = "0.28.1", features = ["datepicker"] }
chrono = { version = "0.4.38", default-features = false }

[dev-dependencies]
bevy-inspector-egui = { version = "0.25.1", features = ["highlight_changes"] }
Expand Down
5 changes: 0 additions & 5 deletions spacetime/src/ui/datepicker.rs

This file was deleted.

27 changes: 27 additions & 0 deletions spacetime/src/ui/datetime.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
use bevy::prelude::*;
use bevy_egui::egui::{self, Widget};
use egui_extras::DatePickerButton;
use hifitime::prelude::*;
use lofitime::{HifiDateTime, LofiDateTime};

use crate::physics::time::CoordinateTime;

pub fn set_time_menu(ui: &mut egui::Ui, coordinate_time: &mut ResMut<CoordinateTime>) {
ui.menu_button("Coordinate Time...", |ui| {
ui.menu_button("Scale...", |ui| {
ui.vertical(|ui| {
ui.radio_value(&mut coordinate_time.scale, TimeScale::UTC, "UTC");
ui.radio_value(&mut coordinate_time.scale, TimeScale::TAI, "TAI");
ui.radio_value(&mut coordinate_time.scale, TimeScale::BDT, "BDT");
});
});
ui.menu_button("Epoch...", |ui| {
let mut selected_date = coordinate_time.epoch().to_lofi_naive().date();
if DatePickerButton::new(&mut selected_date).ui(ui).changed() {
// Update the Time resource with the selected date
let new_time = selected_date.and_time(chrono::NaiveTime::from_hms_milli_opt(0, 0, 0, 0).unwrap());
coordinate_time.start_epoch = Some(new_time.and_utc().to_hifi_epoch());
}
});
});
}
3 changes: 1 addition & 2 deletions spacetime/src/ui/mod.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
mod camera;
mod cursor;
mod datepicker;
mod datetime;
mod diagnostics;
mod shell;

Expand All @@ -14,7 +14,6 @@ impl PluginGroup for UserInterfacePlugins {
.add(bevy_egui::EguiPlugin)
.add(camera::plugin)
.add(cursor::plugin)
.add(datepicker::plugin)
.add(diagnostics::plugin)
.add(shell::plugin)
}
Expand Down
18 changes: 1 addition & 17 deletions spacetime/src/ui/shell.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ fn update_shell(
egui::TopBottomPanel::top("top_panel").show(ctx, |ui| {
egui::menu::bar(ui, |ui| {
ui.with_layout(egui::Layout::left_to_right(egui::Align::Center), |ui| {
set_time_menu(ui, &mut coordinate_time);
super::datetime::set_time_menu(ui, &mut coordinate_time);
});
ui.with_layout(egui::Layout::right_to_left(egui::Align::Center), |ui| {
egui::warn_if_debug_build(ui);
Expand All @@ -25,19 +25,3 @@ fn update_shell(
});
});
}


fn set_time_menu(ui: &mut egui::Ui, coordinate_time: &mut ResMut<CoordinateTime>) {
ui.menu_button("Coordinate Time...", |ui| {
ui.menu_button("Scale...", |ui| {
ui.vertical(|ui| {
ui.radio_value(&mut coordinate_time.scale, TimeScale::UTC, "UTC");
ui.radio_value(&mut coordinate_time.scale, TimeScale::TAI, "TAI");
ui.radio_value(&mut coordinate_time.scale, TimeScale::BDT, "BDT");
});
});
ui.menu_button("Epoch...", |ui| {
// ui.add(egui_extras::DatePickerButton::new(&mut coordinate_time.start_epoch));
});
});
}

0 comments on commit e8c9044

Please sign in to comment.