This source file includes following definitions.
- create_file_menu
- create_edit_menu
- create_search_replace_menu
- create_command_menu
- create_format_menu
- create_window_menu
- create_options_menu
- edit_drop_menu_cmd
- edit_init_menu
- edit_menu_cmd
- edit_drop_hotkey_menu
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 #include <config.h>
34
35 #include <stdio.h>
36 #include <stdarg.h>
37 #include <sys/types.h>
38 #include <unistd.h>
39 #include <string.h>
40 #include <ctype.h>
41 #include <sys/stat.h>
42 #include <stdlib.h>
43
44 #include "lib/global.h"
45
46 #include "lib/tty/tty.h"
47 #include "lib/tty/key.h"
48 #include "lib/widget.h"
49
50 #include "src/setup.h"
51 #include "src/keymap.h"
52
53 #include "edit-impl.h"
54 #include "editwidget.h"
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70 static GList *
71 create_file_menu (void)
72 {
73 GList *entries = NULL;
74
75 entries = g_list_prepend (entries, menu_entry_new (_("&Open file..."), CK_EditFile));
76 entries = g_list_prepend (entries, menu_entry_new (_("&New"), CK_EditNew));
77 entries = g_list_prepend (entries, menu_entry_new (_("&Close"), CK_Close));
78 entries = g_list_prepend (entries, menu_entry_new (_("&History..."), CK_History));
79 entries = g_list_prepend (entries, menu_separator_new ());
80 entries = g_list_prepend (entries, menu_entry_new (_("&Save"), CK_Save));
81 entries = g_list_prepend (entries, menu_entry_new (_("Save &as..."), CK_SaveAs));
82 entries = g_list_prepend (entries, menu_separator_new ());
83 entries = g_list_prepend (entries, menu_entry_new (_("&Insert file..."), CK_InsertFile));
84 entries = g_list_prepend (entries, menu_entry_new (_("Cop&y to file..."), CK_BlockSave));
85 entries = g_list_prepend (entries, menu_separator_new ());
86 entries = g_list_prepend (entries, menu_entry_new (_("&User menu..."), CK_UserMenu));
87 entries = g_list_prepend (entries, menu_separator_new ());
88 entries = g_list_prepend (entries, menu_entry_new (_("A&bout..."), CK_About));
89 entries = g_list_prepend (entries, menu_separator_new ());
90 entries = g_list_prepend (entries, menu_entry_new (_("&Quit"), CK_Quit));
91
92 return g_list_reverse (entries);
93 }
94
95
96
97 static GList *
98 create_edit_menu (void)
99 {
100 GList *entries = NULL;
101
102 entries = g_list_prepend (entries, menu_entry_new (_("&Undo"), CK_Undo));
103 entries = g_list_prepend (entries, menu_entry_new (_("&Redo"), CK_Redo));
104 entries = g_list_prepend (entries, menu_separator_new ());
105 entries = g_list_prepend (entries, menu_entry_new (_("&Toggle ins/overw"), CK_InsertOverwrite));
106 entries = g_list_prepend (entries, menu_separator_new ());
107 entries = g_list_prepend (entries, menu_entry_new (_("To&ggle mark"), CK_Mark));
108 entries = g_list_prepend (entries, menu_entry_new (_("&Mark columns"), CK_MarkColumn));
109 entries = g_list_prepend (entries, menu_entry_new (_("Mark &all"), CK_MarkAll));
110 entries = g_list_prepend (entries, menu_entry_new (_("Unmar&k"), CK_Unmark));
111 entries = g_list_prepend (entries, menu_separator_new ());
112 entries = g_list_prepend (entries, menu_entry_new (_("Cop&y"), CK_Copy));
113 entries = g_list_prepend (entries, menu_entry_new (_("Mo&ve"), CK_Move));
114 entries = g_list_prepend (entries, menu_entry_new (_("&Delete"), CK_Remove));
115 entries = g_list_prepend (entries, menu_separator_new ());
116 entries = g_list_prepend (entries, menu_entry_new (_("Co&py to clipfile"), CK_Store));
117 entries = g_list_prepend (entries, menu_entry_new (_("&Cut to clipfile"), CK_Cut));
118 entries = g_list_prepend (entries, menu_entry_new (_("Pa&ste from clipfile"), CK_Paste));
119 entries = g_list_prepend (entries, menu_separator_new ());
120 entries = g_list_prepend (entries, menu_entry_new (_("&Beginning"), CK_Top));
121 entries = g_list_prepend (entries, menu_entry_new (_("&End"), CK_Bottom));
122
123 return g_list_reverse (entries);
124 }
125
126
127
128 static GList *
129 create_search_replace_menu (void)
130 {
131 GList *entries = NULL;
132
133 entries = g_list_prepend (entries, menu_entry_new (_("&Search..."), CK_Search));
134 entries = g_list_prepend (entries, menu_entry_new (_("Search &again"), CK_SearchContinue));
135 entries = g_list_prepend (entries, menu_entry_new (_("&Replace..."), CK_Replace));
136 entries = g_list_prepend (entries, menu_separator_new ());
137 entries = g_list_prepend (entries, menu_entry_new (_("&Toggle bookmark"), CK_Bookmark));
138 entries = g_list_prepend (entries, menu_entry_new (_("&Next bookmark"), CK_BookmarkNext));
139 entries = g_list_prepend (entries, menu_entry_new (_("&Prev bookmark"), CK_BookmarkPrev));
140 entries = g_list_prepend (entries, menu_entry_new (_("&Flush bookmarks"), CK_BookmarkFlush));
141
142 return g_list_reverse (entries);
143 }
144
145
146
147 static GList *
148 create_command_menu (void)
149 {
150 GList *entries = NULL;
151
152 entries = g_list_prepend (entries, menu_entry_new (_("&Go to line..."), CK_Goto));
153 entries = g_list_prepend (entries, menu_entry_new (_("&Toggle line state"), CK_ShowNumbers));
154 entries =
155 g_list_prepend (entries, menu_entry_new (_("Go to matching &bracket"), CK_MatchBracket));
156 entries =
157 g_list_prepend (entries, menu_entry_new (_("Toggle s&yntax highlighting"), CK_SyntaxOnOff));
158 entries = g_list_prepend (entries, menu_separator_new ());
159 entries = g_list_prepend (entries, menu_entry_new (_("&Find declaration"), CK_Find));
160 entries = g_list_prepend (entries, menu_entry_new (_("Back from &declaration"), CK_FilePrev));
161 entries = g_list_prepend (entries, menu_entry_new (_("For&ward to declaration"), CK_FileNext));
162 #ifdef HAVE_CHARSET
163 entries = g_list_prepend (entries, menu_separator_new ());
164 entries = g_list_prepend (entries, menu_entry_new (_("Encod&ing..."), CK_SelectCodepage));
165 #endif
166 entries = g_list_prepend (entries, menu_separator_new ());
167 entries = g_list_prepend (entries, menu_entry_new (_("&Refresh screen"), CK_Refresh));
168 entries = g_list_prepend (entries, menu_separator_new ());
169 entries =
170 g_list_prepend (entries,
171 menu_entry_new (_("&Start/Stop record macro"), CK_MacroStartStopRecord));
172 entries = g_list_prepend (entries, menu_entry_new (_("Delete macr&o..."), CK_MacroDelete));
173 entries =
174 g_list_prepend (entries,
175 menu_entry_new (_("Record/Repeat &actions"), CK_RepeatStartStopRecord));
176 entries = g_list_prepend (entries, menu_separator_new ());
177 #ifdef HAVE_ASPELL
178 if (strcmp (spell_language, "NONE") != 0)
179 {
180 entries = g_list_prepend (entries, menu_entry_new (_("S&pell check"), CK_SpellCheck));
181 entries =
182 g_list_prepend (entries, menu_entry_new (_("C&heck word"), CK_SpellCheckCurrentWord));
183 entries =
184 g_list_prepend (entries,
185 menu_entry_new (_("Change spelling &language..."),
186 CK_SpellCheckSelectLang));
187 entries = g_list_prepend (entries, menu_separator_new ());
188 }
189 #endif
190 entries = g_list_prepend (entries, menu_entry_new (_("&Mail..."), CK_EditMail));
191
192
193 return g_list_reverse (entries);
194 }
195
196
197
198 static GList *
199 create_format_menu (void)
200 {
201 GList *entries = NULL;
202
203 entries = g_list_prepend (entries, menu_entry_new (_("Insert &literal..."), CK_InsertLiteral));
204 entries = g_list_prepend (entries, menu_entry_new (_("Insert &date/time"), CK_Date));
205 entries = g_list_prepend (entries, menu_separator_new ());
206 entries = g_list_prepend (entries, menu_entry_new (_("&Format paragraph"), CK_ParagraphFormat));
207 entries = g_list_prepend (entries, menu_entry_new (_("&Sort..."), CK_Sort));
208 entries =
209 g_list_prepend (entries, menu_entry_new (_("&Paste output of..."), CK_ExternalCommand));
210 entries = g_list_prepend (entries, menu_entry_new (_("&External formatter"), CK_PipeBlock (0)));
211
212 return g_list_reverse (entries);
213 }
214
215
216
217
218
219
220 static GList *
221 create_window_menu (void)
222 {
223 GList *entries = NULL;
224
225 entries = g_list_prepend (entries, menu_entry_new (_("&Move"), CK_WindowMove));
226 entries = g_list_prepend (entries, menu_entry_new (_("&Resize"), CK_WindowResize));
227 entries =
228 g_list_prepend (entries, menu_entry_new (_("&Toggle fullscreen"), CK_WindowFullscreen));
229 entries = g_list_prepend (entries, menu_separator_new ());
230 entries = g_list_prepend (entries, menu_entry_new (_("&Next"), CK_WindowNext));
231 entries = g_list_prepend (entries, menu_entry_new (_("&Previous"), CK_WindowPrev));
232 entries = g_list_prepend (entries, menu_entry_new (_("&List..."), CK_WindowList));
233
234 return g_list_reverse (entries);
235 }
236
237
238
239 static GList *
240 create_options_menu (void)
241 {
242 GList *entries = NULL;
243
244 entries = g_list_prepend (entries, menu_entry_new (_("&General..."), CK_Options));
245 entries = g_list_prepend (entries, menu_entry_new (_("Save &mode..."), CK_OptionsSaveMode));
246 entries = g_list_prepend (entries, menu_entry_new (_("Learn &keys..."), CK_LearnKeys));
247 entries =
248 g_list_prepend (entries, menu_entry_new (_("Syntax &highlighting..."), CK_SyntaxChoose));
249 entries = g_list_prepend (entries, menu_separator_new ());
250 entries = g_list_prepend (entries, menu_entry_new (_("S&yntax file"), CK_EditSyntaxFile));
251 entries = g_list_prepend (entries, menu_entry_new (_("&Menu file"), CK_EditUserMenu));
252 entries = g_list_prepend (entries, menu_separator_new ());
253 entries = g_list_prepend (entries, menu_entry_new (_("&Save setup"), CK_SaveSetup));
254
255 return g_list_reverse (entries);
256 }
257
258
259
260 static void
261 edit_drop_menu_cmd (WDialog * h, int which)
262 {
263 WMenuBar *menubar;
264
265 menubar = menubar_find (h);
266 menubar_activate (menubar, drop_menus, which);
267 }
268
269
270
271
272
273 void
274 edit_init_menu (WMenuBar * menubar)
275 {
276 menubar_add_menu (menubar,
277 menu_new (_("&File"), create_file_menu (), "[Internal File Editor]"));
278 menubar_add_menu (menubar,
279 menu_new (_("&Edit"), create_edit_menu (), "[Internal File Editor]"));
280 menubar_add_menu (menubar,
281 menu_new (_("&Search"), create_search_replace_menu (),
282 "[Internal File Editor]"));
283 menubar_add_menu (menubar,
284 menu_new (_("&Command"), create_command_menu (), "[Internal File Editor]"));
285 menubar_add_menu (menubar,
286 menu_new (_("For&mat"), create_format_menu (), "[Internal File Editor]"));
287 menubar_add_menu (menubar,
288 menu_new (_("&Window"), create_window_menu (), "[Internal File Editor]"));
289 menubar_add_menu (menubar,
290 menu_new (_("&Options"), create_options_menu (), "[Internal File Editor]"));
291 }
292
293
294
295 void
296 edit_menu_cmd (WDialog * h)
297 {
298 edit_drop_menu_cmd (h, -1);
299 }
300
301
302
303 gboolean
304 edit_drop_hotkey_menu (WDialog * h, int key)
305 {
306 int m = 0;
307 switch (key)
308 {
309 case ALT ('f'):
310 m = 0;
311 break;
312 case ALT ('e'):
313 m = 1;
314 break;
315 case ALT ('s'):
316 m = 2;
317 break;
318 case ALT ('c'):
319 m = 3;
320 break;
321 case ALT ('m'):
322 m = 4;
323 break;
324 case ALT ('w'):
325 m = 5;
326 break;
327 case ALT ('o'):
328 m = 6;
329 break;
330 default:
331 return FALSE;
332 }
333
334 edit_drop_menu_cmd (h, m);
335 return TRUE;
336 }
337
338