Updated italian translatio
[midnight-commander.git] / edit / editmenu.c
bloba687f509c97f6f5c093c5ed6f534a5ac7e79a481
1 /* editor menu definitions and initialisation
3 Copyright (C) 1996 the Free Software Foundation
5 Authors: 1996, 1997 Paul Sheer
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
20 02111-1307, USA.
23 #include <config.h>
25 #include "edit.h"
26 #include "../src/wtools.h" /* query_dialog() */
27 #include "../src/menu.h" /* menu_entry */
28 #include "../src/tty.h" /* KEY_F */
29 #include "../src/key.h" /* XCTRL */
30 #include "../src/main.h" /* drop_menus */
31 #include "../src/learn.h" /* learn_keys */
33 #include "edit-widget.h"
34 #include "editcmddef.h"
36 #undef edit_message_dialog
37 #define edit_message_dialog(w,x,y,h,s) query_dialog (h, s, 0, 1, _("&OK"))
38 #define CFocus(x)
40 static void
41 menu_cmd (int command)
43 edit_execute_key_command (wedit, command, -1);
44 edit_update_screen (wedit);
47 static void menu_key (int i)
49 send_message ((Widget *) wedit, WIDGET_KEY, i);
52 static void
53 edit_about_cmd (void)
55 edit_message_dialog (wedit->mainid, 20, 20, _(" About "),
56 _("\n"
57 " Cooledit v3.11.5\n"
58 "\n"
59 " Copyright (C) 1996 the Free Software Foundation\n"
60 "\n"
61 " A user friendly text editor written\n"
62 " for the Midnight Commander.\n")
66 static void
67 menu_mail_cmd (void)
69 menu_cmd (CK_Mail);
72 static void
73 menu_load_cmd (void)
75 menu_cmd (CK_Load);
78 static void
79 menu_new_cmd (void)
81 menu_cmd (CK_New);
84 static void
85 menu_save_cmd (void)
87 menu_cmd (CK_Save);
90 static void
91 menu_save_as_cmd (void)
93 menu_cmd (CK_Save_As);
96 static void
97 menu_insert_file_cmd (void)
99 menu_cmd (CK_Insert_File);
102 static void
103 menu_quit_cmd (void)
105 menu_cmd (CK_Exit);
108 static void
109 menu_mark_cmd (void)
111 menu_cmd (CK_Mark);
114 static void
115 menu_markcol_cmd (void)
117 menu_cmd (CK_Column_Mark);
120 static void
121 menu_ins_cmd (void)
123 menu_cmd (CK_Toggle_Insert);
126 static void
127 menu_copy_cmd (void)
129 menu_cmd (CK_Copy);
132 static void
133 menu_move_cmd (void)
135 menu_cmd (CK_Move);
138 static void
139 menu_delete_cmd (void)
141 menu_cmd (CK_Remove);
144 static void
145 menu_cut_cmd (void)
147 menu_cmd (CK_Save_Block);
150 static void
151 menu_search_cmd (void)
153 menu_cmd (CK_Find);
156 static void
157 menu_search_again_cmd (void)
159 menu_cmd (CK_Find_Again);
162 static void
163 menu_replace_cmd (void)
165 menu_cmd (CK_Replace);
168 static void
169 menu_begin_record_cmd (void)
171 menu_cmd (CK_Begin_Record_Macro);
174 static void
175 menu_end_record_cmd (void)
177 menu_cmd (CK_End_Record_Macro);
180 static void
181 menu_exec_macro_cmd (void)
183 menu_key (XCTRL ('a'));
186 static void
187 menu_exec_macro_delete_cmd (void)
189 menu_cmd (CK_Delete_Macro);
192 static void
193 menu_c_form_cmd (void)
195 menu_key (KEY_F (19));
198 static void
199 menu_ispell_cmd (void)
201 menu_cmd (CK_Pipe_Block (1));
204 static void
205 menu_sort_cmd (void)
207 menu_cmd (CK_Sort);
210 static void
211 menu_ext_cmd (void)
213 menu_cmd (CK_ExtCmd);
216 static void
217 menu_date_cmd (void)
219 menu_cmd (CK_Date);
222 static void
223 menu_undo_cmd (void)
225 menu_cmd (CK_Undo);
228 static void
229 menu_beginning_cmd (void)
231 menu_cmd (CK_Beginning_Of_Text);
234 static void
235 menu_end_cmd (void)
237 menu_cmd (CK_End_Of_Text);
240 static void
241 menu_refresh_cmd (void)
243 menu_cmd (CK_Refresh);
246 static void
247 menu_goto_line (void)
249 menu_cmd (CK_Goto);
252 static void
253 menu_goto_bracket (void)
255 menu_cmd (CK_Match_Bracket);
258 static void
259 menu_lit_cmd (void)
261 menu_key (XCTRL ('q'));
264 static void
265 menu_format_paragraph (void)
267 menu_cmd (CK_Paragraph_Format);
270 static void
271 menu_options (void)
273 edit_options_dialog ();
275 static void
276 menu_user_menu_cmd (void)
278 menu_key (KEY_F (11));
281 static menu_entry FileMenu[] =
283 {' ', N_("&Open file..."), 'O', menu_load_cmd},
284 {' ', N_("&New C-n"), 'N', menu_new_cmd},
285 {' ', "", ' ', 0},
286 {' ', N_("&Save F2"), 'S', menu_save_cmd},
287 {' ', N_("Save &as... F12"), 'A', menu_save_as_cmd},
288 {' ', "", ' ', 0},
289 {' ', N_("&Insert file... F15"), 'I', menu_insert_file_cmd},
290 {' ', N_("Copy to &file... C-f"), 'F', menu_cut_cmd},
291 {' ', "", ' ', 0},
292 {' ', N_("&User menu... F11"), 'U', menu_user_menu_cmd},
293 {' ', "", ' ', 0},
294 {' ', N_("A&bout... "), 'B', edit_about_cmd},
295 {' ', "", ' ', 0},
296 {' ', N_("&Quit F10"), 'Q', menu_quit_cmd}
299 static menu_entry FileMenuEmacs[] =
301 {' ', N_("&Open file..."), 'O', menu_load_cmd},
302 {' ', N_("&New C-x k"), 'N', menu_new_cmd},
303 {' ', "", ' ', 0},
304 {' ', N_("&Save F2"), 'S', menu_save_cmd},
305 {' ', N_("Save &as... F12"), 'A', menu_save_as_cmd},
306 {' ', "", ' ', 0},
307 {' ', N_("&Insert file... F15"), 'I', menu_insert_file_cmd},
308 {' ', N_("Copy to &file... "), 'F', menu_cut_cmd},
309 {' ', "", ' ', 0},
310 {' ', N_("&User menu... F11"), 'U', menu_user_menu_cmd},
311 {' ', "", ' ', 0},
312 {' ', N_("A&bout... "), 'B', edit_about_cmd},
313 {' ', "", ' ', 0},
314 {' ', N_("&Quit F10"), 'Q', menu_quit_cmd}
317 static menu_entry EditMenu[] =
319 {' ', N_("&Toggle Mark F3"), 'T', menu_mark_cmd},
320 {' ', N_("&Mark Columns S-F3"), 'T', menu_markcol_cmd},
321 {' ', "", ' ', 0},
322 {' ', N_("Toggle &ins/overw Ins"), 'I', menu_ins_cmd},
323 {' ', "", ' ', 0},
324 {' ', N_("&Copy F5"), 'C', menu_copy_cmd},
325 {' ', N_("&Move F6"), 'M', menu_move_cmd},
326 {' ', N_("&Delete F8"), 'D', menu_delete_cmd},
327 {' ', "", ' ', 0},
328 {' ', N_("&Undo C-u"), 'U', menu_undo_cmd},
329 {' ', "", ' ', 0},
330 {' ', N_("&Beginning C-PgUp"), 'B', menu_beginning_cmd},
331 {' ', N_("&End C-PgDn"), 'E', menu_end_cmd}
334 #define EditMenuEmacs EditMenu
336 static menu_entry SearReplMenu[] =
338 {' ', N_("&Search... F7"), 'S', menu_search_cmd},
339 {' ', N_("Search &again F17"), 'A', menu_search_again_cmd},
340 {' ', N_("&Replace... F4"), 'R', menu_replace_cmd}
343 #define SearReplMenuEmacs SearReplMenu
345 static menu_entry CmdMenu[] =
347 {' ', N_("&Go to line... M-l"), 'G', menu_goto_line},
348 {' ', N_("Go to matching &bracket M-b"), 'B', menu_goto_bracket},
349 {' ', "", ' ', 0},
350 {' ', N_("Insert &literal... C-q"), 'L', menu_lit_cmd},
351 {' ', "", ' ', 0},
352 {' ', N_("&Refresh screen C-l"), 'R', menu_refresh_cmd},
353 {' ', "", ' ', 0},
354 {' ', N_("&Start record macro C-r"), 'S', menu_begin_record_cmd},
355 {' ', N_("&Finish record macro... C-r"), 'F', menu_end_record_cmd},
356 {' ', N_("&Execute macro... C-a, KEY"), 'E', menu_exec_macro_cmd},
357 {' ', N_("Delete macr&o... "), 'O', menu_exec_macro_delete_cmd},
358 {' ', "", ' ', 0},
359 {' ', N_("Insert &date/time "), 'D', menu_date_cmd},
360 {' ', "", ' ', 0},
361 {' ', N_("Format p&aragraph M-p"), 'A', menu_format_paragraph},
362 {' ', N_("'ispell' s&pell check C-p"), 'P', menu_ispell_cmd},
363 {' ', N_("Sor&t... M-t"), 'T', menu_sort_cmd},
364 {' ', N_("Paste o&utput of... M-u"), 'U', menu_ext_cmd},
365 {' ', N_("E&xternal Formatter F19"), 'C', menu_c_form_cmd},
366 {' ', N_("&Mail... "), 'M', menu_mail_cmd}
369 static menu_entry CmdMenuEmacs[] =
371 {' ', N_("&Go to line... M-l"), 'G', menu_goto_line},
372 {' ', N_("Go to matching &bracket M-b"), 'B', menu_goto_bracket},
373 {' ', "", ' ', 0},
374 {' ', N_("Insert &literal... C-q"), 'L', menu_lit_cmd},
375 {' ', "", ' ', 0},
376 {' ', N_("&Refresh screen C-l"), 'R', menu_refresh_cmd},
377 {' ', "", ' ', 0},
378 {' ', N_("&Start record macro C-r"), 'S', menu_begin_record_cmd},
379 {' ', N_("&Finish record macro... C-r"), 'F', menu_end_record_cmd},
380 {' ', N_("&Execute macro... C-x e, KEY"), 'E', menu_exec_macro_cmd},
381 {' ', N_("Delete macr&o... "), 'o', menu_exec_macro_delete_cmd},
382 {' ', "", ' ', 0},
383 {' ', N_("Insert &date/time "), 'D', menu_date_cmd},
384 {' ', "", ' ', 0},
385 {' ', N_("Format p&aragraph M-p"), 'a', menu_format_paragraph},
386 {' ', N_("'ispell' s&pell check M-$"), 'P', menu_ispell_cmd},
387 {' ', N_("Sor&t... M-t"), 'T', menu_sort_cmd},
388 {' ', N_("Paste o&utput of... M-u"), 'U', menu_ext_cmd},
389 {' ', N_("E&xternal Formatter F19"), 'C', menu_c_form_cmd},
390 {' ', N_("&Mail... "), 'M', menu_mail_cmd}
393 static menu_entry OptMenu[] =
395 {' ', N_("&General... "), 'G', menu_options},
396 {' ', N_("&Save mode..."), 'S', menu_save_mode_cmd},
397 {' ', N_("learn &Keys..."), 'K', learn_keys}
400 #define OptMenuEmacs OptMenu
402 #define menu_entries(x) sizeof(x)/sizeof(menu_entry)
404 struct Menu *EditMenuBar[N_menus];
406 void edit_init_menu_normal (void)
408 EditMenuBar[0] = create_menu (_(" File "), FileMenu, menu_entries (FileMenu),
409 "[Internal File Editor]");
410 EditMenuBar[1] = create_menu (_(" Edit "), EditMenu, menu_entries (EditMenu),
411 "[Internal File Editor]");
412 EditMenuBar[2] = create_menu (_(" Sear/Repl "), SearReplMenu, menu_entries (SearReplMenu),
413 "[Internal File Editor]");
414 EditMenuBar[3] = create_menu (_(" Command "), CmdMenu, menu_entries (CmdMenu),
415 "[Internal File Editor]");
416 EditMenuBar[4] = create_menu (_(" Options "), OptMenu, menu_entries (OptMenu),
417 "[Internal File Editor]");
420 void edit_init_menu_emacs (void)
422 EditMenuBar[0] = create_menu (_(" File "), FileMenuEmacs, menu_entries (FileMenuEmacs),
423 "[Internal File Editor]");
424 EditMenuBar[1] = create_menu (_(" Edit "), EditMenuEmacs, menu_entries (EditMenuEmacs),
425 "[Internal File Editor]");
426 EditMenuBar[2] = create_menu (_(" Sear/Repl "), SearReplMenuEmacs, menu_entries (SearReplMenuEmacs),
427 "[Internal File Editor]");
428 EditMenuBar[3] = create_menu (_(" Command "), CmdMenuEmacs, menu_entries (CmdMenuEmacs),
429 "[Internal File Editor]");
430 EditMenuBar[4] = create_menu (_(" Options "), OptMenuEmacs, menu_entries (OptMenuEmacs),
431 "[Internal File Editor]");
434 void edit_done_menu (void)
436 int i;
437 for (i = 0; i < N_menus; i++)
438 destroy_menu (EditMenuBar[i]);
442 static void
443 edit_drop_menu_cmd (WEdit *e, int which)
445 if (edit_menubar->active)
446 return;
447 edit_menubar->active = 1;
448 edit_menubar->dropped = drop_menus;
449 if (which >= 0) {
450 edit_menubar->selected = which;
453 edit_menubar->previous_widget = e->widget.parent->current->dlg_id;
454 dlg_select_widget (e->widget.parent, edit_menubar);
458 void edit_menu_cmd (WEdit * e)
460 edit_drop_menu_cmd (e, -1);
464 int edit_drop_hotkey_menu (WEdit * e, int key)
466 int m = 0;
467 switch (key) {
468 case ALT ('f'):
469 if (edit_key_emulation == EDIT_KEY_EMULATION_EMACS)
470 return 0;
471 m = 0;
472 break;
473 case ALT ('e'):
474 m = 1;
475 break;
476 case ALT ('s'):
477 m = 2;
478 break;
479 case ALT ('c'):
480 m = 3;
481 break;
482 case ALT ('o'):
483 m = 4;
484 break;
485 default:
486 return 0;
489 edit_drop_menu_cmd (e, m);
490 return 1;