📄 editmenu.c
字号:
{' ', "", ' ', 0}, {' ', N_("format p&Aragraph M-p"), 'a', menu_format_paragraph}, {' ', N_("'ispell' s&Pell check M-$"), 'P', menu_ispell_cmd}, {' ', N_("sor&T... M-t"), 'T', menu_sort_cmd}, {' ', N_("'indent' &C Formatter F19"), 'C', menu_c_form_cmd}};extern void menu_save_mode_cmd (void);static menu_entry OptMenu[] ={ {' ', N_("&General... "), 'G', menu_options}, {' ', N_("&Save mode..."), 'S', menu_save_mode_cmd}#if 0 {' ', N_("&Layout..."), 'L', menu_layout_cmd}#endif};static menu_entry OptMenuEmacs[] ={ {' ', N_("&General... "), 'G', menu_options}, {' ', N_("&Save mode..."), 'S', menu_save_mode_cmd}#if 0 {' ', N_("&Layout..."), 'L', menu_layout_cmd}#endif};#define menu_entries(x) sizeof(x)/sizeof(menu_entry)Menu EditMenuBar[N_menus];void edit_init_menu_normal (void){ EditMenuBar[0] = create_menu (_(" File "), FileMenu, menu_entries (FileMenu)); EditMenuBar[1] = create_menu (_(" Edit "), EditMenu, menu_entries (EditMenu)); EditMenuBar[2] = create_menu (_(" Sear/Repl "), SearReplMenu, menu_entries (SearReplMenu)); EditMenuBar[3] = create_menu (_(" Command "), CmdMenu, menu_entries (CmdMenu)); EditMenuBar[4] = create_menu (_(" Options "), OptMenu, menu_entries (OptMenu));}void edit_init_menu_emacs (void){ EditMenuBar[0] = create_menu (_(" File "), FileMenuEmacs, menu_entries (FileMenuEmacs)); EditMenuBar[1] = create_menu (_(" Edit "), EditMenuEmacs, menu_entries (EditMenuEmacs)); EditMenuBar[2] = create_menu (_(" Sear/Repl "), SearReplMenuEmacs, menu_entries (SearReplMenuEmacs)); EditMenuBar[3] = create_menu (_(" Command "), CmdMenuEmacs, menu_entries (CmdMenuEmacs)); EditMenuBar[4] = create_menu (_(" Options "), OptMenuEmacs, menu_entries (OptMenuEmacs));}void edit_done_menu (void){ int i; for (i = 0; i < N_menus; i++) destroy_menu (EditMenuBar[i]);}void edit_drop_menu_cmd (WEdit * e, int which){ if (edit_menubar->active) return; edit_menubar->active = 1; edit_menubar->dropped = drop_menus; edit_menubar->previous_selection = which >= 0 ? which : dlg_item_number (edit_dlg); if (which >= 0) edit_menubar->selected = which; dlg_select_widget (edit_dlg, edit_menubar);}void edit_menu_cmd (WEdit * e){ edit_drop_menu_cmd (e, -1);}int edit_drop_hotkey_menu (WEdit * e, int key){ int m = 0; switch (key) { case ALT ('f'): if (edit_key_emulation == EDIT_KEY_EMULATION_EMACS) return 0; m = 0; break; case ALT ('e'): m = 1; break; case ALT ('s'): m = 2; break; case ALT ('c'): m = 3; break; case ALT ('o'): m = 4; break; default: return 0; } edit_drop_menu_cmd (e, m); return 1;}#else /* !MIDNIGHT */extern CWidget *wedit;void CSetEditMenu (const char *ident){ wedit = CIdent (ident);}CWidget *CGetEditMenu (void){ return wedit;}static void menu_cmd (unsigned long i){ XEvent e; if (wedit) { memset (&e, 0, sizeof (XEvent)); e.type = EditorCommand; e.xkey.keycode = i; e.xkey.window = wedit->winid; CFocus (wedit); CSendEvent (&e); }}void CEditMenuCommand (int i){ menu_cmd ((unsigned long) i);}static void menu_key (KeySym i, int state){ int cmd; long ch; if (edit_translate_key (0, i, state, &cmd, &ch)) { if (cmd > 0) menu_cmd (cmd); }}static void menu_ctrl_key (unsigned long i){ menu_key ((KeySym) i, ControlMask);}void CDrawEditMenuButtons (const char *ident, Window parent, Window focus_return, int x, int y){ int d; CDrawMenuButton (catstrs (ident, ".filemenu", 0), parent, focus_return, x, y, AUTO_WIDTH, AUTO_HEIGHT, 8,/* The following are menu options. Do not change the key bindings (eg. C-o) and preserve '\t' */ _(" File "), _("Open...\tC-o"), (int) '~', menu_cmd, (unsigned long) CK_Load, _("New\tC-n"), (int) '~', menu_cmd, (unsigned long) CK_New, "", (int) ' ', (void *) 0, 0L, _("Save\tF2"), (int) '~', menu_cmd, (unsigned long) CK_Save, _("Save as...\tF12"), (int) '~', menu_cmd, (unsigned long) CK_Save_As, "", (int) ' ', (void *) 0, 0L, _("Insert file...\tF15"), (int) '~', menu_cmd, (unsigned long) CK_Insert_File, _("Copy to file...\tC-f"), (int) '~', menu_cmd, (unsigned long) CK_Save_Block );/* Tool hint */ CSetToolHint (catstrs (ident, ".filemenu", 0), _("Disk operations and file indexing/searching")); CGetHintPos (&x, &d); CDrawMenuButton (catstrs (ident, ".editmenu", 0), parent, focus_return, x, y, AUTO_WIDTH, AUTO_HEIGHT, 20, _(" Edit "), _("Toggle mark\tF3"), (int) '~', menu_cmd, (unsigned long) CK_Mark, _("Toggle mark columns\tC-b"), (int) '~', menu_cmd, (unsigned long) CK_Column_Mark, "", (int) ' ', (void *) 0, 0L, _("Toggle book mark\tC-M-Ins"), (int) '~', menu_cmd, (unsigned long) CK_Toggle_Bookmark, _("Previous book mark\tC-M-Up"), (int) '~', menu_cmd, (unsigned long) CK_Prev_Bookmark, _("Next book mark\tC-M-Down"), (int) '~', menu_cmd, (unsigned long) CK_Next_Bookmark, _("Flush book marks"), (int) '~', menu_cmd, (unsigned long) CK_Flush_Bookmarks, "", (int) ' ', (void *) 0, 0L, _("Toggle insert/overwrite\tIns"), (int) '~', menu_cmd, (unsigned long) CK_Toggle_Insert, "", (int) ' ', (void *) 0, 0L, _("Copy block to cursor\tF5"), (int) '~', menu_cmd, (unsigned long) CK_Copy, _("Move block to cursor\tF6"), (int) '~', menu_cmd, (unsigned long) CK_Move, _("Delete block\tF8/C-Del"), (int) '~', menu_cmd, (unsigned long) CK_Remove, "", (int) ' ', (void *) 0, 0L, _("Copy block to clipbrd\tC-Ins"), (int) '~', menu_cmd, (unsigned long) CK_XStore, _("Cut block to clipbrd\tS-Del"), (int) '~', menu_cmd, (unsigned long) CK_XCut, _("Paste block from clipbrd\tS-Ins"), (int) '~', menu_cmd, (unsigned long) CK_XPaste, _("Selection history...\tM-Ins"), (int) '~', menu_cmd, (unsigned long) CK_Selection_History, "", (int) ' ', (void *) 0, 0L, _("Undo\tC-BackSpace"), (int) '~', menu_cmd, (unsigned long) CK_Undo );/* Tool hint */ CSetToolHint (catstrs (ident, ".editmenu", 0), _("Manipulating blocks of text")); CGetHintPos (&x, &d); CDrawMenuButton (catstrs (ident, ".searchmenu", 0), parent, focus_return, x, y, AUTO_WIDTH, AUTO_HEIGHT, 4, _(" Srch/Replce "), _("Search...\tF7"), (int) '~', menu_cmd, (unsigned long) CK_Find, _("Search again\tF17"), (int) '~', menu_cmd, (unsigned long) CK_Find_Again, _("Replace...\tF4"), (int) '~', menu_cmd, (unsigned long) CK_Replace, _("Replace again\tF14"), (int) '~', menu_cmd, (unsigned long) CK_Replace_Again );/* Tool hint */ CSetToolHint (catstrs (ident, ".searchmenu", 0), _("Search for and replace text")); CGetHintPos (&x, &d); CDrawMenuButton (catstrs (ident, ".commandmenu", 0), parent, focus_return, x, y, AUTO_WIDTH, AUTO_HEIGHT, 12, _(" Command "), _("Goto line...\tM-l"), (int) '~', menu_cmd, (unsigned long) CK_Goto, _("Goto matching bracket\tM-b"), (int) '~', menu_cmd, (unsigned long) CK_Match_Bracket, "", (int) ' ', (void *) 0, 0L, _("Start record macro\tC-r"), (int) '~', menu_cmd, (unsigned long) CK_Begin_Record_Macro, _("Finish record macro...\tC-r"), (int) '~', menu_cmd, (unsigned long) CK_End_Record_Macro, _("Execute macro...\tC-a, KEY"), (int) '~', menu_ctrl_key, (unsigned long) XK_a, _("Delete macro...\t"), (int) '~', menu_cmd, (unsigned long) CK_Delete_Macro, "", (int) ' ', (void *) 0, 0L, _("Insert date/time\tC-d"), (int) '~', menu_cmd, (unsigned long) CK_Date, _("Format paragraph\tM-p"), (int) '~', menu_cmd, (unsigned long) CK_Paragraph_Format, "", (int) ' ', (void *) 0, 0L, _("Refresh display\tC-l"), (int) '~', menu_cmd, (unsigned long) CK_Refresh );/* Tool hint */ CSetToolHint (catstrs (ident, ".commandmenu", 0), _("Macros and internal commands"));}#endif /* !MIDNIGHT */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -