Home | History | Annotate | Download | only in terminal
      1 /*
      2  * This file is part of "JTA - Telnet/SSH for the JAVA(tm) platform".
      3  *
      4  * (c) Matthias L. Jugel, Marcus Meiner 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  * @version $Id: VDUInput.java 499 2005-09-29 08:24:54Z leo $
     33  */
     34 public interface VDUInput {
     35 
     36   public final static int KEY_CONTROL = 0x01;
     37   public final static int KEY_SHIFT = 0x02;
     38   public final static int KEY_ALT = 0x04;
     39   public final static int KEY_ACTION = 0x08;
     40 
     41 
     42 
     43   /**
     44    * Direct access to writing data ...
     45    * @param b
     46    */
     47   void write(byte b[]);
     48 
     49   /**
     50    * Terminal is mouse-aware and requires (x,y) coordinates of
     51    * on the terminal (character coordinates) and the button clicked.
     52    * @param x
     53    * @param y
     54    * @param modifiers
     55    */
     56   void mousePressed(int x, int y, int modifiers);
     57 
     58   /**
     59    * Terminal is mouse-aware and requires the coordinates and button
     60    * of the release.
     61    * @param x
     62    * @param y
     63    * @param modifiers
     64    */
     65   void mouseReleased(int x, int y, int modifiers);
     66 
     67   /**
     68    * Override the standard key codes used by the terminal emulation.
     69    * @param codes a properties object containing key code definitions
     70    */
     71   void setKeyCodes(Properties codes);
     72 
     73   /**
     74    * main keytyping event handler...
     75    * @param keyCode the key code
     76    * @param keyChar the character represented by the key
     77    * @param modifiers shift/alt/control modifiers
     78    */
     79   void keyPressed(int keyCode, char keyChar, int modifiers);
     80 
     81   /**
     82    * Handle key Typed events for the terminal, this will get
     83    * all normal key types, but no shift/alt/control/numlock.
     84    * @param keyCode the key code
     85    * @param keyChar the character represented by the key
     86    * @param modifiers shift/alt/control modifiers
     87    */
     88   void keyTyped(int keyCode, char keyChar, int modifiers);
     89 }
     90