diff options
Diffstat (limited to 'labs/src/main.rs')
| -rw-r--r-- | labs/src/main.rs | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/labs/src/main.rs b/labs/src/main.rs new file mode 100644 index 0000000..f672971 --- /dev/null +++ b/labs/src/main.rs @@ -0,0 +1,42 @@ +mod lab1; +mod lab3; +mod lab6; +mod lab7; +mod lab_trait; + +use eframe::egui; +use lab_trait::Lab; + +fn main() { + let options = eframe::NativeOptions::default(); + eframe::run_native( + "Криптографические методы защиты информации", + options, + Box::new(|_cc| Box::new(Application::default())), + ); +} + +struct Application { + labs: Vec<Box<dyn Lab>>, +} + +impl Default for Application { + fn default() -> Self { + Self { + labs: vec![ + Box::new(lab1::Window::default()), + Box::new(lab3::Window::default()), + Box::new(lab6::Window::default()), + Box::new(lab7::Window::default()), + ], + } + } +} + +impl eframe::App for Application { + fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) { + for window in &mut self.labs { + egui::Window::new(window.get_name()).show(ctx, |ui| window.update(ui)); + } + } +} |