📄 terminalmenuhandlerfull.java
字号:
GridBagConstraints gridc = new GridBagConstraints(); colorsDialog.setLayout(grid); gridc.insets = new Insets(4, 4, 4, 4); gridc.fill = GridBagConstraints.NONE; gridc.anchor = GridBagConstraints.WEST; gridc.gridy = 0; gridc.gridwidth = 10; lbl = new Label("Foreground color:"); grid.setConstraints(lbl, gridc); colorsDialog.add(lbl); gridc.gridy = 1; gridc.gridwidth = 6; choiceFG = new Choice(); grid.setConstraints(choiceFG, gridc); colorsDialog.add(choiceFG); choiceFG.addItemListener(ilC = new Actions(-1)); textFG = new TextField("", 10); grid.setConstraints(textFG, gridc); colorsDialog.add(textFG); gridc.gridy = 2; lbl = new Label("Background color:"); grid.setConstraints(lbl, gridc); colorsDialog.add(lbl); gridc.gridy = 3; choiceBG = new Choice(); grid.setConstraints(choiceBG, gridc); colorsDialog.add(choiceBG); choiceBG.addItemListener(ilC); textBG = new TextField("", 10); grid.setConstraints(textBG, gridc); colorsDialog.add(textBG); gridc.gridy = 4; lbl = new Label("Cursor color:"); grid.setConstraints(lbl, gridc); colorsDialog.add(lbl); gridc.gridy = 5; choiceCC = new Choice(); grid.setConstraints(choiceCC, gridc); colorsDialog.add(choiceCC); choiceCC.addItemListener(ilC); textCC = new TextField("", 10); grid.setConstraints(textCC, gridc); colorsDialog.add(textCC); lblAlertC = new Label("", Label.CENTER); gridc.insets = new Insets(0, 0, 0, 0); gridc.gridy = 6; gridc.fill = GridBagConstraints.HORIZONTAL; gridc.gridwidth = GridBagConstraints.REMAINDER; gridc.anchor = GridBagConstraints.CENTER; grid.setConstraints(lblAlertC, gridc); colorsDialog.add(lblAlertC); Panel bp = new Panel(new FlowLayout()); Button b; bp.add(b = new Button("OK")); b.addActionListener(new Actions(ACT_COLORS)); bp.add(b = new Button("Cancel")); b.addActionListener(new AWTConvenience.CloseAction(colorsDialog)); gridc.gridy = 7; grid.setConstraints(bp, gridc); colorsDialog.add(bp); fillChoices(); colorsDialog.addWindowListener(new AWTConvenience.CloseAdapter(b)); AWTConvenience.setBackgroundOfChildren(colorsDialog); colorsDialog.setResizable(true); colorsDialog.pack(); } initColorSelect(choiceFG, textFG, term.getProperty("fg")); initColorSelect(choiceBG, textBG, term.getProperty("bg")); initColorSelect(choiceCC, textCC, term.getProperty("cc")); updateColors(); lblAlertC.setText(""); AWTConvenience.placeDialog(colorsDialog); choiceFG.requestFocus(); colorsDialog.setVisible(true); } void initColorSelect(Choice c, TextField t, String colStr) { if(Character.isDigit(colStr.charAt(0))) { c.select("custom rgb"); t.setText(colStr); } else { t.setText(""); t.setEnabled(false); c.select(colStr); } } void checkColorSelect(Choice c, TextField t) { int cs = c.getSelectedIndex(); if(cs == 0) { boolean en = t.isEnabled(); if(!en) { t.setEditable(true); t.setEnabled(true); t.setBackground(SystemColor.text); t.requestFocus(); } } else { t.setText(""); t.setEditable(false); t.setEnabled(false); // on the Mac, Choices can't get keyboard focus // so we may need to move focus away from the TextField t.setBackground(term.termColors[cs - 1]); } } void updateColors() { checkColorSelect(choiceFG, textFG); checkColorSelect(choiceBG, textBG); checkColorSelect(choiceCC, textCC); } String getSelectedColor(Choice c, TextField t) { String colStr; if(c.getSelectedIndex() == 0) colStr = t.getText(); else colStr = c.getSelectedItem(); return colStr; } void fillChoices() { int i; choiceBG.add("custom rgb"); choiceFG.add("custom rgb"); choiceCC.add("custom rgb"); for(i = 0; i < term.termColorNames.length; i++) { choiceBG.add(term.termColorNames[i]); choiceFG.add(term.termColorNames[i]); choiceCC.add(term.termColorNames[i]); } } Dialog settingsDialog2; Choice choiceRG, choicePB; Checkbox cbDEL, cbBS, cbCpOnSel, cbCpWinCR, cbAsciiLD, cbLocPG; TextField textSL, textSD; final static String[] rg = { "bottom", "top" }; final static String[] pb = { "middle", "right", "shift+left" }; public final void termSettingsDialog2() { if(settingsDialog2 == null) { settingsDialog2 = new Dialog(term.ownerFrame, "Terminal Misc. Settings", true); Label lbl; GridBagLayout grid = new GridBagLayout(); GridBagConstraints gridc = new GridBagConstraints(); settingsDialog2.setLayout(grid); gridc.insets = new Insets(4, 4, 0, 0); gridc.fill = GridBagConstraints.NONE; gridc.anchor = GridBagConstraints.WEST; gridc.gridwidth = 4; gridc.gridy = 0; gridc.gridwidth = 4; lbl = new Label("Paste button:"); grid.setConstraints(lbl, gridc); settingsDialog2.add(lbl); choicePB = AWTConvenience.newChoice(pb); grid.setConstraints(choicePB, gridc); settingsDialog2.add(choicePB); gridc.gridy = 1; lbl = new Label("Select delim.:"); grid.setConstraints(lbl, gridc); settingsDialog2.add(lbl); textSD = new TextField("", 4); grid.setConstraints(textSD, gridc); settingsDialog2.add(textSD); gridc.gridy = 2; gridc.gridwidth = 8; gridc.insets = new Insets(4, 16, 0, 0); cbCpWinCR = new Checkbox("Copy <cr><nl> line ends"); grid.setConstraints(cbCpWinCR, gridc); settingsDialog2.add(cbCpWinCR); gridc.gridy = 3; cbCpOnSel = new Checkbox("Copy on select"); grid.setConstraints(cbCpOnSel, gridc); settingsDialog2.add(cbCpOnSel); gridc.gridy = 4; gridc.gridwidth = 4; gridc.insets = new Insets(4, 4, 0, 0); lbl = new Label("Resize gravity:"); grid.setConstraints(lbl, gridc); settingsDialog2.add(lbl); choiceRG = AWTConvenience.newChoice(rg); grid.setConstraints(choiceRG, gridc); settingsDialog2.add(choiceRG); gridc.gridy = 5; gridc.gridwidth = 8; gridc.insets = new Insets(4, 16, 0, 0); cbBS = new Checkbox("Backspace sends Delete"); grid.setConstraints(cbBS, gridc); settingsDialog2.add(cbBS); gridc.gridy = 6; cbDEL = new Checkbox("Delete sends Backspace"); grid.setConstraints(cbDEL, gridc); settingsDialog2.add(cbDEL); gridc.gridy = 7; cbLocPG = new Checkbox("Local PgUp/PgDn"); grid.setConstraints(cbLocPG, gridc); settingsDialog2.add(cbLocPG); gridc.gridy = 8; cbAsciiLD = new Checkbox("Use ASCII for line draw"); grid.setConstraints(cbAsciiLD, gridc); settingsDialog2.add(cbAsciiLD); Panel bp = new Panel(new FlowLayout()); Button b; bp.add(b = new Button("OK")); b.addActionListener(new Actions(ACT_MISC)); bp.add(b = new Button("Cancel")); b.addActionListener(new AWTConvenience.CloseAction(settingsDialog2)); gridc.gridy = 9; gridc.fill = GridBagConstraints.HORIZONTAL; gridc.gridwidth = GridBagConstraints.REMAINDER; gridc.anchor = GridBagConstraints.CENTER; grid.setConstraints(bp, gridc); settingsDialog2.add(bp); settingsDialog2.addWindowListener(new AWTConvenience.CloseAdapter(b)); AWTConvenience.setBackgroundOfChildren(settingsDialog2); settingsDialog2.setResizable(true); settingsDialog2.pack(); } choicePB.select(term.getProperty("pb")); String sdSet = term.getProperty("sd"); if((sdSet.charAt(0) == '"' && sdSet.charAt(sdSet.length() - 1) == '"')) { sdSet = sdSet.substring(1, sdSet.length() - 1); } textSD.setText(sdSet); cbCpOnSel.setState(Boolean.valueOf(term.getProperty("cs")).booleanValue()); cbCpWinCR.setState(Boolean.valueOf(term.getProperty("sc")).booleanValue()); choiceRG.select(term.getProperty("rg")); if(term.getProperty("bs").equals("DEL")) { cbBS.setState(true); } else { cbBS.setState(false); } if(term.getProperty("de").equals("BS")) { cbDEL.setState(true); } else { cbDEL.setState(false); } cbAsciiLD.setState(Boolean.valueOf(term.getProperty("ad")).booleanValue()); cbLocPG.setState(Boolean.valueOf(term.getProperty("lp")).booleanValue()); AWTConvenience.placeDialog(settingsDialog2); choiceRG.requestFocus(); settingsDialog2.setVisible(true); } Dialog findDialog = null; TextField findText; Label label; Checkbox dirCheck, caseCheck; Button findBut, cancBut; public final void findDialog() { if(findDialog == null) { findDialog = new Dialog(term.ownerFrame, titleName + " - Find", false); GridBagLayout grid = new GridBagLayout(); GridBagConstraints gridc = new GridBagConstraints(); findDialog.setLayout(grid); gridc.fill = GridBagConstraints.NONE; gridc.anchor = GridBagConstraints.WEST; gridc.gridwidth = 1; gridc.gridy = 0; label = new Label("Find:"); grid.setConstraints(label, gridc); findDialog.add(label); gridc.fill = GridBagConstraints.HORIZONTAL; gridc.gridwidth = 5; findText = new TextField("", 26); grid.setConstraints(findText, gridc); findDialog.add(findText); gridc.gridwidth = 4; gridc.ipadx = 4; gridc.ipady = 4; gridc.insets = new Insets(6, 3, 3, 6); findBut = new Button("Find"); grid.setConstraints(findBut, gridc); findDialog.add(findBut); gridc.insets = new Insets(0, 0, 0, 0); gridc.ipadx = 0; gridc.ipady = 0; gridc.gridwidth = 3; gridc.gridy = 1; gridc.fill = GridBagConstraints.NONE; caseCheck = new Checkbox("Case sensitive"); grid.setConstraints(caseCheck, gridc); findDialog.add(caseCheck); dirCheck = new Checkbox("Find backwards"); grid.setConstraints(dirCheck, gridc); findDialog.add(dirCheck); gridc.gridwidth = 4; gridc.ipadx = 4; gridc.ipady = 4; gridc.insets = new Insets(3, 3, 6, 6); gridc.fill = GridBagConstraints.HORIZONTAL; cancBut = new Button("Cancel"); grid.setConstraints(cancBut, gridc); findDialog.add(cancBut); cancBut.addActionListener(new Actions(ACT_FIND_CANCEL)); findBut.addActionListener(new Actions(ACT_FIND)); findDialog.addWindowListener(new AWTConvenience.CloseAdapter(cancBut)); AWTConvenience.setBackgroundOfChildren(findDialog); AWTConvenience.setKeyListenerOfChildren(findDialog, new AWTConvenience.OKCancelAdapter(findBut, cancBut), null); findDialog.setResizable(true); findDialog.pack(); } AWTConvenience.placeDialog(findDialog); findText.requestFocus(); findDialog.setVisible(true); } final static boolean doMatch(String findStr, char firstChar, char[] chars, int idx, boolean caseSens, int len) { String cmpStr;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -