Add GTK app shell with wizard navigation, step indicator, and actions

7-step wizard flow (Workflow, Images, Resize, Convert, Compress,
Metadata, Output) with AdwNavigationView, step indicator dots,
Back/Next buttons, keyboard shortcuts (Alt+arrows, Alt+1-9),
and hamburger menu with Settings and History placeholders.
This commit is contained in:
2026-03-06 11:03:11 +02:00
parent be7d345aa9
commit 20f4c24538
4 changed files with 501 additions and 33 deletions

View File

@@ -1,38 +1,10 @@
use adw::prelude::*;
mod app;
mod step_indicator;
mod wizard;
const APP_ID: &str = "live.lashman.Pixstrip";
use gtk::prelude::*;
fn main() {
let app = adw::Application::builder()
.application_id(APP_ID)
.build();
app.connect_activate(build_ui);
let app = app::build_app();
app.run();
}
fn build_ui(app: &adw::Application) {
let header = adw::HeaderBar::new();
let title = adw::WindowTitle::new("Pixstrip", "Batch Image Processor");
header.set_title_widget(Some(&title));
let content = adw::StatusPage::builder()
.title("Pixstrip")
.description(format!("v{}", pixstrip_core::version()).as_str())
.icon_name("image-x-generic-symbolic")
.build();
let toolbar_view = adw::ToolbarView::new();
toolbar_view.add_top_bar(&header);
toolbar_view.set_content(Some(&content));
let window = adw::ApplicationWindow::builder()
.application(app)
.default_width(900)
.default_height(650)
.content(&toolbar_view)
.build();
window.present();
}