mod files, cycle of buttons

master
aintercourse 2 years ago
parent 4d5b17275a
commit 0a88c0fb25

@ -0,0 +1,103 @@
#![allow(dead_code)]
use std::sync::mpsc::{Receiver, Sender};
use std::rc::Rc;
use std::sync::{mpsc, Arc, Mutex};
use std::thread::ThreadId;
use std::{
collections::btree_set::Union,
io::{self, ErrorKind},
thread,
time::Duration,
};
use eframe::{
egui::{self, Button, RichText},
epaint::Vec2,
};
//custom types
#[repr(u8)]
#[derive(Debug, Clone, Copy, PartialEq)]
enum PanelCurrent {
GSO,
IMP,
GR,
Iron,
Mode,
}
impl Default for PanelCurrent {
fn default() -> Self {
PanelCurrent::Mode
}
}
#[derive(Debug)]
struct Panel {
id: PanelCurrent,
name: String,
}
#[derive(Debug)]
struct panelSelector {
panel: [Panel; 5],
}
impl Default for panelSelector {
fn default() -> Self {
panelSelector {
panel: [
Panel {
id: (PanelCurrent::GSO),
name: ("ГСО".to_string()),
},
Panel {
id: (PanelCurrent::IMP),
name: ("ИМП".to_string()),
},
Panel {
id: (PanelCurrent::GR),
name: ("Газ-разбавит.".to_string()),
},
Panel {
id: (PanelCurrent::Iron),
name: ("Оборудование".to_string()),
},
Panel {
id: (PanelCurrent::Mode),
name: ("Режим".to_string()),
},
],
}
}
}
pub fn mode_screen( ctx: &egui::Context, ui: &mut egui::Ui, snd: Sender<u8>, rx: Receiver<u8>) {
let panels: panelSelector = panelSelector::default();
let mut panel_current: PanelCurrent = PanelCurrent::default();
egui::CentralPanel::default().show_inside( ui, |ui| {
egui::TopBottomPanel::top("mode_panel")
.default_height(35.0)
.resizable(false)
.show_inside(ui, |ui| {
//ui.horizontal_centered(|ui| {
// ui.heading("Режим");
//});
ui.horizontal(|ui| {
for panel in panels.panel.iter() {
if ui
.add_sized(Vec2::new(100.0, 24.0), Button::new(panel.name.as_str()))
.clicked()
{
panel_current = panel.id;
println!("{:#?}", panel_current);
};
}
});
});
});
}
Loading…
Cancel
Save