blob: 6eb4ce6a7580728281b4fd3e29643467dd2927ed [file] [log] [blame]
/*
* Copyright (c) 2006 World Wide Web Consortium,
*
* (Massachusetts Institute of Technology, European Research Consortium for
* Informatics and Mathematics, Keio University). All Rights Reserved. This
* work is distributed under the W3C(r) Software License [1] in the hope that
* it will be useful, but WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
*/
package org.apache.batik.w3c.dom.events;
import org.w3c.dom.events.UIEvent;
import org.w3c.dom.views.AbstractView;
/**
* The <code>KeyboardEvent</code> interface provides specific contextual
* information associated with keyboard devices. Each keyboard event
* references a key using an identifier. Keyboard events are commonly
* directed at the element that has the focus.
* <p> The <code>KeyboardEvent</code> interface provides convenient attributes
* for some common modifiers keys: <code>KeyboardEvent.ctrlKey</code>,
* <code>KeyboardEvent.shiftKey</code>, <code>KeyboardEvent.altKey</code>,
* <code>KeyboardEvent.metaKey</code>. These attributes are equivalent to
* use the method
* <code>KeyboardEvent.getModifierState(keyIdentifierArg)</code> with
* "Control", "Shift", "Alt", or "Meta" respectively.
* <p> To create an instance of the <code>KeyboardEvent</code> interface, use
* the <code>DocumentEvent.createEvent("KeyboardEvent")</code> method call.
* <p>See also the <a href='http://www.w3.org/TR/2006/WD-DOM-Level-3-Events-20060413'>
Document Object Model (DOM) Level 3 Events Specification
</a>.
* @since DOM Level 3
*/
public interface KeyboardEvent extends UIEvent {
// KeyLocationCode
/**
* The key activation is not distinguished as the left or right version
* of the key, and did not originate from the numeric keypad (or did not
* originate with a virtual key corresponding to the numeric keypad).
* Example: the 'Q' key on a PC 101 Key US keyboard.
*/
int DOM_KEY_LOCATION_STANDARD = 0x00;
/**
* The key activated is in the left key location (there is more than one
* possible location for this key). Example: the left Shift key on a PC
* 101 Key US keyboard.
*/
int DOM_KEY_LOCATION_LEFT = 0x01;
/**
* The key activation is in the right key location (there is more than
* one possible location for this key). Example: the right Shift key on
* a PC 101 Key US keyboard.
*/
int DOM_KEY_LOCATION_RIGHT = 0x02;
/**
* The key activation originated on the numeric keypad or with a virtual
* key corresponding to the numeric keypad. Example: the '1' key on a PC
* 101 Key US keyboard located on the numeric pad.
*/
int DOM_KEY_LOCATION_NUMPAD = 0x03;
/**
* <code>keyIdentifier</code> holds the identifier of the key. The key
* identifiers are defined in Appendix A.2 "". Implementations that are
* unable to identify a key must use the key identifier
* <code>"Unidentified"</code>.
*/
String getKeyIdentifier();
/**
* The <code>keyLocation</code> attribute contains an indication of the
* location of they key on the device, as described in .
*/
int getKeyLocation();
/**
* <code>true</code> if the control (Ctrl) key modifier is activated.
*/
boolean getCtrlKey();
/**
* <code>true</code> if the shift (Shift) key modifier is activated.
*/
boolean getShiftKey();
/**
* <code>true</code> if the alternative (Alt) key modifier is activated.
* <p ><b>Note:</b> The Option key modifier on Macintosh systems must be
* represented using this key modifier.
*/
boolean getAltKey();
/**
* <code>true</code> if the meta (Meta) key modifier is activated.
* <p ><b>Note:</b> The Command key modifier on Macintosh systems must be
* represented using this key modifier.
*/
boolean getMetaKey();
/**
* This methods queries the state of a modifier using a key identifier.
* See also .
* @param keyIdentifierArg A modifier key identifier. Common modifier
* keys are <code>"Alt"</code>, <code>"AltGraph"</code>,
* <code>"CapsLock"</code>, <code>"Control"</code>, <code>"Meta"</code>
* , <code>"NumLock"</code>, <code>"Scroll"</code>, or
* <code>"Shift"</code>.
* <p ><b>Note:</b> If an application wishes to distinguish between
* right and left modifiers, this information could be deduced using
* keyboard events and <code>KeyboardEvent.keyLocation</code>.
* @return <code>true</code> if it is modifier key and the modifier is
* activated, <code>false</code> otherwise.
*/
boolean getModifierState(String keyIdentifierArg);
/**
* The <code>initKeyboardEvent</code> method is used to initialize the
* value of a <code>KeyboardEvent</code> object and has the same
* behavior as <code>UIEvent.initUIEvent()</code>. The value of
* <code>UIEvent.detail</code> remains undefined.
* @param typeArg Refer to the <code>UIEvent.initUIEvent()</code> method
* for a description of this parameter.
* @param canBubbleArg Refer to the <code>UIEvent.initUIEvent()</code>
* method for a description of this parameter.
* @param cancelableArg Refer to the <code>UIEvent.initUIEvent()</code>
* method for a description of this parameter.
* @param viewArg Refer to the <code>UIEvent.initUIEvent()</code> method
* for a description of this parameter.
* @param keyIdentifierArg Specifies
* <code>KeyboardEvent.keyIdentifier</code>.
* @param keyLocationArg Specifies <code>KeyboardEvent.keyLocation</code>
* .
* @param modifiersList A <a href='http://www.w3.org/TR/2004/REC-xml-20040204/#NT-S'>white space</a> separated
* list of modifier key identifiers to be activated on this
* object.
*/
void initKeyboardEvent(String typeArg,
boolean canBubbleArg,
boolean cancelableArg,
AbstractView viewArg,
String keyIdentifierArg,
int keyLocationArg,
String modifiersList);
/**
* The <code>initKeyboardEventNS</code> method is used to initialize the
* value of a <code>KeyboardEvent</code> object and has the same
* behavior as <code>UIEvent.initUIEventNS()</code>. The value of
* <code>UIEvent.detail</code> remains undefined.
* @param namespaceURI Refer to the <code>UIEvent.initUIEventNS()</code>
* method for a description of this parameter.
* @param typeArg Refer to the <code>UIEvent.initUIEventNS()</code>
* method for a description of this parameter.
* @param canBubbleArg Refer to the <code>UIEvent.initUIEventNS()</code>
* method for a description of this parameter.
* @param cancelableArg Refer to the <code>UIEvent.initUIEventNS()</code>
* method for a description of this parameter.
* @param viewArg Refer to the <code>UIEvent.initUIEventNS()</code>
* method for a description of this parameter.
* @param keyIdentifierArg Refer to the
* <code>KeyboardEvent.initKeyboardEvent()</code> method for a
* description of this parameter.
* @param keyLocationArg Refer to the
* <code>KeyboardEvent.initKeyboardEvent()</code> method for a
* description of this parameter.
* @param modifiersList A <a href='http://www.w3.org/TR/2004/REC-xml-20040204/#NT-S'>white space</a> separated
* list of modifier key identifiers to be activated on this
* object. As an example, <code>"Control Alt"</code> will activated
* the control and alt modifiers.
*/
void initKeyboardEventNS(String namespaceURI,
String typeArg,
boolean canBubbleArg,
boolean cancelableArg,
AbstractView viewArg,
String keyIdentifierArg,
int keyLocationArg,
String modifiersList);
}