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