//Auto-generated by kalyptus. DO NOT EDIT.
namespace DOM {
	using Kimono;
	using System;
	using Qyoto;
	/// <remarks>
	///  Introduced in DOM Level 2
	///  The MouseEvent interface provides specific contextual information associated
	///  with Mouse events.
	///  The detail attribute inherited from UIEvent indicates the number of times a
	///  mouse button has been pressed and released over the same screen location
	///  during a user action. The attribute value is 1 when the user begins this
	///  action and increments by 1 for each full sequence of pressing and releasing.
	///  If the user moves the mouse between the mousedown and mouseup the value will
	///  be set to 0, indicating that no click is occurring.
	///  In the case of nested elements mouse events are always targeted at the most
	///  deeply nested element. Ancestors of the targeted element may use bubbling to
	///  obtain notification of mouse events which occur within its descendent elements.
	///  </remarks>		<short>    Introduced in DOM Level 2 </short>
	[SmokeClass("DOM::MouseEvent")]
	public class MouseEvent : DOM.UIEvent {
 		protected MouseEvent(Type dummy) : base((Type) null) {}
		protected new void CreateProxy() {
			interceptor = new SmokeInvocation(typeof(MouseEvent), this);
		}
		// DOM::MouseEvent* MouseEvent(DOM::MouseEventImpl* arg1); >>>> NOT CONVERTED
		public MouseEvent() : this((Type) null) {
			CreateProxy();
			interceptor.Invoke("MouseEvent", "MouseEvent()", typeof(void));
		}
		public MouseEvent(DOM.MouseEvent other) : this((Type) null) {
			CreateProxy();
			interceptor.Invoke("MouseEvent#", "MouseEvent(const DOM::MouseEvent&)", typeof(void), typeof(DOM.MouseEvent), other);
		}
		public MouseEvent(DOM.Event other) : this((Type) null) {
			CreateProxy();
			interceptor.Invoke("MouseEvent#", "MouseEvent(const DOM::Event&)", typeof(void), typeof(DOM.Event), other);
		}
		/// <remarks>
		///  The horizontal coordinate at which the event occurred relative to the
		///  origin of the screen coordinate system.
		///      </remarks>		<short>    The horizontal coordinate at which the event occurred relative to the  origin of the screen coordinate system.</short>
		public long ScreenX() {
			return (long) interceptor.Invoke("screenX", "screenX() const", typeof(long));
		}
		/// <remarks>
		///  The vertical coordinate at which the event occurred relative to the
		///  origin of the screen coordinate system.
		///      </remarks>		<short>    The vertical coordinate at which the event occurred relative to the  origin of the screen coordinate system.</short>
		public long ScreenY() {
			return (long) interceptor.Invoke("screenY", "screenY() const", typeof(long));
		}
		/// <remarks>
		///  The horizontal coordinate at which the event occurred relative to the
		///  DOM implementation's client area.
		///      </remarks>		<short>    The horizontal coordinate at which the event occurred relative to the  DOM implementation's client area.</short>
		public long ClientX() {
			return (long) interceptor.Invoke("clientX", "clientX() const", typeof(long));
		}
		/// <remarks>
		///  The vertical coordinate at which the event occurred relative to the DOM
		///  implementation's client area.
		///      </remarks>		<short>    The vertical coordinate at which the event occurred relative to the DOM  implementation's client area.</short>
		public long ClientY() {
			return (long) interceptor.Invoke("clientY", "clientY() const", typeof(long));
		}
		/// <remarks>
		///  Used to indicate whether the 'ctrl' key was depressed during the firing
		///  of the event.
		///      </remarks>		<short>    Used to indicate whether the 'ctrl' key was depressed during the firing  of the event.</short>
		public bool CtrlKey() {
			return (bool) interceptor.Invoke("ctrlKey", "ctrlKey() const", typeof(bool));
		}
		/// <remarks>
		///  Used to indicate whether the 'shift' key was depressed during the firing
		///  of the event.
		///      </remarks>		<short>    Used to indicate whether the 'shift' key was depressed during the firing  of the event.</short>
		public bool ShiftKey() {
			return (bool) interceptor.Invoke("shiftKey", "shiftKey() const", typeof(bool));
		}
		/// <remarks>
		///  Used to indicate whether the 'alt' key was depressed during the firing
		///  of the event. On some platforms this key may map to an alternative key
		///  name.
		///      </remarks>		<short>    Used to indicate whether the 'alt' key was depressed during the firing  of the event.</short>
		public bool AltKey() {
			return (bool) interceptor.Invoke("altKey", "altKey() const", typeof(bool));
		}
		/// <remarks>
		///  Used to indicate whether the 'meta' key was depressed during the firing
		///  of the event. On some platforms this key may map to an alternative key
		///  name.
		///      </remarks>		<short>    Used to indicate whether the 'meta' key was depressed during the firing  of the event.</short>
		public bool MetaKey() {
			return (bool) interceptor.Invoke("metaKey", "metaKey() const", typeof(bool));
		}
		/// <remarks>
		///  During mouse events caused by the depression or release of a mouse
		///  button, button is used to indicate which mouse button changed state. The
		///  values for button range from zero to indicate the left button of the
		///  mouse, one to indicate the middle button if present, and two to indicate
		///  the right button. For mice configured for left handed use in which the
		///  button actions are reversed the values are instead read from right to
		///  left.
		///      </remarks>		<short>    During mouse events caused by the depression or release of a mouse  button, button is used to indicate which mouse button changed state.</short>
		public ushort Button() {
			return (ushort) interceptor.Invoke("button", "button() const", typeof(ushort));
		}
		/// <remarks>
		///  Used to identify a secondary EventTarget related to a UI event.
		///  Currently this attribute is used with the mouseover event to indicate
		///  the EventTarget which the pointing device exited and with the mouseout
		///  event to indicate the EventTarget which the pointing device entered.
		///      </remarks>		<short>    Used to identify a secondary EventTarget related to a UI event.</short>
		public DOM.Node RelatedTarget() {
			return (DOM.Node) interceptor.Invoke("relatedTarget", "relatedTarget() const", typeof(DOM.Node));
		}
		/// <remarks>
		///  The initMouseEvent method is used to initialize the value of a
		///  MouseEvent created through the DocumentEvent interface. This method may
		///  only be called before the MouseEvent has been dispatched via the
		///  dispatchEvent method, though it may be called multiple times during that
		///  phase if necessary. If called multiple times, the final invocation takes
		///  precedence. Parameters
		/// <param> name="typeArg" Specifies the event type.
		/// </param><param> name="canBubbleArg" Specifies whether or not the event can bubble.
		/// </param><param> name="cancelableArg" Specifies whether or not the event's default action can be prevented.
		/// </param><param> name="viewArg" Specifies the Event's AbstractView.
		/// </param><param> name="detailArg" Specifies the Event's mouse click count.
		/// </param><param> name="screenXArg" Specifies the Event's screen x coordinate
		/// </param><param> name="screenYArg" Specifies the Event's screen y coordinate
		/// </param><param> name="clientXArg" Specifies the Event's client x coordinate
		/// </param><param> name="clientYArg" Specifies the Event's client y coordinate
		/// </param><param> name="ctrlKeyArg" Specifies whether or not control key was depressed during the Event.
		/// </param><param> name="altKeyArg" Specifies whether or not alt key was depressed during the Event.
		/// </param><param> name="shiftKeyArg" Specifies whether or not shift key was depressed during the Event.
		/// </param><param> name="metaKeyArg" Specifies whether or not meta key was depressed during the Event.
		/// </param><param> name="buttonArg" Specifies the Event's mouse button.
		/// </param><param> name="relatedTargetArg" Specifies the Event's related EventTarget.
		/// </param>     </remarks>		<short>    The initMouseEvent method is used to initialize the value of a  MouseEvent created through the DocumentEvent interface.</short>
		public void InitMouseEvent(DOM.DOMString typeArg, bool canBubbleArg, bool cancelableArg, DOM.AbstractView viewArg, long detailArg, long screenXArg, long screenYArg, long clientXArg, long clientYArg, bool ctrlKeyArg, bool altKeyArg, bool shiftKeyArg, bool metaKeyArg, ushort buttonArg, DOM.Node relatedTargetArg) {
			interceptor.Invoke("initMouseEvent#$$#$$$$$$$$$$#", "initMouseEvent(const DOM::DOMString&, bool, bool, const DOM::AbstractView&, long, long, long, long, long, bool, bool, bool, bool, unsigned short, const DOM::Node&)", typeof(void), typeof(DOM.DOMString), typeArg, typeof(bool), canBubbleArg, typeof(bool), cancelableArg, typeof(DOM.AbstractView), viewArg, typeof(long), detailArg, typeof(long), screenXArg, typeof(long), screenYArg, typeof(long), clientXArg, typeof(long), clientYArg, typeof(bool), ctrlKeyArg, typeof(bool), altKeyArg, typeof(bool), shiftKeyArg, typeof(bool), metaKeyArg, typeof(ushort), buttonArg, typeof(DOM.Node), relatedTargetArg);
		}
	}
}
