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