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