use std::path::PathBuf; use crate::model::{LaunchQuantization, PatternSpeed, SyncMode}; 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 ToggleSteps, 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, }, DeleteSteps { bank: usize, pattern: usize, steps: Vec, }, 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 HardenSteps, CopySteps, PasteSteps, LinkPasteSteps, DuplicateSteps, // Pattern playback (staging) StagePatternToggle { bank: usize, pattern: usize, }, CommitStagedChanges, ClearStagedChanges, // 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), OpenPatternPropsModal { bank: usize, pattern: usize, }, SetPatternProps { bank: usize, pattern: usize, name: Option, length: Option, speed: PatternSpeed, quantization: LaunchQuantization, sync_mode: SyncMode, }, // Page navigation PageLeft, PageRight, PageUp, PageDown, // Help navigation HelpNextTopic, HelpPrevTopic, HelpScrollDown(usize), HelpScrollUp(usize), HelpActivateSearch, HelpClearSearch, HelpSearchInput(char), HelpSearchBackspace, HelpSearchConfirm, // Dictionary navigation DictToggleFocus, DictNextCategory, DictPrevCategory, DictScrollDown(usize), DictScrollUp(usize), DictActivateSearch, DictClearSearch, DictSearchInput(char), DictSearchBackspace, DictSearchConfirm, // Patterns view PatternsCursorLeft, PatternsCursorRight, PatternsCursorUp, PatternsCursorDown, PatternsEnter, PatternsBack, PatternsTogglePlay, }