upgrade gui

This commit is contained in:
2025-04-12 23:15:23 +02:00
parent 129c51791e
commit c31c319021
5 changed files with 58 additions and 16 deletions

View File

@@ -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),
);
});
});
}
}

View File

@@ -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::<Omelt>::default())
Ok(Box::new(Omelt::new(
"new_file.oeuf",
File::create("new_file.oeuf")?,
)))
}),
);
}