Files
hcie-rust-v3.05/hcie-iced-app/crates/hcie-iced-gui/src/main.rs
T

73 lines
1.7 KiB
Rust
Raw Normal View History

//! HCIE Iced GUI — entry point.
//!
//! Launches the Iced application with the HCIE image editor.
mod ai_chat;
mod ai_script;
mod app;
2026-07-15 17:42:05 +03:00
mod brush_import;
mod canvas;
mod cli;
mod color_picker;
mod dialogs;
mod dock;
mod i18n;
mod io;
mod panels;
mod raster;
mod screenshot;
mod script;
mod selection;
mod settings;
mod shape_sync;
mod sidebar;
mod theme;
mod vector_edit;
mod viewer;
mod widgets;
use app::HcieIcedApp;
fn main() {
let _ = env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info"))
.try_init();
log::info!("Starting HCIE Iced GUI");
let args = match cli::parse_args(std::env::args().skip(1)) {
Ok(args) => args,
Err(error) => {
eprintln!("{error}\n\n{}", cli::help_text());
std::process::exit(2);
}
};
if args.help {
println!("{}", cli::help_text());
return;
}
// Start tablet evdev listener
let tablet_state = std::sync::Arc::new(std::sync::Mutex::new(io::tablet::TabletState::new()));
io::tablet::start_evdev_listener(tablet_state.clone());
let load_path = args.load_path;
let screenshot = args.screenshot;
if let Err(error) = iced::application(
"HCIE — Iced Edition",
HcieIcedApp::update,
HcieIcedApp::view,
)
.subscription(HcieIcedApp::subscription)
.theme(HcieIcedApp::theme)
.window_size((1280.0, 800.0))
.decorations(false)
.run_with(move || {
let (mut app, init_task) = HcieIcedApp::new(load_path, screenshot);
app.tablet_state = tablet_state;
(app, init_task)
}) {
eprintln!("failed to run HCIE Iced GUI: {error}");
std::process::exit(1);
}
}