From 49225218f8267166cf66703f4e8f0ff5a566c512 Mon Sep 17 00:00:00 2001 From: lunarydess Date: Fri, 21 Feb 2025 00:33:36 +0100 Subject: [PATCH] :sparkles: image loading works mew --- Cargo.toml | 18 +++++- src/app.rs | 156 ++++++++++++++++++++++++++------------------------- src/leaf.png | Bin 0 -> 43426 bytes src/lib.rs | 3 + src/main.rs | 7 ++- 5 files changed, 103 insertions(+), 81 deletions(-) create mode 100644 src/leaf.png diff --git a/Cargo.toml b/Cargo.toml index 3eb54fd..ad54c6b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,14 @@ [package] name = "application_catnip" version = "0.0.0-develop" +authors = ["lunarydess"] +license = "Apache-2.0" edition = "2024" +rust-version = "1.85" +publish = false + +[package.metadata.cargo-machete] +ignored = ["image"] [dependencies] egui = "0.31" @@ -11,7 +18,12 @@ eframe = { version = "0.31", default-features = false, features = [ "wayland", "wgpu" ] } rfd = "0.15" -env_logger = "0.11" +env_logger = { version = "0.11", default-features = false, features = [ + "auto-color", + "humantime", +] } serde = { version = "1", features = ["derive"] } -egui_code_editor = { git = "https://github.com/lunarydess/Application-Catnip-Editor.git", version = "0.3.0-develop" } -egui-modal = { git = "https://github.com/mkrueger/egui-modal.git", branch = "mkrueger/egui0.31"} +egui_code_editor = { git = "https://github.com/lunarydess/Application-Catnip-Editor.git", version = "0.3.0-develop", rev = "0754452" } +egui-modal = { git = "https://github.com/mkrueger/egui-modal.git", branch = "mkrueger/egui0.31" } +egui_extras = {version = "0.31", default-features = false, features = ["default", "all_loaders"]} +image = { version = "0.25", default-features = false, features = ["jpeg", "png"] } diff --git a/src/app.rs b/src/app.rs index 57b6926..07acaee 100644 --- a/src/app.rs +++ b/src/app.rs @@ -1,3 +1,4 @@ +use eframe::emath::Align; use eframe::epaint::text::TextWrapMode; use egui::ThemePreference; use egui_code_editor::{CodeEditor, ColorTheme, Syntax, DEFAULT_THEMES}; @@ -20,7 +21,7 @@ pub struct CatnipApp { impl Default for CatnipApp { fn default() -> Self { Self { - label: "Hello World!".to_owned(), + label: "println!(\"meow\");".to_owned(), editor_theme: ColorTheme::default(), editor_syntax: Syntax::default(), editor_text: "".to_owned(), @@ -40,62 +41,83 @@ impl CatnipApp { impl eframe::App for CatnipApp { fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) { + let modal = Modal::new(ctx, "open folder modal :3"); + modal.show(|ui| { + modal.title(ui, "Hello world!"); + modal.frame(ui, |ui| { + modal.body(ui, "This is a modal."); + }); + modal.buttons(ui, |ui| { + if modal.button(ui, "meow").clicked() { + }; + if modal.button(ui, "close").clicked() { + }; + }); + }); + // top bar egui::TopBottomPanel::top("top_panel").show(ctx, |ui| { egui::menu::bar(ui, |ui| { - let modal = Modal::new(ctx, "open folder modal :3"); - modal.show(|ui| { - modal.title(ui, "Hello world!"); - modal.frame(ui, |ui| { - modal.body(ui, "This is a modal."); - }); - modal.buttons(ui, |ui| { - if modal.button(ui, "close").clicked() { - println!("Hello world!") - }; - }); - }); - - let is_web = cfg!(target_arch = "wasm32"); - if !is_web { - ui.menu_button("File", |ui| { - ui.menu_button("New …", |_| {}); - ui.menu_button("Open …", |ui| { - if ui.button("File").clicked() { - if let Some(path) = rfd::FileDialog::new().pick_file() { - self.editor_text = - fs::read_to_string(path.display().to_string()).unwrap(); - } - } - if ui.button("Folder").clicked() { - if !modal.is_open() { - modal.open(); - } - } - }); - if ui.button("Quit").clicked() { - ctx.send_viewport_cmd(egui::ViewportCommand::Close); + ui.menu_button("File", |ui| { + ui.menu_button("New …", |_| {}); + ui.menu_button("Open …", |ui| { + if ui.button("File").clicked() + && let Some(path) = rfd::FileDialog::new().pick_file() + { + self.editor_text = + fs::read_to_string(path.display().to_string()).unwrap(); + ui.close_menu(); + } + if ui.button("Folder").clicked() && !modal.is_open() { + modal.open(); + ui.close_menu(); } }); - } - - let mut theme = ui.ctx().options(|opt| opt.theme_preference); - egui::ComboBox::from_label("") - .wrap_mode(TextWrapMode::Wrap) - .selected_text(format!("{:?}", theme)) - .show_ui(ui, |ui| { - ui.selectable_value(&mut theme, ThemePreference::System, "💻 System"); - ui.selectable_value(&mut theme, ThemePreference::Light, "☀ Light"); - ui.selectable_value(&mut theme, ThemePreference::Dark, "🌙 Dark"); - }); - ui.ctx().set_theme(theme); + if ui.button("Quit").clicked() { + ctx.send_viewport_cmd(egui::ViewportCommand::Close); + } + }); }); }); // main content egui::CentralPanel::default().show(ctx, |ui| { - ui.vertical_centered(|ui| { - ui.horizontal(|ui| { + ui.image(egui::include_image!("leaf.png")) + .on_hover_text_at_pointer("test meow"); + ui.with_layout(egui::Layout::left_to_right(Align::Max), |ui| { + CodeEditor::default() + .id_source("cat editor :3") + .with_fontsize(12.0) + .with_theme(self.editor_theme) + .with_syntax(self.editor_syntax.clone()) + .with_numlines(true) + .vscroll(true) + .stick_to_bottom(true) + .show(ui, &mut self.editor_text); + }); + + // header example: + // ui.heading("eframe template"); + + /* config examples with serde: + ui.horizontal(|ui| { + ui.label("Write something: "); + ui.te xt_edit_singleline(&mut self.label); + }); + + ui.add(egui::Slider::new(&mut self.value, 0.0..=10.0).text("value")); + */ + }); + + // bottom bar + egui::TopBottomPanel::bottom("bottom_panel").show(ctx, |ui| { + ui.horizontal(|ui| { + ui.spacing_mut().item_spacing.x = 0.0; + ui.label("made by "); + ui.hyperlink_to("lunarydess", "https://github.com/lunarydess"); + ui.label(" with ♡"); + + ui.with_layout(egui::Layout::right_to_left(Align::Center), |ui| { // editor theme selector egui::ComboBox::from_label("Theme") .wrap_mode(TextWrapMode::Wrap) @@ -129,36 +151,18 @@ impl eframe::App for CatnipApp { ); }); }); + + let mut theme = ui.ctx().options(|opt| opt.theme_preference); + egui::ComboBox::from_label("") + .wrap_mode(TextWrapMode::Wrap) + .selected_text(format!("{:?}", theme)) + .show_ui(ui, |ui| { + ui.selectable_value(&mut theme, ThemePreference::System, "💻 System"); + ui.selectable_value(&mut theme, ThemePreference::Light, "☀ Light"); + ui.selectable_value(&mut theme, ThemePreference::Dark, "🌙 Dark"); + }); + ui.ctx().set_theme(theme); }); - CodeEditor::default() - .id_source("cat editor :3") - .with_fontsize(12.0) - .with_theme(self.editor_theme) - .with_syntax(self.editor_syntax.clone()) - .with_numlines(true) - .show(ui, &mut self.editor_text); - }); - - // header example: - // ui.heading("eframe template"); - - /* config examples with serde: - ui.horizontal(|ui| { - ui.label("Write something: "); - ui.te xt_edit_singleline(&mut self.label); - }); - - ui.add(egui::Slider::new(&mut self.value, 0.0..=10.0).text("value")); - */ - }); - - // bottom bar - egui::TopBottomPanel::bottom("bottom_panel").show(ctx, |ui| { - ui.horizontal(|ui| { - ui.spacing_mut().item_spacing.x = 0.0; - ui.label("made by "); - ui.hyperlink_to("lunarydess", "https://github.com/lunarydess"); - ui.label(" with ♡"); }); }); } diff --git a/src/leaf.png b/src/leaf.png new file mode 100644 index 0000000000000000000000000000000000000000..d5247860142ae5eed87c01bcef7098b26d4ff4d2 GIT binary patch literal 43426 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::default()) + }), ) .expect("TODO: panic message"); }