generated from luke-else/egui-template
41 lines
1.0 KiB
Rust
41 lines
1.0 KiB
Rust
use egui::Key;
|
|
|
|
use crate::app::metar::Metar;
|
|
|
|
use super::Tab;
|
|
|
|
#[derive(Debug, PartialEq, Eq)]
|
|
pub struct MetarTab {
|
|
pub icaos: Vec<String>,
|
|
pub metars: Vec<String>,
|
|
pub metar: Metar
|
|
}
|
|
|
|
impl Default for MetarTab {
|
|
fn default() -> Self {
|
|
Self {
|
|
icaos: vec!["".to_string()],
|
|
metars: vec![],
|
|
metar: Metar::default()
|
|
}
|
|
}
|
|
}
|
|
|
|
impl Tab for MetarTab {
|
|
async fn display_tab(&mut self, ctx: &egui::Context, frame: &egui::Frame) {
|
|
egui::CentralPanel::default().frame(*frame).show(ctx, |ui| {
|
|
// Given Key pressed, place focus on next item
|
|
let new_icao_focus: bool = ui.input(|i| i.key_pressed(Key::Space));
|
|
|
|
for icao in self.icaos.iter_mut() {
|
|
ui.text_edit_singleline(icao);
|
|
}
|
|
|
|
if ui.button("Add More").clicked() || new_icao_focus {
|
|
self.icaos.push("".to_string());
|
|
self.metar.api.make_request(String::from("google.com"));
|
|
}
|
|
});
|
|
}
|
|
}
|