diff --git a/Cargo.lock b/Cargo.lock index 3075013..ca226b2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3,7 +3,7 @@ version = 4 [[package]] -name = "Omlet" +name = "Omelt" version = "0.1.0" dependencies = [ "eframe", diff --git a/Cargo.toml b/Cargo.toml index 52dfb45..563e7aa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "Omlet" +name = "Omelt" version = "0.1.0" edition = "2024" diff --git a/fonts/atwriter.ttf b/fonts/atwriter.ttf new file mode 100644 index 0000000..41f9c33 Binary files /dev/null and b/fonts/atwriter.ttf differ diff --git a/src/gui.rs b/src/gui.rs index 87ad907..2d1fb60 100644 --- a/src/gui.rs +++ b/src/gui.rs @@ -1,24 +1,57 @@ -use eframe::egui; +use eframe::egui::{self}; +use eframe::epaint::text::{FontInsert, InsertFontFamily}; +use std::fs::File; +use std::io::prelude::*; + pub struct Omelt { + file_name: String, text: String, + file: File, } -impl Default for Omelt { - fn default() -> Self { +impl Omelt { + pub fn new(file_name: &str, file: File) -> Self { Self { - text: "Test of text.".to_owned(), + file_name: file_name.to_owned(), + text: "".to_owned(), + file: file, } } + pub fn update_txt(&mut self) { + let _ = self.file.read_to_string(&mut self.text); + } +} + +fn add_font(ctx: &egui::Context) { + ctx.add_font(FontInsert::new( + "atwriter", + egui::FontData::from_static(include_bytes!("../fonts/atwriter.ttf")), + vec![ + InsertFontFamily { + family: egui::FontFamily::Proportional, + priority: egui::epaint::text::FontPriority::Highest, + }, + InsertFontFamily { + family: egui::FontFamily::Monospace, + priority: egui::epaint::text::FontPriority::Lowest, + }, + ], + )) } impl eframe::App for Omelt { fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) { + self.update_txt(); + add_font(ctx); + ctx.set_zoom_factor(2.0); egui::CentralPanel::default().show(ctx, |ui| { - ui.heading("Omelt"); - ui.add_sized( - ui.available_size(), - egui::TextEdit::multiline(&mut self.text).code_editor(), - ); + ui.heading(&self.file_name); + egui::ScrollArea::vertical().show(ui, |ui| { + ui.add_sized( + ui.available_size(), + egui::TextEdit::multiline(&mut self.text), + ); + }); }); } } diff --git a/src/main.rs b/src/main.rs index 7bee5ba..416e5a4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -51,7 +51,6 @@ fn main() -> std::io::Result<()> { after_compression.write_all(string.as_bytes())?; to_compress.seek(SeekFrom::Start(0))?; let map = tree_to_map(&mut tree, true); - eprintln!("map = {:?}", map); let trad = body_to_bin(&mut to_compress, map); let trad_bin = string_to_binary(&trad); let len_body = trad.len() as u32; @@ -105,8 +104,15 @@ fn main() -> std::io::Result<()> { } } } else { - println!("Illegal arguments !"); - display_options(); + let options = eframe::NativeOptions { + viewport: egui::ViewportBuilder::default().with_inner_size([640.0, 480.0]), + ..Default::default() + }; + let _ = eframe::run_native( + "Omelt", + options, + Box::new(|_| Ok(Box::new(Omelt::new(&r, File::open(&r)?)))), + ); } } None => { @@ -114,12 +120,15 @@ fn main() -> std::io::Result<()> { viewport: egui::ViewportBuilder::default().with_inner_size([640.0, 480.0]), ..Default::default() }; + let _ = eframe::run_native( "Omelt", options, Box::new(|_| { - // This gives us image support: - Ok(Box::::default()) + Ok(Box::new(Omelt::new( + "new_file.oeuf", + File::create("new_file.oeuf")?, + ))) }), ); }