declare namespace java { namespace awt { namespace event { /** * An event which indicates that a mouse action occurred in a component. * A mouse action is considered to occur in a particular component if and only * if the mouse cursor is over the unobscured part of the component's bounds * when the action happens. * For lightweight components, such as Swing's components, mouse events * are only dispatched to the component if the mouse event type has been * enabled on the component. A mouse event type is enabled by adding the * appropriate mouse-based {@code EventListener} to the component * ({@link MouseListener} or {@link MouseMotionListener}), or by invoking * {@link Component#enableEvents(long)} with the appropriate mask parameter * ({@code AWTEvent.MOUSE_EVENT_MASK} or {@code AWTEvent.MOUSE_MOTION_EVENT_MASK}). * If the mouse event type has not been enabled on the component, the * corresponding mouse events are dispatched to the first ancestor that * has enabled the mouse event type. *

* For example, if a {@code MouseListener} has been added to a component, or * {@code enableEvents(AWTEvent.MOUSE_EVENT_MASK)} has been invoked, then all * the events defined by {@code MouseListener} are dispatched to the component. * On the other hand, if a {@code MouseMotionListener} has not been added and * {@code enableEvents} has not been invoked with * {@code AWTEvent.MOUSE_MOTION_EVENT_MASK}, then mouse motion events are not * dispatched to the component. Instead the mouse motion events are * dispatched to the first ancestors that has enabled mouse motion * events. *

* This low-level event is generated by a component object for: *

*

* A MouseEvent object is passed to every * MouseListener * or MouseAdapter object which is registered to receive * the "interesting" mouse events using the component's * addMouseListener method. * (MouseAdapter objects implement the * MouseListener interface.) Each such listener object * gets a MouseEvent containing the mouse event. *

* A MouseEvent object is also passed to every * MouseMotionListener or * MouseMotionAdapter object which is registered to receive * mouse motion events using the component's * addMouseMotionListener * method. (MouseMotionAdapter objects implement the * MouseMotionListener interface.) Each such listener object * gets a MouseEvent containing the mouse motion event. *

* When a mouse button is clicked, events are generated and sent to the * registered MouseListeners. * The state of modal keys can be retrieved using {@link InputEvent#getModifiers} * and {@link InputEvent#getModifiersEx}. * The button mask returned by {@link InputEvent#getModifiers} reflects * only the button that changed state, not the current state of all buttons. * (Note: Due to overlap in the values of ALT_MASK/BUTTON2_MASK and * META_MASK/BUTTON3_MASK, this is not always true for mouse events involving * modifier keys). * To get the state of all buttons and modifier keys, use * {@link InputEvent#getModifiersEx}. * The button which has changed state is returned by {@link MouseEvent#getButton} *

* For example, if the first mouse button is pressed, events are sent in the * following order: *

             * id              modifiers    button 
             * MOUSE_PRESSED:  BUTTON1_MASK BUTTON1
             * MOUSE_RELEASED: BUTTON1_MASK BUTTON1
             * MOUSE_CLICKED:  BUTTON1_MASK BUTTON1
             * 
* When multiple mouse buttons are pressed, each press, release, and click * results in a separate event. *

* For example, if the user presses button 1 followed by * button 2, and then releases them in the same order, * the following sequence of events is generated: *

             * id              modifiers    button 
             * MOUSE_PRESSED:  BUTTON1_MASK BUTTON1
             * MOUSE_PRESSED:  BUTTON2_MASK BUTTON2
             * MOUSE_RELEASED: BUTTON1_MASK BUTTON1
             * MOUSE_CLICKED:  BUTTON1_MASK BUTTON1
             * MOUSE_RELEASED: BUTTON2_MASK BUTTON2
             * MOUSE_CLICKED:  BUTTON2_MASK BUTTON2
             * 
* If button 2 is released first, the * MOUSE_RELEASED/MOUSE_CLICKED pair * for BUTTON2_MASK arrives first, * followed by the pair for BUTTON1_MASK. *

* Some extra mouse buttons are added to extend the standard set of buttons * represented by the following constants:{@code BUTTON1}, {@code BUTTON2}, and {@code BUTTON3}. * Extra buttons have no assigned {@code BUTTONx} * constants as well as their button masks have no assigned {@code BUTTONx_DOWN_MASK} * constants. Nevertheless, ordinal numbers starting from 4 may be * used as button numbers (button ids). Values obtained by the * {@link InputEvent#getMaskForButton(int) getMaskForButton(button)} method may be used * as button masks. *

* {@code MOUSE_DRAGGED} events are delivered to the {@code Component} * in which the mouse button was pressed until the mouse button is released * (regardless of whether the mouse position is within the bounds of the * {@code Component}). Due to platform-dependent Drag&Drop implementations, * {@code MOUSE_DRAGGED} events may not be delivered during a native * Drag&Drop operation. * In a multi-screen environment mouse drag events are delivered to the * Component even if the mouse position is outside the bounds of the * GraphicsConfiguration associated with that * Component. However, the reported position for mouse drag events * in this case may differ from the actual mouse position: *

*

* An unspecified behavior will be caused if the {@code id} parameter * of any particular {@code MouseEvent} instance is not * in the range from {@code MOUSE_FIRST} to {@code MOUSE_LAST}-1 * ({@code MOUSE_WHEEL} is not acceptable). * @author Carl Quinn * @see MouseAdapter * @see MouseListener * @see MouseMotionAdapter * @see MouseMotionListener * @see MouseWheelListener * @see Tutorial: Writing a Mouse Listener * @see Tutorial: Writing a Mouse Motion Listener * @since 1.1 */ // @ts-ignore class MouseEvent extends java.awt.event.InputEvent { /** * Constructs a MouseEvent object with the * specified source component, * type, time, modifiers, coordinates, click count, popupTrigger flag, * and button number. *

* Creating an invalid event (such * as by using more than one of the old _MASKs, or modifier/button * values which don't match) results in unspecified behavior. * An invocation of the form * MouseEvent(source, id, when, modifiers, x, y, clickCount, popupTrigger, button) * behaves in exactly the same way as the invocation * {@link #MouseEvent(Component, int, long, int, int, int, * int, int, int, boolean, int) MouseEvent}(source, id, when, modifiers, * x, y, xAbs, yAbs, clickCount, popupTrigger, button) * where xAbs and yAbs defines as source's location on screen plus * relative coordinates x and y. * xAbs and yAbs are set to zero if the source is not showing. * This method throws an * IllegalArgumentException if source * is null. * @param source The Component that originated the event * @param id An integer indicating the type of event. * For information on allowable values, see * the class description for {#link MouseEvent} * @param when A long integer that gives the time the event occurred. * Passing negative or zero value * is not recommended * @param modifiers a modifier mask describing the modifier keys and mouse * buttons (for example, shift, ctrl, alt, and meta) that * are down during the event. * Only extended modifiers are allowed to be used as a * value for this parameter (see the {#link InputEvent#getModifiersEx} * class for the description of extended modifiers). * Passing negative parameter * is not recommended. * Zero value means that no modifiers were passed * @param x The horizontal x coordinate for the mouse location. * It is allowed to pass negative values * @param y The vertical y coordinate for the mouse location. * It is allowed to pass negative values * @param clickCount The number of mouse clicks associated with event. * Passing negative value * is not recommended * @param popupTrigger A boolean that equals {#code true} if this event * is a trigger for a popup menu * @param button An integer that indicates, which of the mouse buttons has * changed its state. * The following rules are applied to this parameter: *

* @throws IllegalArgumentException if {#code button} is less then zero * @throws IllegalArgumentException if source is null * @throws IllegalArgumentException if {#code button} is greater then BUTTON3 and the support for extended mouse buttons is * {@link Toolkit#areExtraMouseButtonsEnabled() disabled} by Java * @throws IllegalArgumentException if {#code button} is greater then the * {@link java.awt.MouseInfo#getNumberOfButtons() current number of buttons} and the support * for extended mouse buttons is {@link Toolkit#areExtraMouseButtonsEnabled() enabled} * by Java * @throws IllegalArgumentException if an invalid button * value is passed in * @throws IllegalArgumentException if source is null * @see #getSource() * @see #getID() * @see #getWhen() * @see #getModifiers() * @see #getX() * @see #getY() * @see #getClickCount() * @see #isPopupTrigger() * @see #getButton() * @since 1.4 */ // @ts-ignore constructor(source: java.awt.Component, id: number /*int*/, when: number /*long*/, modifiers: number /*int*/, x: number /*int*/, y: number /*int*/, clickCount: number /*int*/, popupTrigger: boolean, button: number /*int*/) /** * Constructs a MouseEvent object with the * specified source component, * type, modifiers, coordinates, click count, and popupTrigger flag. * An invocation of the form * MouseEvent(source, id, when, modifiers, x, y, clickCount, popupTrigger) * behaves in exactly the same way as the invocation * {@link #MouseEvent(Component, int, long, int, int, int, * int, int, int, boolean, int) MouseEvent}(source, id, when, modifiers, * x, y, xAbs, yAbs, clickCount, popupTrigger, MouseEvent.NOBUTTON) * where xAbs and yAbs defines as source's location on screen plus * relative coordinates x and y. * xAbs and yAbs are set to zero if the source is not showing. * This method throws an IllegalArgumentException * if source is null. * @param source The Component that originated the event * @param id An integer indicating the type of event. * For information on allowable values, see * the class description for {#link MouseEvent} * @param when A long integer that gives the time the event occurred. * Passing negative or zero value * is not recommended * @param modifiers a modifier mask describing the modifier keys and mouse * buttons (for example, shift, ctrl, alt, and meta) that * are down during the event. * Only extended modifiers are allowed to be used as a * value for this parameter (see the {#link InputEvent#getModifiersEx} * class for the description of extended modifiers). * Passing negative parameter * is not recommended. * Zero value means that no modifiers were passed * @param x The horizontal x coordinate for the mouse location. * It is allowed to pass negative values * @param y The vertical y coordinate for the mouse location. * It is allowed to pass negative values * @param clickCount The number of mouse clicks associated with event. * Passing negative value * is not recommended * @param popupTrigger A boolean that equals {#code true} if this event * is a trigger for a popup menu * @throws IllegalArgumentException if source is null * @see #getSource() * @see #getID() * @see #getWhen() * @see #getModifiers() * @see #getX() * @see #getY() * @see #getClickCount() * @see #isPopupTrigger() */ // @ts-ignore constructor(source: java.awt.Component, id: number /*int*/, when: number /*long*/, modifiers: number /*int*/, x: number /*int*/, y: number /*int*/, clickCount: number /*int*/, popupTrigger: boolean) /** * Constructs a MouseEvent object with the * specified source component, * type, time, modifiers, coordinates, absolute coordinates, click count, popupTrigger flag, * and button number. *

* Creating an invalid event (such * as by using more than one of the old _MASKs, or modifier/button * values which don't match) results in unspecified behavior. * Even if inconsistent values for relative and absolute coordinates are * passed to the constructor, the mouse event instance is still * created and no exception is thrown. * This method throws an * IllegalArgumentException if source * is null. * @param source The Component that originated the event * @param id An integer indicating the type of event. * For information on allowable values, see * the class description for {#link MouseEvent} * @param when A long integer that gives the time the event occurred. * Passing negative or zero value * is not recommended * @param modifiers a modifier mask describing the modifier keys and mouse * buttons (for example, shift, ctrl, alt, and meta) that * are down during the event. * Only extended modifiers are allowed to be used as a * value for this parameter (see the {#link InputEvent#getModifiersEx} * class for the description of extended modifiers). * Passing negative parameter * is not recommended. * Zero value means that no modifiers were passed * @param x The horizontal x coordinate for the mouse location. * It is allowed to pass negative values * @param y The vertical y coordinate for the mouse location. * It is allowed to pass negative values * @param xAbs The absolute horizontal x coordinate for the mouse location * It is allowed to pass negative values * @param yAbs The absolute vertical y coordinate for the mouse location * It is allowed to pass negative values * @param clickCount The number of mouse clicks associated with event. * Passing negative value * is not recommended * @param popupTrigger A boolean that equals {#code true} if this event * is a trigger for a popup menu * @param button An integer that indicates, which of the mouse buttons has * changed its state. * The following rules are applied to this parameter: *

* @throws IllegalArgumentException if {#code button} is less then zero * @throws IllegalArgumentException if source is null * @throws IllegalArgumentException if {#code button} is greater then BUTTON3 and the support for extended mouse buttons is * {@link Toolkit#areExtraMouseButtonsEnabled() disabled} by Java * @throws IllegalArgumentException if {#code button} is greater then the * {@link java.awt.MouseInfo#getNumberOfButtons() current number of buttons} and the support * for extended mouse buttons is {@link Toolkit#areExtraMouseButtonsEnabled() enabled} * by Java * @throws IllegalArgumentException if an invalid button * value is passed in * @throws IllegalArgumentException if source is null * @see #getSource() * @see #getID() * @see #getWhen() * @see #getModifiers() * @see #getX() * @see #getY() * @see #getXOnScreen() * @see #getYOnScreen() * @see #getClickCount() * @see #isPopupTrigger() * @see #getButton() * @see #button * @see Toolkit#areExtraMouseButtonsEnabled() * @see java.awt.MouseInfo#getNumberOfButtons() * @see InputEvent#getMaskForButton(int) * @since 1.6 */ // @ts-ignore constructor(source: java.awt.Component, id: number /*int*/, when: number /*long*/, modifiers: number /*int*/, x: number /*int*/, y: number /*int*/, xAbs: number /*int*/, yAbs: number /*int*/, clickCount: number /*int*/, popupTrigger: boolean, button: number /*int*/) /** * The first number in the range of ids used for mouse events. */ // @ts-ignore public static readonly MOUSE_FIRST: number /*int*/ /** * The last number in the range of ids used for mouse events. */ // @ts-ignore public static readonly MOUSE_LAST: number /*int*/ /** * The "mouse clicked" event. This MouseEvent * occurs when a mouse button is pressed and released. */ // @ts-ignore public static readonly MOUSE_CLICKED: number /*int*/ /** * The "mouse pressed" event. This MouseEvent * occurs when a mouse button is pushed down. */ // @ts-ignore public static readonly MOUSE_PRESSED: number /*int*/ /** * The "mouse released" event. This MouseEvent * occurs when a mouse button is let up. */ // @ts-ignore public static readonly MOUSE_RELEASED: number /*int*/ /** * The "mouse moved" event. This MouseEvent * occurs when the mouse position changes. */ // @ts-ignore public static readonly MOUSE_MOVED: number /*int*/ /** * The "mouse entered" event. This MouseEvent * occurs when the mouse cursor enters the unobscured part of component's * geometry. */ // @ts-ignore public static readonly MOUSE_ENTERED: number /*int*/ /** * The "mouse exited" event. This MouseEvent * occurs when the mouse cursor exits the unobscured part of component's * geometry. */ // @ts-ignore public static readonly MOUSE_EXITED: number /*int*/ /** * The "mouse dragged" event. This MouseEvent * occurs when the mouse position changes while a mouse button is pressed. */ // @ts-ignore public static readonly MOUSE_DRAGGED: number /*int*/ /** * The "mouse wheel" event. This is the only MouseWheelEvent. * It occurs when a mouse equipped with a wheel has its wheel rotated. * @since 1.4 */ // @ts-ignore public static readonly MOUSE_WHEEL: number /*int*/ /** * Indicates no mouse buttons; used by {@link #getButton}. * @since 1.4 */ // @ts-ignore public static readonly NOBUTTON: number /*int*/ /** * Indicates mouse button #1; used by {@link #getButton}. * @since 1.4 */ // @ts-ignore public static readonly BUTTON1: number /*int*/ /** * Indicates mouse button #2; used by {@link #getButton}. * @since 1.4 */ // @ts-ignore public static readonly BUTTON2: number /*int*/ /** * Indicates mouse button #3; used by {@link #getButton}. * @since 1.4 */ // @ts-ignore public static readonly BUTTON3: number /*int*/ /** * Returns the absolute x, y position of the event. * In a virtual device multi-screen environment in which the * desktop area could span multiple physical screen devices, * these coordinates are relative to the virtual coordinate system. * Otherwise, these coordinates are relative to the coordinate system * associated with the Component's GraphicsConfiguration. * @return a Point object containing the absolute x * and y coordinates. * @see java.awt.GraphicsConfiguration * @since 1.6 */ // @ts-ignore public getLocationOnScreen(): java.awt.Point /** * Returns the absolute horizontal x position of the event. * In a virtual device multi-screen environment in which the * desktop area could span multiple physical screen devices, * this coordinate is relative to the virtual coordinate system. * Otherwise, this coordinate is relative to the coordinate system * associated with the Component's GraphicsConfiguration. * @return x an integer indicating absolute horizontal position. * @see java.awt.GraphicsConfiguration * @since 1.6 */ // @ts-ignore public getXOnScreen(): number /*int*/ /** * Returns the absolute vertical y position of the event. * In a virtual device multi-screen environment in which the * desktop area could span multiple physical screen devices, * this coordinate is relative to the virtual coordinate system. * Otherwise, this coordinate is relative to the coordinate system * associated with the Component's GraphicsConfiguration. * @return y an integer indicating absolute vertical position. * @see java.awt.GraphicsConfiguration * @since 1.6 */ // @ts-ignore public getYOnScreen(): number /*int*/ /** * {@inheritDoc} */ // @ts-ignore public getModifiersEx(): number /*int*/ /** * Returns the horizontal x position of the event relative to the * source component. * @return x an integer indicating horizontal position relative to * the component */ // @ts-ignore public getX(): number /*int*/ /** * Returns the vertical y position of the event relative to the * source component. * @return y an integer indicating vertical position relative to * the component */ // @ts-ignore public getY(): number /*int*/ /** * Returns the x,y position of the event relative to the source component. * @return a Point object containing the x and y coordinates * relative to the source component */ // @ts-ignore public getPoint(): java.awt.Point /** * Translates the event's coordinates to a new position * by adding specified x (horizontal) and y * (vertical) offsets. * @param x the horizontal x value to add to the current x * coordinate position * @param y the vertical y value to add to the current y * coordinate position */ // @ts-ignore public translatePoint(x: number /*int*/, y: number /*int*/): void /** * Returns the number of mouse clicks associated with this event. * @return integer value for the number of clicks */ // @ts-ignore public getClickCount(): number /*int*/ /** * Returns which, if any, of the mouse buttons has changed state. * The returned value is ranged * from 0 to the {@link java.awt.MouseInfo#getNumberOfButtons() MouseInfo.getNumberOfButtons()} * value. * The returned value includes at least the following constants: * * It is allowed to use those constants to compare with the returned button number in the application. * For example, *
                 * if (anEvent.getButton() == MouseEvent.BUTTON1) {
                 * 
* In particular, for a mouse with one, two, or three buttons this method may return the following values: * * Button numbers greater then {@code BUTTON3} have no constant identifier. So if a mouse with five buttons is * installed, this method may return the following values: * *

* Note: If support for extended mouse buttons is {@link Toolkit#areExtraMouseButtonsEnabled() disabled} by Java * then the AWT event subsystem does not produce mouse events for the extended mouse * buttons. So it is not expected that this method returns anything except {@code NOBUTTON}, {@code BUTTON1}, * {@code BUTTON2}, {@code BUTTON3}. * @return one of the values from 0 to {#link java.awt.MouseInfo#getNumberOfButtons() MouseInfo.getNumberOfButtons()} * if support for the extended mouse buttons is {@link Toolkit#areExtraMouseButtonsEnabled() enabled} by Java. * That range includes {@code NOBUTTON}, {@code BUTTON1}, {@code BUTTON2}, {@code BUTTON3}; *
* {@code NOBUTTON}, {@code BUTTON1}, {@code BUTTON2} or {@code BUTTON3} * if support for the extended mouse buttons is {@link Toolkit#areExtraMouseButtonsEnabled() disabled} by Java * @since 1.4 * @see Toolkit#areExtraMouseButtonsEnabled() * @see java.awt.MouseInfo#getNumberOfButtons() * @see #MouseEvent(Component, int, long, int, int, int, int, int, int, boolean, int) * @see InputEvent#getMaskForButton(int) */ // @ts-ignore public getButton(): number /*int*/ /** * Returns whether or not this mouse event is the popup menu * trigger event for the platform. *

Note: Popup menus are triggered differently * on different systems. Therefore, isPopupTrigger * should be checked in both mousePressed * and mouseReleased * for proper cross-platform functionality. * @return boolean, true if this event is the popup menu trigger * for this platform */ // @ts-ignore public isPopupTrigger(): boolean /** * Returns a String instance describing the modifier keys and * mouse buttons that were down during the event, such as "Shift", * or "Ctrl+Shift". These strings can be localized by changing * the awt.properties file. *

* Note that the InputEvent.ALT_MASK and * InputEvent.BUTTON2_MASK have equal values, * so the "Alt" string is returned for both modifiers. Likewise, * the InputEvent.META_MASK and * InputEvent.BUTTON3_MASK have equal values, * so the "Meta" string is returned for both modifiers. *

* Note that passing negative parameter is incorrect, * and will cause the returning an unspecified string. * Zero parameter means that no modifiers were passed and will * cause the returning an empty string. *

* @param modifiers A modifier mask describing the modifier keys and * mouse buttons that were down during the event * @return string string text description of the combination of modifier * keys and mouse buttons that were down during the event * @see InputEvent#getModifiersExText(int) * @since 1.4 */ // @ts-ignore public static getMouseModifiersText(modifiers: number /*int*/): string /** * Returns a parameter string identifying this event. * This method is useful for event-logging and for debugging. * @return a string identifying the event and its attributes */ // @ts-ignore public paramString(): string } } } }