diff --git a/src/api/mod.rs b/src/api/mod.rs index e69de29..a557bff 100644 --- a/src/api/mod.rs +++ b/src/api/mod.rs @@ -0,0 +1 @@ +pub mod search; diff --git a/src/api/search.rs b/src/api/search.rs index e69de29..f08f44c 100644 --- a/src/api/search.rs +++ b/src/api/search.rs @@ -0,0 +1,3 @@ +pub fn perform_search(query: &str) { + println!("Performing search for: {}", query); +} diff --git a/src/app.rs b/src/app.rs index 9073580..4874958 100644 --- a/src/app.rs +++ b/src/app.rs @@ -1,13 +1,15 @@ +use crate::api::search::perform_search; use eframe::egui; #[derive(Default)] -pub struct AniShio {} +pub struct AniShio { + search_query: String, +} impl AniShio { pub fn new(cc: &eframe::CreationContext<'_>) -> Self { - let mut visuals = egui::Visuals::dark(); // or ::light() + let mut visuals = egui::Visuals::dark(); visuals.panel_fill = egui::Color32::from_rgba_unmultiplied(163, 136, 219, 80); - visuals.override_text_color = Some(egui::Color32::BLACK); cc.egui_ctx.set_visuals(visuals); Self::default() } @@ -18,10 +20,35 @@ impl eframe::App for AniShio { egui::Panel::left("sidebar") .resizable(false) .show_separator_line(false) - .show_inside(ui, |ui| ui.label(egui::RichText::new("AniShio").size(28.0))); + .show_inside(ui, |ui| { + ui.label( + egui::RichText::new("AniShio") + .size(28.0) + .color(egui::Color32::BLACK), + ); + // ui.visuals_mut().override_text_color = Some(egui::Color32::BLACK); + if ui.button("Home").clicked() { + println!("Home button clicked"); + } + if ui.button("Library").clicked() { + println!("Library button clicked"); + } + if ui.button("Settings").clicked() { + println!("Settings button clicked"); + } + }); egui::CentralPanel::default().show_inside(ui, |ui| { - ui.group(|ui| { - ui.label("Title name"); + ui.horizontal(|ui| { + let response = egui::TextEdit::singleline(&mut self.search_query) + .hint_text("Search...") + .show(ui) + .response; + if (response.lost_focus() && ui.input(|i| i.key_pressed(egui::Key::Enter))) { + perform_search(&self.search_query); + } + if (response.lost_focus() && ui.input(|i| i.key_pressed(egui::Key::Escape))) { + self.search_query.clear(); + } }); }); } diff --git a/src/main.rs b/src/main.rs index 47b66e3..d4d7594 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,4 @@ +pub mod api; mod app; use app::AniShio;