📄 window.java
字号:
this.header = newheader; } public void enterExitMode() { this.addCommand(cmd_closeconsole); deleteMenu(); } public void paint(Graphics g) { g.setColor(0xffffff); g.fillRect(0, 0, getWidth(), getHeight()); if (showheader) { Font headerfont = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_SMALL); int i; g.setColor(200, 200, 255); g.fillRect(0, 0, getWidth(), headerfont.getHeight()); g.setFont(headerfont); g.setColor(0x000000); g.drawString(header, getWidth()-2, 0, g.RIGHT | g.TOP); // indicators drawn here int[] wins = uihandler.getIndicators(); for (i=0; i<wins.length; i++) { switch (wins[i]) { case STATE_NONE: g.setColor(255, 255, 255); break; case STATE_INFO: g.setColor(170, 170, 170); break; case STATE_MSG: g.setColor(0, 0, 170); break; case STATE_HILIGHT: g.setColor(170, 0, 0); break; case STATE_SELECTED: g.setColor(0, 0, 0); break; } g.fillRect(3+(i*5), 1, 3, 3); } if (uihandler.keylock) { int keyx=3, keyy=5; g.setColor(0, 0, 0); g.drawLine(keyx, keyy+1, keyx, keyy+3); g.drawLine(keyx+2, keyy+1, keyx+2, keyy+3); g.drawLine(keyx+4, keyy+1, keyx+4, keyy+2); g.drawLine(keyx+6, keyy+1, keyx+6, keyy+2); g.drawLine(keyx, keyy+1, keyx+3, keyy+1); g.drawLine(keyx+5, keyy, keyx+5, keyy); g.drawLine(keyx+5, keyy+3, keyx+5, keyy+3); } } textarea.draw(g); } protected void keyPressed(int keyCode) { if (keyCode == KEY_NUM5) { keylocktime = System.currentTimeMillis(); if (!uihandler.keylock) jmIrc.forceUpdate(); } else if (keyCode == KEY_POUND) { if (System.currentTimeMillis()-keylocktime < 1000) { if (!uihandler.keylock) { Alert a = new Alert("Keylock", "Keypad locked!", null, AlertType.INFO); a.setTimeout(1000); uihandler.setDisplay(a); uihandler.setWinlock(true); deleteMenu(); } else { Alert a = new Alert("Keylock", "Keylock removed!", null, AlertType.INFO); a.setTimeout(1000); uihandler.setDisplay(a); uihandler.setWinlock(false); addMenu(); } uihandler.keylock = !uihandler.keylock; keylocktime = 0; repaint(); return; } } else keylocktime = 0; if (uihandler.keylock) { // show information } else if (keyCode == KEY_NUM2 || getGameAction(keyCode) == UP) { textarea.updatePosition(-1); repaint(); } else if (keyCode == KEY_NUM8 || getGameAction(keyCode) == DOWN) { textarea.updatePosition(1); repaint(); } else if (keyCode == KEY_NUM4 || getGameAction(keyCode) == LEFT) { uihandler.displayPreviousWindow(); } else if (keyCode == KEY_NUM6 || getGameAction(keyCode) == RIGHT) { uihandler.displayNextWindow(); } else if (keyCode == KEY_NUM1) { textarea.setPosition(0); repaint(); } else if (keyCode == KEY_NUM7) { textarea.setPosition(-1); repaint(); } else if (keyCode == KEY_NUM3) { textarea.setPosition(-2); repaint(); } else if (keyCode == KEY_NUM9) { textarea.setPosition(-3); repaint(); } else if (keyCode == KEY_POUND) { uihandler.setHeader(!showheader); repaint(); } } protected void keyReleased(int keyCode) { if (!uihandler.keylock && keyCode == KEY_STAR) { this.commandAction(cmd_msg, null); } } public void commandAction(Command c, Displayable s) { if (c == cmd_join) { textbox = new TextBox(JOIN_CHANNEL,"",30,TextField.ANY); textbox.setCommandListener(new TextboxListener()); textbox.addCommand(cmd_ok); textbox.addCommand(cmd_cancel); uihandler.setWinlock(true); uihandler.setDisplay(textbox); } else if (c == cmd_nick) { textbox = new TextBox(CHANGE_NICK,"",30,TextField.ANY); textbox.setCommandListener(new TextboxListener()); textbox.addCommand(cmd_ok); textbox.addCommand(cmd_cancel); uihandler.setWinlock(true); uihandler.setDisplay(textbox); } else if (c == cmd_query) { textbox = new TextBox("Query","",30,TextField.ANY); textbox.setCommandListener(new TextboxListener()); textbox.addCommand(cmd_ok); textbox.addCommand(cmd_cancel); uihandler.setWinlock(true); uihandler.setDisplay(textbox); } else if (c == cmd_disconnect) { jmIrc.disconnect(); } else if (c == cmd_closeconsole) { uihandler.cleanup(); } else if (c == cmd_msg) { textbox = new TextBox(type==Window.TYPE_CONSOLE?"Write raw text":"Write text","",1000,TextField.ANY); textbox.setCommandListener(new TextboxListener()); textbox.addCommand(cmd_send); textbox.addCommand(cmd_cancel); uihandler.setWinlock(true); uihandler.setDisplay(textbox); } else if (c == cmd_action) { textbox = new TextBox("Write Action","",1000,TextField.ANY); textbox.setCommandListener(new TextboxListener()); textbox.addCommand(cmd_send_action); textbox.addCommand(cmd_cancel); uihandler.setWinlock(true); uihandler.setDisplay(textbox); } else if (c == cmd_traffic) { String str="Bytes in:" + jmIrc.getBytesIn() + "\n"; str +="Bytes out:" + jmIrc.getBytesOut() + "\n"; str +="Total:" + (jmIrc.getBytesOut() + jmIrc.getBytesIn()) ; Alert a = new Alert("ByteCounter",str,null, AlertType.INFO); a.setTimeout(a.FOREVER); uihandler.setDisplay(a); } else if (c == cmd_timestamp) { removeCommand(cmd_timestamp); if (timestamp) cmd_timestamp = new Command("Timestamp on", Command.SCREEN, 60); else cmd_timestamp = new Command("Timestamp off", Command.SCREEN, 60); addCommand(cmd_timestamp); timestamp = !timestamp; repaint(); } else if (c == cmd_names) { listnames(c,s); } else if (c == cmd_whois) { jmIrc.writeLine("WHOIS " + name); } else if (c == cmd_close) { if (type == Window.TYPE_CHANNEL) { jmIrc.writeLine("PART " + name); } close(); } else if (nameslist != null && c == nameslist.SELECT_COMMAND) { String name = nameslist.getString(nameslist.getSelectedIndex()); if (nameslist.getSelectedIndex() == 0) { show(); nameslist = null; } else if (name.equals("[Next]")) { person_position++; listnames(c,s); } else if (name.equals("[Previous]")) { person_position--; listnames(c, s); } else { namecmdlist = new List(name, List.IMPLICIT); namecmdlist.append("Query",null); namecmdlist.append("Whois",null); namecmdlist.append("Op",null); namecmdlist.append("Deop",null); namecmdlist.append("Voice",null); namecmdlist.append("Devoice",null); namecmdlist.append("Kick",null); namecmdlist.append("[Back]",null); namecmdlist.setCommandListener(this); uihandler.setDisplay(namecmdlist); nameslist = null; } } else if (namecmdlist != null && c == List.SELECT_COMMAND) { String name = namecmdlist.getString(namecmdlist.getSelectedIndex()); String nick = namecmdlist.getTitle(); if (name.equals("[Back]")) { listnames(c, s); namecmdlist = null; } else if (name.equals("Query")) { Window p = uihandler.getPrivate(nick); state = STATE_NONE; p.show(); namecmdlist = null; } else if (name.equals("Whois")) { jmIrc.writeLine("WHOIS " + trimName(nick)); show(); namecmdlist = null; } else if (name.equals("Op")) { jmIrc.writeLine("MODE " + this.name + " +o " + trimName(nick)); show(); namecmdlist = null; } else if (name.equals("Deop")) { jmIrc.writeLine("MODE " + this.name + " -o " + trimName(nick)); show(); namecmdlist = null; } else if (name.equals("Voice")) { jmIrc.writeLine("MODE " + this.name + " +v " + trimName(nick)); show(); namecmdlist = null; } else if (name.equals("Devoice")) { jmIrc.writeLine("MODE " + this.name + " -v " + trimName(nick)); show(); namecmdlist = null; } else if (name.equals("Kick")) { jmIrc.writeLine("KICK " + this.name + " " + trimName(nick) + " :" + uihandler.nick); show(); namecmdlist = null; } } } private class TextboxListener implements CommandListener { public void commandAction(Command c, Displayable s) { uihandler.setWinlock(false); if (c == cmd_send) sendData(); else if (c == cmd_cancel) { show(); textbox = null; } else if (c == cmd_send_action) { String str = textbox.getString(); show(); jmIrc.writeLine("PRIVMSG " + name + " :\001ACTION " + str + "\001"); writeAction("* " + uihandler.nick + " " + str); textbox = null; } else if (c == cmd_ok) { if (textbox.getTitle().equals(JOIN_CHANNEL)) { String str = textbox.getString(); if (!str.startsWith("#") && !str.startsWith("&") && !str.startsWith("!")) str = "#" + str; show(); jmIrc.writeLine("JOIN " + str); textbox = null; } else if(textbox.getTitle().equals(CHANGE_NICK)) { String str = textbox.getString(); jmIrc.writeLine("NICK " + str); uihandler.nick = str; show(); textbox = null; } else { String str = textbox.getString(); uihandler.getPrivate(str); textbox = null; } } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -