Files
Cagire/src/commands.rs

166 lines
3.0 KiB
Rust

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<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
HardenSteps,
CopySteps,
PasteSteps,
LinkPasteSteps,
DuplicateSteps,
// Pattern playback (staging)
StagePatternToggle {
bank: usize,
pattern: usize,
},
CommitStagedChanges,
ClearStagedChanges,
// Project
RenameBank {
bank: usize,
name: Option<String>,
},
RenamePattern {
bank: usize,
pattern: usize,
name: Option<String>,
},
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<String>,
length: Option<usize>,
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,
}