//Auto-generated by kalyptus. DO NOT EDIT.
namespace DOM {
	using Kimono;
	using System;
	using Qyoto;
	/// <remarks>
	///  Introduced in DOM Level 3
	///  DOM.KeyboardEvent
	///  The KeyboardEvent 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. 
	///  The KeyboardEvent interface provides convenient attributes for some
	///  common modifiers keys: KeyboardEvent.ctrlKey, KeyboardEvent.shiftKey, 
	///  KeyboardEvent.altKey, KeyboardEvent.metaKey. These attributes are 
	///  equivalent to use the method KeyboardEvent.getModifierState(keyIdentifierArg) 
	///  with "Control", "Shift", "Alt", or "Meta" respectively. 
	///  To create an instance of the KeyboardEvent interface, use the 
	///  DocumentEvent.createEvent("KeyboardEvent") method call.
	///  </remarks>		<short>    Introduced in DOM Level 3 </short>
	[SmokeClass("DOM::KeyboardEvent")]
	public class KeyboardEvent : DOM.UIEvent, IDisposable {
 		protected KeyboardEvent(Type dummy) : base((Type) null) {}
		protected new void CreateProxy() {
			interceptor = new SmokeInvocation(typeof(KeyboardEvent), this);
		}
		public enum KeyLocation {
			DOM_KEY_LOCATION_STANDARD = 0x00,
			DOM_KEY_LOCATION_LEFT = 0x01,
			DOM_KEY_LOCATION_RIGHT = 0x02,
			DOM_KEY_LOCATION_NUMPAD = 0x03,
		}
		public KeyboardEvent() : this((Type) null) {
			CreateProxy();
			interceptor.Invoke("KeyboardEvent", "KeyboardEvent()", typeof(void));
		}
		public KeyboardEvent(DOM.KeyboardEvent other) : this((Type) null) {
			CreateProxy();
			interceptor.Invoke("KeyboardEvent#", "KeyboardEvent(const DOM::KeyboardEvent&)", typeof(void), typeof(DOM.KeyboardEvent), other);
		}
		public KeyboardEvent(DOM.Event other) : this((Type) null) {
			CreateProxy();
			interceptor.Invoke("KeyboardEvent#", "KeyboardEvent(const DOM::Event&)", typeof(void), typeof(DOM.Event), other);
		}
		/// <remarks> 
		///  keyIdentifier of type DOMString, readonly 
		///  keyIdentifier holds the identifier of the key. The key identifiers
		///  are defined in Appendix A.2 "Key identifiers set" 
		///  (http://www.w3.org/TR/DOM-Level-3-Events/keyset.html#KeySet-Set)
		///     </remarks>		<short>     keyIdentifier of type DOMString, readonly  </short>
		public DOM.DOMString KeyIdentifier() {
			return (DOM.DOMString) interceptor.Invoke("keyIdentifier", "keyIdentifier() const", typeof(DOM.DOMString));
		}
		/// <remarks>
		///  keyLocation of type unsigned long, readonly 
		///  The keyLocation attribute contains an indication of the location
		///  of they key on the device.
		///  See the KeyLocation enum for possible values
		///      </remarks>		<short>    keyLocation of type unsigned long, readonly  </short>
		public ulong keyLocation() {
			return (ulong) interceptor.Invoke("keyLocation", "keyLocation() const", typeof(ulong));
		}
		/// <remarks>
		///  ctrlKey of type boolean, readonly
		///  true if the control (Ctrl) key modifier is activated. 
		///      </remarks>		<short>    ctrlKey of type boolean, readonly </short>
		public bool CtrlKey() {
			return (bool) interceptor.Invoke("ctrlKey", "ctrlKey() const", typeof(bool));
		}
		/// <remarks>
		///  shiftKey of type boolean, readonly
		///  true if the shift (Shift) key modifier is activated. 
		///      </remarks>		<short>    shiftKey of type boolean, readonly </short>
		public bool ShiftKey() {
			return (bool) interceptor.Invoke("shiftKey", "shiftKey() const", typeof(bool));
		}
		/// <remarks>
		///  altKey of type boolean, readonly
		///  true if the alt (Alt) key modifier is activated. 
		///      </remarks>		<short>    altKey of type boolean, readonly </short>
		public bool AltKey() {
			return (bool) interceptor.Invoke("altKey", "altKey() const", typeof(bool));
		}
		/// <remarks>
		///  metaKey of type boolean, readonly
		///  true if the meta (Meta) key modifier is activated. 
		///      </remarks>		<short>    metaKey of type boolean, readonly </short>
		public bool MetaKey() {
			return (bool) interceptor.Invoke("metaKey", "metaKey() const", typeof(bool));
		}
		/// <remarks>
		///  getModifierState
		///  This methods queries the state of a modifier using a key identifier
		///  Parameters:
		///  keyIdentifierArg of type DOMString
		///    A modifier key identifier. Supported modifier keys are "Alt", "Control", "Meta", "Shift". 
		///  Return Value 
		///    boolean true if it is modifier key and the modifier is activated, false otherwise.
		///      </remarks>		<short>    getModifierState </short>
		public bool GetModifierState(DOM.DOMString keyIdentifierArg) {
			return (bool) interceptor.Invoke("getModifierState#", "getModifierState(DOM::DOMString) const", typeof(bool), typeof(DOM.DOMString), keyIdentifierArg);
		}
		/// <remarks>
		///  initKeyboardEvent 
		///  The initKeyboardEvent method is used to initialize the value of a 
		///  KeyboardEvent object and has the same behavior as UIEvent.initUIEvent(). 
		///  The value of UIEvent.detail remains undefined. 
		///  Parameters:
		///  typeArg of type DOMString
		///    Specifies the event type.
		///  canBubbleArg of type boolean
		///    Specifies whether or not the event can bubble.
		///  cancelableArg of type boolean
		///    Specifies whether or not the event's default action can be prevent.
		///  viewArg of type views.AbstractView
		///    Specifies the TextEvent's AbstractView.
		///  keyIdentifierArg of type DOMString
		///    Specifies KeyboardEvent.keyIdentifier.   
		///  keyLocationArg of type unsigned long
		///    Specifies KeyboardEvent.keyLocation. 
		///  modifiersList of type DOMString
		///    A white space separated list of modifier key identifiers to be activated on this object. 
		///      </remarks>		<short>    initKeyboardEvent  </short>
		public void InitKeyboardEvent(DOM.DOMString typeArg, bool canBubbleArg, bool cancelableArg, DOM.AbstractView viewArg, DOM.DOMString keyIdentifierArg, ulong keyLocationArg, DOM.DOMString modifiersList) {
			interceptor.Invoke("initKeyboardEvent#$$##$#", "initKeyboardEvent(DOM::DOMString, bool, bool, DOM::AbstractView, DOM::DOMString, unsigned long, DOM::DOMString)", typeof(void), typeof(DOM.DOMString), typeArg, typeof(bool), canBubbleArg, typeof(bool), cancelableArg, typeof(DOM.AbstractView), viewArg, typeof(DOM.DOMString), keyIdentifierArg, typeof(ulong), keyLocationArg, typeof(DOM.DOMString), modifiersList);
		}
		~KeyboardEvent() {
			interceptor.Invoke("~KeyboardEvent", "~KeyboardEvent()", typeof(void));
		}
		public new void Dispose() {
			interceptor.Invoke("~KeyboardEvent", "~KeyboardEvent()", typeof(void));
		}
	}
}
