Skip to main content

mxr_tui/
action.rs

1#[derive(Debug, Clone, PartialEq, Eq)]
2pub enum Action {
3    // Navigation (vim-native)
4    MoveDown,
5    MoveUp,
6    JumpTop,
7    JumpBottom,
8    PageDown,
9    PageUp,
10    ViewportTop,
11    ViewportMiddle,
12    ViewportBottom,
13    CenterCurrent,
14    SwitchPane,
15    OpenSelected,
16    Back,
17    QuitView,
18    ClearSelection,
19    OpenMailboxScreen,
20    OpenSearchScreen,
21    OpenRulesScreen,
22    OpenDiagnosticsScreen,
23    OpenAccountsScreen,
24    OpenTab1,
25    OpenTab2,
26    OpenTab3,
27    OpenTab4,
28    OpenTab5,
29    // Search
30    OpenSearch,
31    SubmitSearch,
32    CloseSearch,
33    CycleSearchMode,
34    NextSearchResult,
35    PrevSearchResult,
36    // Gmail go-to navigation (A005)
37    GoToInbox,
38    GoToStarred,
39    GoToSent,
40    GoToDrafts,
41    GoToAllMail,
42    OpenSubscriptions,
43    GoToLabel,
44    // Command palette
45    OpenCommandPalette,
46    CloseCommandPalette,
47    // Sync
48    SyncNow,
49    // Message view
50    OpenMessageView,
51    CloseMessageView,
52    ToggleMailListMode,
53    // Label / saved search selection
54    SelectLabel(mxr_core::LabelId),
55    SelectSavedSearch(String, mxr_core::SearchMode),
56    ClearFilter,
57    RefreshRules,
58    ToggleRuleEnabled,
59    DeleteRule,
60    ShowRuleHistory,
61    ShowRuleDryRun,
62    OpenRuleFormNew,
63    OpenRuleFormEdit,
64    SaveRuleForm,
65    RefreshDiagnostics,
66    RefreshAccounts,
67    OpenAccountFormNew,
68    SaveAccountForm,
69    TestAccountForm,
70    ReauthorizeAccountForm,
71    SetDefaultAccount,
72    GenerateBugReport,
73
74    // --- Phase 2: Email actions (Gmail-native A005) ---
75    Compose,
76    Reply,
77    ReplyAll,
78    Forward,
79    Archive,
80    MarkReadAndArchive,
81    Trash,
82    Spam,
83    Star,
84    MarkRead,
85    MarkUnread,
86    ApplyLabel,
87    MoveToLabel,
88    Unsubscribe,
89    ConfirmUnsubscribeOnly,
90    ConfirmUnsubscribeAndArchiveSender,
91    CancelUnsubscribe,
92    Snooze,
93    OpenInBrowser,
94
95    // --- Phase 2: Reader mode ---
96    ToggleReaderMode,
97    ToggleSignature,
98
99    // --- Phase 2: Batch operations (A007) ---
100    ToggleSelect,
101    VisualLineMode,
102    PatternSelect(PatternKind),
103
104    // --- Phase 2: Attachments ---
105    AttachmentList,
106
107    // --- Phase 2: Links ---
108    OpenLinks,
109
110    // --- Phase 2: Layout ---
111    ToggleFullscreen,
112
113    // --- Phase 2: Export ---
114    ExportThread,
115
116    // Help
117    Help,
118
119    // No-op (for unrecognized keys)
120    Noop,
121}
122
123#[derive(Debug, Clone, PartialEq, Eq)]
124pub enum PatternKind {
125    All,
126    None,
127    Read,
128    Unread,
129    Starred,
130    Thread,
131}