feat(gui): egui skeleton with dark theme
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
43
crates/gui/src/app.rs
Normal file
43
crates/gui/src/app.rs
Normal file
@@ -0,0 +1,43 @@
|
||||
pub struct LogViewerApp;
|
||||
|
||||
impl Default for LogViewerApp {
|
||||
fn default() -> Self {
|
||||
Self
|
||||
}
|
||||
}
|
||||
|
||||
impl eframe::App for LogViewerApp {
|
||||
fn ui(&mut self, ui: &mut egui::Ui, _frame: &mut eframe::Frame) {
|
||||
egui::Panel::top("menu_bar").show_inside(ui, |ui| {
|
||||
egui::MenuBar::new().ui(ui, |ui| {
|
||||
ui.menu_button("File", |ui| {
|
||||
if ui.button("Open").clicked() {
|
||||
// TODO: file open dialog
|
||||
}
|
||||
if ui.button("Quit").clicked() {
|
||||
// TODO: quit
|
||||
}
|
||||
});
|
||||
ui.menu_button("Edit", |ui| {
|
||||
if ui.button("Find (Ctrl+F)").clicked() {
|
||||
// TODO: find
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
egui::Panel::bottom("status_bar").show_inside(ui, |ui| {
|
||||
ui.horizontal(|ui| {
|
||||
ui.label("Ready");
|
||||
});
|
||||
});
|
||||
|
||||
egui::CentralPanel::default().show_inside(ui, |ui| {
|
||||
ui.vertical_centered(|ui| {
|
||||
ui.add_space(100.0);
|
||||
ui.heading("Log Viewer");
|
||||
ui.label("Open a file to get started (File → Open)");
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -1 +1,21 @@
|
||||
fn main() {}
|
||||
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
|
||||
|
||||
mod app;
|
||||
|
||||
fn main() -> eframe::Result {
|
||||
let options = eframe::NativeOptions {
|
||||
viewport: egui::ViewportBuilder::default()
|
||||
.with_inner_size([1200.0, 800.0])
|
||||
.with_min_inner_size([600.0, 400.0]),
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
eframe::run_native(
|
||||
"Log Viewer",
|
||||
options,
|
||||
Box::new(|cc| {
|
||||
cc.egui_ctx.set_visuals(egui::Visuals::dark());
|
||||
Ok(Box::new(app::LogViewerApp))
|
||||
}),
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user