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