📄 menu.c
字号:
createMenuItem(subPane, "textFont", "Text Fonts...", 'F', fontDefCB, window, FULL); createMenuItem(subPane, "colors", "Colors...", 'C', colorDefCB, window, FULL); /* Customize Menus sub menu */ subSubPane = createMenu(subPane, "customizeMenus", "Customize Menus", 'u', NULL, FULL);#ifndef VMS createMenuItem(subSubPane, "shellMenu", "Shell Menu...", 'S', shellDefCB, window, FULL);#endif createMenuItem(subSubPane, "macroMenu", "Macro Menu...", 'M', macroDefCB, window, FULL); createMenuItem(subSubPane, "windowBackgroundMenu", "Window Background Menu...", 'W', bgMenuDefCB, window, FULL); createMenuSeparator(subSubPane, "sep1", SHORT); window->pathInWindowsMenuDefItem = createMenuToggle(subSubPane, "pathInWindowsMenu", "Show Path In Windows Menu", 'P', pathInWindowsMenuDefCB, window, GetPrefShowPathInWindowsMenu(), SHORT); createMenuItem(subPane, "custimizeTitle", "Customize Window Title...", 'd', customizeTitleDefCB, window, FULL); /* Search sub menu */ subSubPane = createMenu(subPane, "searching", "Searching", 'g', NULL, FULL); window->searchDlogsDefItem = createMenuToggle(subSubPane, "verbose", "Verbose", 'V', searchDlogsDefCB, window, GetPrefSearchDlogs(), SHORT); window->searchWrapsDefItem = createMenuToggle(subSubPane, "wrapAround", "Wrap Around", 'W', searchWrapsDefCB, window, GetPrefSearchWraps(), SHORT); window->beepOnSearchWrapDefItem = createMenuToggle(subSubPane, "beepOnSearchWrap", "Beep On Search Wrap", 'B', beepOnSearchWrapDefCB, window, GetPrefBeepOnSearchWrap(), SHORT); window->keepSearchDlogsDefItem = createMenuToggle(subSubPane, "keepDialogsUp", "Keep Dialogs Up", 'K', keepSearchDlogsDefCB, window, GetPrefKeepSearchDlogs(), SHORT); subSubSubPane = createMenu(subSubPane, "defaultSearchStyle", "Default Search Style", 'D', NULL, FULL); XtVaSetValues(subSubSubPane, XmNradioBehavior, True, NULL); window->searchLiteralDefItem = createMenuToggle(subSubSubPane, "literal", "Literal", 'L', searchLiteralCB, window, GetPrefSearch() == SEARCH_LITERAL, FULL); window->searchCaseSenseDefItem = createMenuToggle(subSubSubPane, "caseSensitive", "Literal, Case Sensitive", 'C', searchCaseSenseCB, window, GetPrefSearch() == SEARCH_CASE_SENSE, FULL); window->searchLiteralWordDefItem = createMenuToggle(subSubSubPane, "literalWord", "Literal, Whole Word", 'W', searchLiteralWordCB, window, GetPrefSearch() == SEARCH_LITERAL_WORD, FULL); window->searchCaseSenseWordDefItem = createMenuToggle(subSubSubPane, "caseSensitiveWord", "Literal, Case Sensitive, Whole Word", 't', searchCaseSenseWordCB, window, GetPrefSearch() == SEARCH_CASE_SENSE_WORD, FULL); window->searchRegexDefItem = createMenuToggle(subSubSubPane, "regularExpression", "Regular Expression", 'R', searchRegexCB, window, GetPrefSearch() == SEARCH_REGEX, FULL); window->searchRegexNoCaseDefItem = createMenuToggle(subSubSubPane, "regularExpressionNoCase", "Regular Expression, Case Insensitive", 'I', searchRegexNoCaseCB, window, GetPrefSearch() == SEARCH_REGEX_NOCASE, FULL);#ifdef REPLACE_SCOPE subSubSubPane = createMenu(subSubPane, "defaultReplaceScope", "Default Replace Scope", 'R', NULL, FULL); XtVaSetValues(subSubSubPane, XmNradioBehavior, True, NULL); window->replScopeWinDefItem = createMenuToggle(subSubSubPane, "window", "In Window", 'W', replaceScopeWindowCB, window, GetPrefReplaceDefScope() == REPL_DEF_SCOPE_WINDOW, FULL); window->replScopeSelDefItem = createMenuToggle(subSubSubPane, "selection", "In Selection", 'S', replaceScopeSelectionCB, window, GetPrefReplaceDefScope() == REPL_DEF_SCOPE_SELECTION, FULL); window->replScopeSmartDefItem = createMenuToggle(subSubSubPane, "window", "Smart", 'm', replaceScopeSmartCB, window, GetPrefReplaceDefScope() == REPL_DEF_SCOPE_SMART, FULL);#endif /* Syntax Highlighting sub menu */ subSubPane = createMenu(subPane, "syntaxHighlighting","Syntax Highlighting", 'H', NULL, FULL); window->highlightOffDefItem = createMenuRadioToggle(subSubPane, "off","Off", 'O', highlightOffDefCB, window, !GetPrefHighlightSyntax(), FULL); window->highlightDefItem = createMenuRadioToggle(subSubPane, "on", "On", 'n', highlightDefCB, window, GetPrefHighlightSyntax(), FULL); createMenuSeparator(subSubPane, "sep1", SHORT); createMenuItem(subSubPane, "recognitionPatterns", "Recognition Patterns...", 'R', highlightingDefCB, window, FULL); createMenuItem(subSubPane, "textDrawingStyles", "Text Drawing Styles...", 'T', stylesDefCB, window, FULL); window->backlightCharsDefItem = createMenuToggle(subPane, "backlightChars", "Apply Backlighting", 'g', backlightCharsDefCB, window, GetPrefBacklightChars(), FULL); window->statsLineDefItem = createMenuToggle(subPane, "statisticsLine", "Statistics Line", 'S', statsLineDefCB, window, GetPrefStatsLine(), SHORT); window->iSearchLineDefItem = createMenuToggle(subPane, "incrementalSearchLine", "Incremental Search Line", 'i', iSearchLineDefCB, window, GetPrefISearchLine(), FULL); window->lineNumsDefItem = createMenuToggle(subPane, "showLineNumbers", "Show Line Numbers", 'N', lineNumsDefCB, window, GetPrefLineNums(), SHORT); window->saveLastDefItem = createMenuToggle(subPane, "preserveLastVersion", "Make Backup Copy (*.bck)", 'e', preserveDefCB, window, GetPrefSaveOldVersion(), SHORT); window->autoSaveDefItem = createMenuToggle(subPane, "incrementalBackup", "Incremental Backup", 'B', autoSaveDefCB, window, GetPrefAutoSave(), SHORT); /* Show Matching sub menu */ subSubPane = createMenu(subPane, "showMatching", "Show Matching (..)", 'M', NULL, FULL); window->showMatchingOffDefItem = createMenuRadioToggle(subSubPane, "off", "Off", 'O', showMatchingOffDefCB, window, GetPrefShowMatching() == NO_FLASH, SHORT); window->showMatchingDelimitDefItem = createMenuRadioToggle(subSubPane, "delimiter", "Delimiter", 'D', showMatchingDelimitDefCB, window, GetPrefShowMatching() == FLASH_DELIMIT, SHORT); window->showMatchingRangeDefItem = createMenuRadioToggle(subSubPane, "range", "Range", 'R', showMatchingRangeDefCB, window, GetPrefShowMatching() == FLASH_RANGE, SHORT); createMenuSeparator(subSubPane, "sep", SHORT); window->matchSyntaxBasedDefItem = createMenuToggle(subSubPane, "matchSyntax", "Syntax Based", 'S', matchSyntaxBasedDefCB, window, GetPrefMatchSyntaxBased(), SHORT); /* Append LF at end of files on save */ window->appendLFItem = createMenuToggle(subPane, "appendLFItem", "Terminate with Line Break on Save", 'v', appendLFCB, NULL, GetPrefAppendLF(), FULL); window->sortOpenPrevDefItem = createMenuToggle(subPane, "sortOpenPrevMenu", "Sort Open Prev. Menu", 'o', sortOpenPrevDefCB, window, GetPrefSortOpenPrevMenu(), FULL); window->reposDlogsDefItem = createMenuToggle(subPane, "popupsUnderPointer", "Popups Under Pointer", 'P', reposDlogsDefCB, window, GetPrefRepositionDialogs(), FULL); subSubPane = createMenu(subPane, "warnings", "Warnings", 'r', NULL, FULL); window->modWarnDefItem = createMenuToggle(subSubPane, "filesModifiedExternally", "Files Modified Externally", 'F', modWarnDefCB, window, GetPrefWarnFileMods(), FULL); window->modWarnRealDefItem = createMenuToggle(subSubPane, "checkModifiedFileContents", "Check Modified File Contents", 'C', modWarnRealDefCB, window, GetPrefWarnRealFileMods(), FULL); XtSetSensitive(window->modWarnRealDefItem, GetPrefWarnFileMods()); window->exitWarnDefItem = createMenuToggle(subSubPane, "onExit", "On Exit", 'O', exitWarnDefCB, window, GetPrefWarnExit(), FULL); /* Initial Window Size sub menu (simulates radioBehavior) */ subSubPane = createMenu(subPane, "initialwindowSize", "Initial Window Size", 'z', NULL, FULL); /* XtVaSetValues(subSubPane, XmNradioBehavior, True, NULL); */ window->size24x80DefItem = btn = createMenuToggle(subSubPane, "24X80", "24 x 80", '2', size24x80CB, window, False, SHORT); XtVaSetValues(btn, XmNindicatorType, XmONE_OF_MANY, NULL); window->size40x80DefItem = btn = createMenuToggle(subSubPane, "40X80", "40 x 80", '4', size40x80CB, window, False, SHORT); XtVaSetValues(btn, XmNindicatorType, XmONE_OF_MANY, NULL); window->size60x80DefItem = btn = createMenuToggle(subSubPane, "60X80", "60 x 80", '6', size60x80CB, window, False, SHORT); XtVaSetValues(btn, XmNindicatorType, XmONE_OF_MANY, NULL); window->size80x80DefItem = btn = createMenuToggle(subSubPane, "80X80", "80 x 80", '8', size80x80CB, window, False, SHORT); XtVaSetValues(btn, XmNindicatorType, XmONE_OF_MANY, NULL); window->sizeCustomDefItem = btn = createMenuToggle(subSubPane, "custom", "Custom...", 'C', sizeCustomCB, window, False, SHORT); XtVaSetValues(btn, XmNindicatorType, XmONE_OF_MANY, NULL); updateWindowSizeMenu(window); /* ** Remainder of Preferences menu */ createMenuItem(menuPane, "saveDefaults", "Save Defaults...", 'v', savePrefCB, window, FULL);#ifdef SGI_CUSTOM window->shortMenusDefItem = createMenuToggle(menuPane, "shortMenus", "Short Menus", 'h', shortMenusCB, window, GetPrefShortMenus(), SHORT);#endif createMenuSeparator(menuPane, "sep1", SHORT); window->statsLineItem = createMenuToggle(menuPane, "statisticsLine", "Statistics Line", 'S', statsCB, window, GetPrefStatsLine(), SHORT); window->iSearchLineItem = createMenuToggle(menuPane, "incremntalSearchLine","Incremental Search Line", 'I', doActionCB, "set_incremental_search_line", GetPrefISearchLine(), FULL); window->lineNumsItem = createMenuToggle(menuPane, "lineNumbers", "Show Line Numbers", 'N', doActionCB, "set_show_line_numbers", GetPrefLineNums(), SHORT); CreateLanguageModeSubMenu(window, menuPane, "languageMode", "Language Mode", 'L'); subPane = createMenu(menuPane, "autoIndent", "Auto Indent", 'A', NULL, FULL); window->autoIndentOffItem = createMenuRadioToggle(subPane, "off", "Off", 'O', autoIndentOffCB, window, window->indentStyle == NO_AUTO_INDENT, SHORT); window->autoIndentItem = createMenuRadioToggle(subPane, "on", "On", 'n', autoIndentCB, window, window->indentStyle == AUTO_INDENT, SHORT); window->smartIndentItem = createMenuRadioToggle(subPane, "smart", "Smart", 'S', smartIndentCB, window, window->indentStyle == SMART_INDENT, SHORT); subPane = createMenu(menuPane, "wrap", "Wrap", 'W', NULL, FULL); window->noWrapItem = createMenuRadioToggle(subPane, "none", "None", 'N', noWrapCB, window, window->wrapMode==NO_WRAP, SHORT); window->newlineWrapItem = createMenuRadioToggle(subPane, "autoNewlineWrap", "Auto Newline", 'A', newlineWrapCB, window, window->wrapMode==NEWLINE_WRAP, SHORT); window->continuousWrapItem = createMenuRadioToggle(subPane, "continuousWrap", "Continuous", 'C', continuousWrapCB, window, window->wrapMode==CONTINUOUS_WRAP, SHORT); createMenuSeparator(subPane, "sep1", SHORT); createMenuItem(subPane, "wrapMargin", "Wrap Margin...", 'W', wrapMarginCB, window, SHORT); createMenuItem(menuPane, "tabs", "Tabs...", 'T', tabsCB, window, SHORT); createMenuItem(menuPane, "textFont", "Text Fonts...", 'F', fontCB, window, FULL); window->highlightItem = createMenuToggle(menuPane, "highlightSyntax", "Highlight Syntax", 'H', doActionCB, "set_highlight_syntax", GetPrefHighlightSyntax(), SHORT); window->backlightCharsItem = createMenuToggle(menuPane, "backlightChars", "Apply Backlighting", 'g', backlightCharsCB, window, window->backlightChars, FULL);#ifndef VMS window->saveLastItem = createMenuToggle(menuPane, "makeBackupCopy", "Make Backup Copy (*.bck)", 'e', preserveCB, window, window->saveOldVersion, SHORT);#endif window->autoSaveItem = createMenuToggle(menuPane, "incrementalBackup", "Incremental Backup", 'B', autoSaveCB, window, window->autoSave, SHORT); subPane = createMenu(menuPane, "showMatching", "Show Matching (..)", 'M', NULL, FULL); window->showMatchingOffItem = createMenuRadioToggle(subPane, "off", "Off", 'O', showMatchingOffCB, window, window->showMatchingStyle == NO_FLASH, SHORT); window->showMatchingDelimitItem = createMenuRadioToggle(subPane, "delimiter", "Delimiter", 'D', showMatchingDelimitCB, window, window->showMatchingStyle == FLASH_DELIMIT, SHORT); window->showMatchingRangeItem = createMenuRadioToggle(subPane, "range", "Range", 'R', showMatchingRangeCB, window, window->showMatchingStyle == FLASH_RANGE, SHORT); createMenuSeparator(subPane, "sep", SHORT); window->matchSyntaxBasedItem = createMenuToggle(subPane, "matchSyntax", "Syntax Based", 'S', matchSyntaxBasedCB, window, window->matchSyntaxBased, SHORT);#ifndef SGI_CUSTOM createMenuSeparator(menuPane, "sep2", SHORT); window->overtypeModeItem = createMenuToggle(menuPane, "overtype", "Overtype", 'O', doActionCB, "set_overtype_mode", False, SHORT); window->readOnlyItem = createMenuToggle(menuPane, "readOnly", "Read Only", 'y', doActionCB, "set_locked", IS_USER_LOCKED(window->lockReasons), FULL);#endif#ifndef VMS /* ** Create the Shell menu */ menuPane = window->shellMenuPane = createMenu(menuBar, "shellMenu", "Shell", 0, NULL, FULL); btn = createMenuItem(menuPane, "executeCommand", "Execute Command...", 'E', doActionCB, "execute_command_dialog", SHORT); XtVaSetValues(btn, XmNuserData, PERMANENT_MENU_ITEM, NULL); btn = createMenuItem(menuPane, "executeCommandLine", "Execute Command Line", 'x', doActionCB, "execute_command_line", SHORT); XtVaSetValues(btn, XmNuserData, PERMANENT_MENU_ITEM, NULL); window->filterItem = createMenuItem(menuPane, "filterSelection", "Filter Selection...", 'F', doActionCB, "filter_selection_dialog", SHORT); XtVaSetValues(window->filterItem, XmNuserData, PERMANENT_MENU_ITEM, XmNsensitive, window->wasSelected, NULL); window->cancelShellItem = createMenuItem(menuPane, "cancelShellCommand", "Cancel Shell Command", 'C', cancelShellCB, window, SHORT);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -