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    OpenLogs,
74    OpenDiagnosticsPaneDetails,
75
76    // --- Phase 2: Email actions (Gmail-native A005) ---
77    Compose,
78    Reply,
79    ReplyAll,
80    Forward,
81    Archive,
82    MarkReadAndArchive,
83    Trash,
84    Spam,
85    Star,
86    MarkRead,
87    MarkUnread,
88    ApplyLabel,
89    MoveToLabel,
90    Unsubscribe,
91    ConfirmUnsubscribeOnly,
92    ConfirmUnsubscribeAndArchiveSender,
93    CancelUnsubscribe,
94    Snooze,
95    OpenInBrowser,
96
97    // --- Phase 2: Reader mode ---
98    ToggleReaderMode,
99    ToggleSignature,
100
101    // --- Phase 2: Batch operations (A007) ---
102    ToggleSelect,
103    VisualLineMode,
104    PatternSelect(PatternKind),
105
106    // --- Phase 2: Attachments ---
107    AttachmentList,
108
109    // --- Phase 2: Links ---
110    OpenLinks,
111
112    // --- Phase 2: Layout ---
113    ToggleFullscreen,
114
115    // --- Phase 2: Export ---
116    ExportThread,
117
118    // Help
119    Help,
120
121    // No-op (for unrecognized keys)
122    Noop,
123}
124
125#[derive(Debug, Clone, PartialEq, Eq)]
126pub enum PatternKind {
127    All,
128    None,
129    Read,
130    Unread,
131    Starred,
132    Thread,
133}