use std::path::PathBuf; use crate::engine::PatternChange; use crate::model::PatternSpeed; use crate::state::{FlashKind, Modal, PatternField}; #[allow(dead_code)] pub enum AppCommand { // Playback TogglePlaying, TempoUp, TempoDown, // Navigation NextStep, PrevStep, StepUp, StepDown, ToggleFocus, SelectEditBank(usize), SelectEditPattern(usize), // Pattern editing ToggleStep, LengthIncrease, LengthDecrease, SpeedIncrease, SpeedDecrease, SetLength { bank: usize, pattern: usize, length: usize, }, SetSpeed { bank: usize, pattern: usize, speed: PatternSpeed, }, // Script editing SaveEditorToStep, CompileCurrentStep, CompileAllSteps, DeleteStep { bank: usize, pattern: usize, step: usize, }, ResetPattern { bank: usize, pattern: usize, }, ResetBank { bank: usize, }, CopyPattern { bank: usize, pattern: usize, }, PastePattern { bank: usize, pattern: usize, }, CopyBank { bank: usize, }, PasteBank { bank: usize, }, // Clipboard CopyStep, PasteStep, LinkPasteStep, HardenStep, // Pattern playback QueuePatternChange(PatternChange), TogglePatternPlayback { bank: usize, pattern: usize, }, // Project RenameBank { bank: usize, name: Option, }, RenamePattern { bank: usize, pattern: usize, name: Option, }, Save(PathBuf), Load(PathBuf), // UI SetStatus(String), ClearStatus, Flash { message: String, duration_ms: u64, kind: FlashKind, }, OpenModal(Modal), CloseModal, OpenPatternModal(PatternField), // Page navigation PageLeft, PageRight, PageUp, PageDown, // Help navigation HelpNextTopic, HelpPrevTopic, HelpScrollDown(usize), HelpScrollUp(usize), // Dictionary navigation DictToggleFocus, DictNextCategory, DictPrevCategory, DictScrollDown(usize), DictScrollUp(usize), // Patterns view PatternsCursorLeft, PatternsCursorRight, PatternsCursorUp, PatternsCursorDown, PatternsEnter, PatternsBack, PatternsTogglePlay, }