1 /* 2 * This file is part of "JTA - Telnet/SSH for the JAVA(tm) platform". 3 * 4 * (c) Matthias L. Jugel, Marcus Meißner 1996-2005. All Rights Reserved. 5 * 6 * Please visit http://javatelnet.org/ for updates and contact. 7 * 8 * --LICENSE NOTICE-- 9 * This program is free software; you can redistribute it and/or 10 * modify it under the terms of the GNU General Public License 11 * as published by the Free Software Foundation; either version 2 12 * of the License, or (at your option) any later version. 13 * 14 * This program is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU General Public License for more details. 18 * 19 * You should have received a copy of the GNU General Public License 20 * along with this program; if not, write to the Free Software 21 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 22 * --LICENSE NOTICE-- 23 * 24 */ 25 package de.mud.terminal; 26 27 import java.util.Properties; 28 29 /** 30 * An interface for a terminal that accepts input from keyboard and mouse. 31 * 32 * @author Matthias L. Jugel, Marcus Meißner 33 * @version $Id: VDUInput.java 499 2005-09-29 08:24:54Z leo $ 34 */ 35 public interface VDUInput { 36 37 public final static int KEY_CONTROL = 0x01; 38 public final static int KEY_SHIFT = 0x02; 39 public final static int KEY_ALT = 0x04; 40 public final static int KEY_ACTION = 0x08; 41 42 43 44 /** 45 * Direct access to writing data ... 46 * @param b 47 */ write(byte b[])48 void write(byte b[]); 49 50 /** 51 * Terminal is mouse-aware and requires (x,y) coordinates of 52 * on the terminal (character coordinates) and the button clicked. 53 * @param x 54 * @param y 55 * @param modifiers 56 */ mousePressed(int x, int y, int modifiers)57 void mousePressed(int x, int y, int modifiers); 58 59 /** 60 * Terminal is mouse-aware and requires the coordinates and button 61 * of the release. 62 * @param x 63 * @param y 64 * @param modifiers 65 */ mouseReleased(int x, int y, int modifiers)66 void mouseReleased(int x, int y, int modifiers); 67 68 /** 69 * Override the standard key codes used by the terminal emulation. 70 * @param codes a properties object containing key code definitions 71 */ setKeyCodes(Properties codes)72 void setKeyCodes(Properties codes); 73 74 /** 75 * main keytyping event handler... 76 * @param keyCode the key code 77 * @param keyChar the character represented by the key 78 * @param modifiers shift/alt/control modifiers 79 */ keyPressed(int keyCode, char keyChar, int modifiers)80 void keyPressed(int keyCode, char keyChar, int modifiers); 81 82 /** 83 * Handle key Typed events for the terminal, this will get 84 * all normal key types, but no shift/alt/control/numlock. 85 * @param keyCode the key code 86 * @param keyChar the character represented by the key 87 * @param modifiers shift/alt/control modifiers 88 */ keyTyped(int keyCode, char keyChar, int modifiers)89 void keyTyped(int keyCode, char keyChar, int modifiers); 90 } 91