translated some forgotten messages...
[midnight-commander.git] / edit / editmenu.c
blob67ff1af363bed1e4673d1bd7b6e3fd14e26bd622
1 /* editor menu definitions and initialisation
3 Copyright (C) 1996 the Free Software Foundation
5 Authors: 1996, 1997 Paul Sheer
7 $Id$
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2 of the License, or
12 (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License
20 along with this program; if not, write to the Free Software
21 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
22 02111-1307, USA.
25 #include <config.h>
26 #include "edit.h"
27 #include "src/user.h"
29 #include "editcmddef.h"
31 #undef edit_message_dialog
32 #define edit_message_dialog(w,x,y,h,s) query_dialog (h, s, 0, 1, _("&Ok"))
33 #define CFocus(x)
35 static void menu_cmd (int i)
37 send_message (wedit->widget.parent, (Widget *) wedit, WIDGET_COMMAND, i);
40 static void menu_key (int i)
42 send_message (wedit->widget.parent, (Widget *) wedit, WIDGET_KEY, i);
45 void edit_wrap_cmd (void)
47 char *f;
48 char s[12];
49 sprintf (s, "%d", option_word_wrap_line_length);
50 f = input_dialog (_(" Word wrap "),
51 _(" Enter line length, 0 for off: "), s);
52 if (f) {
53 if (*f) {
54 option_word_wrap_line_length = atoi (f);
56 g_free (f);
60 void edit_about_cmd (void)
62 edit_message_dialog (wedit->mainid, 20, 20, _(" About "),
63 _("\n"
64 " Cooledit v3.11.5\n"
65 "\n"
66 " Copyright (C) 1996 the Free Software Foundation\n"
67 "\n"
68 " A user friendly text editor written\n"
69 " for the Midnight Commander.\n")
73 void menu_mail_cmd (void) { menu_cmd (CK_Mail); }
74 void menu_load_cmd (void) { menu_cmd (CK_Load); }
75 void menu_new_cmd (void) { menu_cmd (CK_New); }
76 void menu_save_cmd (void) { menu_cmd (CK_Save); }
77 void menu_save_as_cmd (void) { menu_cmd (CK_Save_As); }
78 void menu_insert_file_cmd (void) { menu_cmd (CK_Insert_File); }
79 void menu_quit_cmd (void) { menu_cmd (CK_Exit); }
80 void menu_mark_cmd (void) { menu_cmd (CK_Mark); }
81 void menu_markcol_cmd (void) { menu_cmd (CK_Column_Mark); }
82 void menu_ins_cmd (void) { menu_cmd (CK_Toggle_Insert); }
83 void menu_copy_cmd (void) { menu_cmd (CK_Copy); }
84 void menu_move_cmd (void) { menu_cmd (CK_Move); }
85 void menu_delete_cmd (void) { menu_cmd (CK_Remove); }
86 void menu_cut_cmd (void) { menu_cmd (CK_Save_Block); }
87 void menu_search_cmd (void) { menu_cmd (CK_Find); }
88 void menu_search_again_cmd (void) { menu_cmd (CK_Find_Again); }
89 void menu_replace_cmd (void) { menu_cmd (CK_Replace); }
90 void menu_begin_record_cmd (void) { menu_cmd (CK_Begin_Record_Macro); }
91 void menu_end_record_cmd (void) { menu_cmd (CK_End_Record_Macro); }
92 void menu_wrap_cmd (void) { edit_wrap_cmd (); }
93 void menu_exec_macro_cmd (void) { menu_key (XCTRL ('a')); }
94 void menu_exec_macro_delete_cmd (void) { menu_cmd (CK_Delete_Macro); }
95 void menu_c_form_cmd (void) { menu_key (KEY_F (19)); }
96 void menu_ispell_cmd (void) { menu_cmd (CK_Pipe_Block (1)); }
97 void menu_sort_cmd (void) { menu_cmd (CK_Sort); }
98 void menu_date_cmd (void) { menu_cmd (CK_Date); }
99 void menu_undo_cmd (void) { menu_cmd (CK_Undo); }
100 void menu_beginning_cmd (void) { menu_cmd (CK_Beginning_Of_Text); }
101 void menu_end_cmd (void) { menu_cmd (CK_End_Of_Text); }
102 void menu_refresh_cmd (void) { menu_cmd (CK_Refresh); }
103 void menu_goto_line (void) { menu_cmd (CK_Goto); }
104 void menu_goto_bracket (void) { menu_cmd (CK_Match_Bracket); }
105 void menu_lit_cmd (void) { menu_key (XCTRL ('q')); }
106 void menu_format_paragraph (void) { menu_cmd (CK_Paragraph_Format); }
107 void edit_options_dialog (void);
108 void menu_options (void) { edit_options_dialog (); }
109 void menu_user_menu_cmd (void) { menu_key (KEY_F (11)); }
111 void edit_user_menu_cmd (void) { menu_edit_cmd (1); }
113 static menu_entry FileMenu[] =
115 {' ', N_("&Open file..."), 'O', menu_load_cmd},
116 {' ', N_("&New C-n"), 'N', menu_new_cmd},
117 {' ', "", ' ', 0},
118 {' ', N_("&Save F2"), 'S', menu_save_cmd},
119 {' ', N_("save &As... F12"), 'A', menu_save_as_cmd},
120 {' ', "", ' ', 0},
121 {' ', N_("&Insert file... F15"), 'I', menu_insert_file_cmd},
122 {' ', N_("copy to &File... C-f"), 'F', menu_cut_cmd},
123 {' ', "", ' ', 0},
124 {' ', N_("&User menu... F11"), 'U', menu_user_menu_cmd},
125 /* {' ', N_("Menu edi&Tor edit "), 'T', edit_user_menu_cmd}, */
126 {' ', "", ' ', 0},
127 {' ', N_("a&Bout... "), 'B', edit_about_cmd},
128 {' ', "", ' ', 0},
129 {' ', N_("&Quit F10"), 'Q', menu_quit_cmd}
132 static menu_entry FileMenuEmacs[] =
134 {' ', N_("&Open file..."), 'O', menu_load_cmd},
135 {' ', N_("&New C-x k"), 'N', menu_new_cmd},
136 {' ', "", ' ', 0},
137 {' ', N_("&Save F2"), 'S', menu_save_cmd},
138 {' ', N_("save &As... F12"), 'A', menu_save_as_cmd},
139 {' ', "", ' ', 0},
140 {' ', N_("&Insert file... F15"), 'I', menu_insert_file_cmd},
141 {' ', N_("copy to &File... "), 'F', menu_cut_cmd},
142 {' ', "", ' ', 0},
143 {' ', N_("&User menu... F11"), 'U', menu_user_menu_cmd},
144 /* {' ', N_("Menu edi&Tor edit "), 'T', edit_user_menu_cmd}, */
145 {' ', "", ' ', 0},
146 {' ', N_("a&Bout... "), 'B', edit_about_cmd},
147 {' ', "", ' ', 0},
148 {' ', N_("&Quit F10"), 'Q', menu_quit_cmd}
151 static menu_entry EditMenu[] =
153 {' ', N_("&Toggle Mark F3"), 'T', menu_mark_cmd},
154 {' ', N_("&Mark Columns S-F3"), 'T', menu_markcol_cmd},
155 {' ', "", ' ', 0},
156 {' ', N_("toggle &Ins/overw Ins"), 'I', menu_ins_cmd},
157 {' ', "", ' ', 0},
158 {' ', N_("&Copy F5"), 'C', menu_copy_cmd},
159 {' ', N_("&Move F6"), 'M', menu_move_cmd},
160 {' ', N_("&Delete F8"), 'D', menu_delete_cmd},
161 {' ', "", ' ', 0},
162 {' ', N_("&Undo C-u"), 'U', menu_undo_cmd},
163 {' ', "", ' ', 0},
164 {' ', N_("&Beginning C-PgUp"), 'B', menu_beginning_cmd},
165 {' ', N_("&End C-PgDn"), 'E', menu_end_cmd}
168 static menu_entry EditMenuEmacs[] =
170 {' ', N_("&Toggle Mark F3"), 'T', menu_mark_cmd},
171 {' ', N_("&Mark Columns S-F3"), 'T', menu_markcol_cmd},
172 {' ', "", ' ', 0},
173 {' ', N_("toggle &Ins/overw Ins"), 'I', menu_ins_cmd},
174 {' ', "", ' ', 0},
175 {' ', N_("&Copy F5"), 'C', menu_copy_cmd},
176 {' ', N_("&Move F6"), 'M', menu_move_cmd},
177 {' ', N_("&Delete F8"), 'D', menu_delete_cmd},
178 {' ', "", ' ', 0},
179 {' ', N_("&Undo C-u"), 'U', menu_undo_cmd},
180 {' ', "", ' ', 0},
181 {' ', N_("&Beginning C-PgUp"), 'B', menu_beginning_cmd},
182 {' ', N_("&End C-PgDn"), 'E', menu_end_cmd}
185 static menu_entry SearReplMenu[] =
187 {' ', N_("&Search... F7"), 'S', menu_search_cmd},
188 {' ', N_("search &Again F17"), 'A', menu_search_again_cmd},
189 {' ', N_("&Replace... F4"), 'R', menu_replace_cmd}
192 static menu_entry SearReplMenuEmacs[] =
194 {' ', N_("&Search... F7"), 'S', menu_search_cmd},
195 {' ', N_("search &Again F17"), 'A', menu_search_again_cmd},
196 {' ', N_("&Replace... F4"), 'R', menu_replace_cmd}
199 static menu_entry CmdMenu[] =
201 {' ', N_("&Goto line... M-l"), 'G', menu_goto_line},
202 {' ', N_("goto matching &Bracket M-b"), 'B', menu_goto_bracket},
203 {' ', "", ' ', 0},
204 {' ', N_("insert &Literal... C-q"), 'L', menu_lit_cmd},
205 {' ', "", ' ', 0},
206 {' ', N_("&Refresh screen C-l"), 'R', menu_refresh_cmd},
207 {' ', "", ' ', 0},
208 {' ', N_("&Start record macro C-r"), 'S', menu_begin_record_cmd},
209 {' ', N_("&Finish record macro... C-r"), 'F', menu_end_record_cmd},
210 {' ', N_("&Execute macro... C-a, KEY"), 'E', menu_exec_macro_cmd},
211 {' ', N_("delete macr&O... "), 'O', menu_exec_macro_delete_cmd},
212 {' ', "", ' ', 0},
213 {' ', N_("insert &Date/time "), 'D', menu_date_cmd},
214 {' ', "", ' ', 0},
215 {' ', N_("format p&Aragraph M-p"), 'A', menu_format_paragraph},
216 {' ', N_("'ispell' s&Pell check C-p"), 'P', menu_ispell_cmd},
217 {' ', N_("sor&T... M-t"), 'T', menu_sort_cmd},
218 {' ', N_("E&xternal Formatter F19"), 'C', menu_c_form_cmd},
219 {' ', N_("&Mail... "), 'M', menu_mail_cmd}
222 static menu_entry CmdMenuEmacs[] =
224 {' ', N_("&Goto line... M-l"), 'G', menu_goto_line},
225 {' ', N_("goto matching &Bracket M-b"), 'B', menu_goto_bracket},
226 {' ', "", ' ', 0},
227 {' ', N_("insert &Literal... C-q"), 'L', menu_lit_cmd},
228 {' ', "", ' ', 0},
229 {' ', N_("&Refresh screen C-l"), 'R', menu_refresh_cmd},
230 {' ', "", ' ', 0},
231 {' ', N_("&Start record macro C-r"), 'S', menu_begin_record_cmd},
232 {' ', N_("&Finish record macro... C-r"), 'F', menu_end_record_cmd},
233 {' ', N_("&Execute macro... C-x e, KEY"), 'E', menu_exec_macro_cmd},
234 {' ', N_("delete macr&O... "), 'o', menu_exec_macro_delete_cmd},
235 {' ', "", ' ', 0},
236 {' ', N_("insert &Date/time "), 'D', menu_date_cmd},
237 {' ', "", ' ', 0},
238 {' ', N_("format p&Aragraph M-p"), 'a', menu_format_paragraph},
239 {' ', N_("'ispell' s&Pell check M-$"), 'P', menu_ispell_cmd},
240 {' ', N_("sor&T... M-t"), 'T', menu_sort_cmd},
241 {' ', N_("E&xternal Formatter F19"), 'C', menu_c_form_cmd},
242 {' ', N_("&Mail... "), 'M', menu_mail_cmd}
245 static menu_entry OptMenu[] =
247 {' ', N_("&General... "), 'G', menu_options},
248 {' ', N_("&Save mode..."), 'S', menu_save_mode_cmd}
249 #if 0
250 {' ', N_("&Layout..."), 'L', menu_layout_cmd}
251 #endif
254 static menu_entry OptMenuEmacs[] =
256 {' ', N_("&General... "), 'G', menu_options},
257 {' ', N_("&Save mode..."), 'S', menu_save_mode_cmd}
258 #if 0
259 {' ', N_("&Layout..."), 'L', menu_layout_cmd}
260 #endif
263 #define menu_entries(x) sizeof(x)/sizeof(menu_entry)
265 Menu EditMenuBar[N_menus];
267 void edit_init_menu_normal (void)
269 EditMenuBar[0] = create_menu (_(" File "), FileMenu, menu_entries (FileMenu),
270 "[Internal File Editor]");
271 EditMenuBar[1] = create_menu (_(" Edit "), EditMenu, menu_entries (EditMenu),
272 "[Internal File Editor]");
273 EditMenuBar[2] = create_menu (_(" Sear/Repl "), SearReplMenu, menu_entries (SearReplMenu),
274 "[Internal File Editor]");
275 EditMenuBar[3] = create_menu (_(" Command "), CmdMenu, menu_entries (CmdMenu),
276 "[Internal File Editor]");
277 EditMenuBar[4] = create_menu (_(" Options "), OptMenu, menu_entries (OptMenu),
278 "[Internal File Editor]");
281 void edit_init_menu_emacs (void)
283 EditMenuBar[0] = create_menu (_(" File "), FileMenuEmacs, menu_entries (FileMenuEmacs),
284 "[Internal File Editor]");
285 EditMenuBar[1] = create_menu (_(" Edit "), EditMenuEmacs, menu_entries (EditMenuEmacs),
286 "[Internal File Editor]");
287 EditMenuBar[2] = create_menu (_(" Sear/Repl "), SearReplMenuEmacs, menu_entries (SearReplMenuEmacs),
288 "[Internal File Editor]");
289 EditMenuBar[3] = create_menu (_(" Command "), CmdMenuEmacs, menu_entries (CmdMenuEmacs),
290 "[Internal File Editor]");
291 EditMenuBar[4] = create_menu (_(" Options "), OptMenuEmacs, menu_entries (OptMenuEmacs),
292 "[Internal File Editor]");
295 void edit_done_menu (void)
297 int i;
298 for (i = 0; i < N_menus; i++)
299 destroy_menu (EditMenuBar[i]);
303 void edit_drop_menu_cmd (WEdit * e, int which)
305 if (edit_menubar->active)
306 return;
307 edit_menubar->active = 1;
308 edit_menubar->dropped = drop_menus;
309 edit_menubar->previous_selection = which >= 0 ? which : dlg_item_number (edit_dlg);
310 if (which >= 0)
311 edit_menubar->selected = which;
312 dlg_select_widget (edit_dlg, edit_menubar);
316 void edit_menu_cmd (WEdit * e)
318 edit_drop_menu_cmd (e, -1);
322 int edit_drop_hotkey_menu (WEdit * e, int key)
324 int m = 0;
325 switch (key) {
326 case ALT ('f'):
327 if (edit_key_emulation == EDIT_KEY_EMULATION_EMACS)
328 return 0;
329 m = 0;
330 break;
331 case ALT ('e'):
332 m = 1;
333 break;
334 case ALT ('s'):
335 m = 2;
336 break;
337 case ALT ('c'):
338 m = 3;
339 break;
340 case ALT ('o'):
341 m = 4;
342 break;
343 default:
344 return 0;
347 edit_drop_menu_cmd (e, m);
348 return 1;