1 /*-------------------------------------------------------------------------
2  *
3  * command.h
4  *	  a list of commands and translations between keys and commands
5  *
6  * Portions Copyright (c) 2017-2021 Pavel Stehule
7  *
8  * IDENTIFICATION
9  *	  src/commands.h
10  *
11  *-------------------------------------------------------------------------
12  */
13 
14 #ifndef COMMANDS_H
15 #define COMMANDS_H
16 
17 #include "config.h"
18 
19 /*
20  * List of supported commands. Some these commands can be mapped to keys
21  */
22 typedef enum PspgCommand
23 {
24 	cmd_Invalid = 0,
25 	cmd_RESIZE_EVENT,
26 	cmd_MOUSE_EVENT,
27 
28 	cmd_ReleaseCols = 100,
29 	cmd_FreezeOneCol,
30 	cmd_FreezeTwoCols,
31 	cmd_FreezeThreeCols,
32 	cmd_FreezeFourCols,
33 	cmd_FreezeFiveCols,
34 	cmd_FreezeSixCols,
35 	cmd_FreezeSevenCols,
36 	cmd_FreezeEightCols,
37 	cmd_FreezeNineCols,
38 	cmd_SoundToggle,
39 	cmd_MouseToggle,
40 	cmd_UtfArtToggle,
41 	cmd_MenuAsciiArtToggle,
42 	cmd_CSSearchSet,
43 	cmd_CISearchSet,
44 	cmd_USSearchSet,
45 	cmd_HighlightLines,
46 	cmd_HighlightValues,
47 	cmd_NoHighlight,
48 
49 	cmd_SetTheme_MidnightBlack,
50 	cmd_SetTheme_Midnight,
51 	cmd_SetTheme_Foxpro,
52 	cmd_SetTheme_Pdmenu,
53 	cmd_SetTheme_White,
54 	cmd_SetTheme_Mutt,
55 	cmd_SetTheme_Pcfand,
56 	cmd_SetTheme_Green,
57 	cmd_SetTheme_Blue,
58 	cmd_SetTheme_WP,
59 	cmd_SetTheme_Lowcontrast,
60 	cmd_SetTheme_Darkcyan,
61 	cmd_SetTheme_Paradox,
62 	cmd_SetTheme_DBase,
63 	cmd_SetTheme_DBasemagenta,
64 	cmd_SetTheme_Red,
65 	cmd_SetTheme_Simple,
66 	cmd_SetTheme_SolarDark,
67 	cmd_SetTheme_SolarLight,
68 	cmd_SetTheme_GruvboxLight,
69 	cmd_SetTheme_TaoLight,
70 	cmd_SetTheme_Flatwhite,
71 	cmd_SetTheme_RelationalPipes,
72 	cmd_SetTheme_PaperColor,
73 	cmd_SetTheme,
74 	cmd_SaveSetup,
75 
76 	cmd_Escape,
77 	cmd_Quit,
78 	cmd_RawOutputQuit,
79 	cmd_ShowMenu,
80 	cmd_FlushBookmarks,
81 	cmd_ToggleBookmark,
82 	cmd_PrevBookmark,
83 	cmd_NextBookmark,
84 	cmd_CursorUp,
85 	cmd_CursorDown,
86 	cmd_ScrollUp,
87 	cmd_ScrollDown,
88 	cmd_ScrollUpHalfPage,
89 	cmd_ScrollDownHalfPage,
90 	cmd_MoveLeft,
91 	cmd_MoveRight,
92 	cmd_CursorFirstRow,
93 	cmd_CursorLastRow,
94 	cmd_CursorFirstRowPage,
95 	cmd_CursorLastRowPage,
96 	cmd_CursorHalfPage,
97 	cmd_PageUp,
98 	cmd_PageDown,
99 	cmd_ShowFirstCol,
100 	cmd_ShowLastCol,
101 	cmd_SaveData,
102 	cmd_SaveAsCSV,
103 	cmd_ForwardSearch,
104 	cmd_BackwardSearch,
105 	cmd_ForwardSearchInSelection,
106 	cmd_BackwardSearchInSelection,
107 	cmd_SearchNext,
108 	cmd_SearchPrev,
109 	cmd_SearchColumn,
110 	cmd_ShowTopBar,
111 	cmd_ShowBottomBar,
112 	cmd_RowNumToggle,
113 	cmd_GotoLine,
114 	cmd_GotoLineRel,
115 	cmd_ShowCursor,
116 	cmd_ShowVerticalCursor,
117 	cmd_BoldLabelsToggle,
118 	cmd_BoldCursorToggle,
119 	cmd_ShowScrollbar,
120 	cmd_SortAsc,
121 	cmd_SortDesc,
122 	cmd_OriginalSort,
123 	cmd_TogglePause,
124 	cmd_Refresh,
125 	cmd_SetCopyFile,
126 	cmd_SetCopyClipboard,
127 	cmd_UseClipboard_CSV,
128 	cmd_UseClipboard_TSVC,
129 	cmd_UseClipboard_SQL_values,
130 	cmd_UseClipboard_text,
131 	cmd_UseClipboard_pipe_separated,
132 	cmd_UseClipboard_INSERT,
133 	cmd_UseClipboard_INSERT_with_comments,
134 	cmd_TogleEmptyStringIsNULL,
135 	cmd_SetOwnNULLString,
136 
137 	cmd_Copy,
138 	cmd_CopyAllLines,
139 	cmd_CopyTopLines,
140 	cmd_CopyBottomLines,
141 	cmd_CopyLine,
142 	cmd_CopyLineExtended,
143 	cmd_CopyColumn,
144 	cmd_CopyMarkedLines,
145 	cmd_CopySearchedLines,
146 	cmd_CopySelected,
147 
148 	cmd_Mark,
149 	cmd_MarkColumn,
150 	cmd_MarkAll,
151 	cmd_Unmark,
152 	cmd_Mark_NestedCursorCommand,
153 
154 	cmd_BsCommand,
155 	cmd_ShowPrimaryScreen
156 } PspgCommand;
157 
158 extern void initialize_special_keycodes();
159 extern const char *cmd_string(int cmd);
160 extern int translate_event(int c, bool alt, Options *opts, int *nested_command);
161 extern bool require_complete_load(int cmd);
162 
163 extern bool is_cmd_RowNumToggle(int c, bool alt);
164 
165 extern int cmd_get_theme(int cmd);
166 extern int theme_get_cmd(int theme);
167 
168 #endif
169