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_entry_new (_ ("Togg&le right margin"), CK_ShowMargin));
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 entries = g_list_prepend (entries, menu_separator_new ());
163 entries = g_list_prepend (entries, menu_entry_new (_ ("Encod&ing..."), CK_SelectCodepage));
164 entries = g_list_prepend (entries, menu_separator_new ());
165 entries = g_list_prepend (entries, menu_entry_new (_ ("&Refresh screen"), CK_Refresh));
166 entries = g_list_prepend (entries, menu_separator_new ());
167 entries = g_list_prepend (
168 entries, menu_entry_new (_ ("&Start/Stop record macro"), CK_MacroStartStopRecord));
169 entries = g_list_prepend (entries, menu_entry_new (_ ("Delete macr&o..."), CK_MacroDelete));
170 entries = g_list_prepend (
171 entries, menu_entry_new (_ ("Record/Repeat &actions"), CK_RepeatStartStopRecord));
172 entries = g_list_prepend (entries, menu_separator_new ());
173 #ifdef HAVE_ASPELL
174 if (strcmp (spell_language, "NONE") != 0)
175 {
176 entries = g_list_prepend (entries, menu_entry_new (_ ("S&pell check"), CK_SpellCheck));
177 entries =
178 g_list_prepend (entries, menu_entry_new (_ ("C&heck word"), CK_SpellCheckCurrentWord));
179 entries = g_list_prepend (
180 entries, menu_entry_new (_ ("Change spelling &language..."), CK_SpellCheckSelectLang));
181 entries = g_list_prepend (entries, menu_separator_new ());
182 }
183 #endif
184 entries = g_list_prepend (entries, menu_entry_new (_ ("&Mail..."), CK_EditMail));
185
186 return g_list_reverse (entries);
187 }
188
189
190
191 static GList *
192 create_format_menu (void)
193 {
194 GList *entries = NULL;
195
196 entries = g_list_prepend (entries, menu_entry_new (_ ("Insert &literal..."), CK_InsertLiteral));
197 entries = g_list_prepend (entries, menu_entry_new (_ ("Insert &date/time"), CK_Date));
198 entries = g_list_prepend (entries, menu_separator_new ());
199 entries =
200 g_list_prepend (entries, menu_entry_new (_ ("&Format paragraph"), CK_ParagraphFormat));
201 entries = g_list_prepend (entries, menu_entry_new (_ ("&Sort..."), CK_Sort));
202 entries =
203 g_list_prepend (entries, menu_entry_new (_ ("&Paste output of..."), CK_ExternalCommand));
204 entries =
205 g_list_prepend (entries, menu_entry_new (_ ("&External formatter"), CK_PipeBlock (0)));
206
207 return g_list_reverse (entries);
208 }
209
210
211
212
213
214
215 static GList *
216 create_window_menu (void)
217 {
218 GList *entries = NULL;
219
220 entries = g_list_prepend (entries, menu_entry_new (_ ("&Move"), CK_WindowMove));
221 entries = g_list_prepend (entries, menu_entry_new (_ ("&Resize"), CK_WindowResize));
222 entries =
223 g_list_prepend (entries, menu_entry_new (_ ("&Toggle fullscreen"), CK_WindowFullscreen));
224 entries = g_list_prepend (entries, menu_separator_new ());
225 entries = g_list_prepend (entries, menu_entry_new (_ ("&Next"), CK_WindowNext));
226 entries = g_list_prepend (entries, menu_entry_new (_ ("&Previous"), CK_WindowPrev));
227 entries = g_list_prepend (entries, menu_entry_new (_ ("&List..."), CK_WindowList));
228
229 return g_list_reverse (entries);
230 }
231
232
233
234 static GList *
235 create_options_menu (void)
236 {
237 GList *entries = NULL;
238
239 entries = g_list_prepend (entries, menu_entry_new (_ ("&General..."), CK_Options));
240 entries = g_list_prepend (entries, menu_entry_new (_ ("Save &mode..."), CK_OptionsSaveMode));
241 entries = g_list_prepend (entries, menu_entry_new (_ ("Learn &keys..."), CK_LearnKeys));
242 entries =
243 g_list_prepend (entries, menu_entry_new (_ ("Syntax &highlighting..."), CK_SyntaxChoose));
244 entries = g_list_prepend (entries, menu_separator_new ());
245 entries = g_list_prepend (entries, menu_entry_new (_ ("S&yntax file"), CK_EditSyntaxFile));
246 entries = g_list_prepend (entries, menu_entry_new (_ ("&Menu file"), CK_EditUserMenu));
247 entries = g_list_prepend (entries, menu_separator_new ());
248 entries = g_list_prepend (entries, menu_entry_new (_ ("&Save setup"), CK_SaveSetup));
249
250 return g_list_reverse (entries);
251 }
252
253
254
255 static void
256 edit_drop_menu_cmd (WDialog *h, int which)
257 {
258 WMenuBar *menubar;
259
260 menubar = menubar_find (h);
261 menubar_activate (menubar, drop_menus, which);
262 }
263
264
265
266
267
268 void
269 edit_init_menu (WMenuBar *menubar)
270 {
271 menubar_add_menu (menubar,
272 menu_new (_ ("&File"), create_file_menu (), "[Internal File Editor]"));
273 menubar_add_menu (menubar,
274 menu_new (_ ("&Edit"), create_edit_menu (), "[Internal File Editor]"));
275 menubar_add_menu (
276 menubar, menu_new (_ ("&Search"), create_search_replace_menu (), "[Internal File Editor]"));
277 menubar_add_menu (menubar,
278 menu_new (_ ("&Command"), create_command_menu (), "[Internal File Editor]"));
279 menubar_add_menu (menubar,
280 menu_new (_ ("For&mat"), create_format_menu (), "[Internal File Editor]"));
281 menubar_add_menu (menubar,
282 menu_new (_ ("&Window"), create_window_menu (), "[Internal File Editor]"));
283 menubar_add_menu (menubar,
284 menu_new (_ ("&Options"), create_options_menu (), "[Internal File Editor]"));
285 }
286
287
288
289 void
290 edit_menu_cmd (WDialog *h)
291 {
292 edit_drop_menu_cmd (h, -1);
293 }
294
295
296
297 gboolean
298 edit_drop_hotkey_menu (WDialog *h, int key)
299 {
300 int m = 0;
301 switch (key)
302 {
303 case ALT ('f'):
304 m = 0;
305 break;
306 case ALT ('e'):
307 m = 1;
308 break;
309 case ALT ('s'):
310 m = 2;
311 break;
312 case ALT ('c'):
313 m = 3;
314 break;
315 case ALT ('m'):
316 m = 4;
317 break;
318 case ALT ('w'):
319 m = 5;
320 break;
321 case ALT ('o'):
322 m = 6;
323 break;
324 default:
325 return FALSE;
326 }
327
328 edit_drop_menu_cmd (h, m);
329 return TRUE;
330 }
331
332