/*
* Copyright (C) 2016 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jboss.errai.common.client.dom;
import org.jboss.errai.common.client.api.annotations.BrowserEvent;
import jsinterop.annotations.JsOverlay;
import jsinterop.annotations.JsProperty;
import jsinterop.annotations.JsType;
/**
*
* @author Max Barkley <mbarkley@redhat.com>
* @see <a href="https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent">Web API</a>
*/
@BrowserEvent({
"click",
"contextmenu",
"dblclick",
"mousedown",
"mouseenter",
"mouseleave",
"mousemove",
"mouseout",
"mouseover",
"mouseup",
"show"
})
@JsType(isNative = true)
public interface MouseEvent extends UIEvent {
@JsOverlay static final int BUTTON_LEFT = 0;
@JsOverlay static final int BUTTON_MIDDLE = 1;
@JsOverlay static final int BUTTON_RIGHT = 2;
@JsOverlay static final int BUTTON_BACK = 3;
@JsOverlay static final int BUTTON_FORWARD = 4;
@JsOverlay static final int BUTTONS_NONE = 0;
@JsOverlay static final int BUTTONS_LEFT = 1;
@JsOverlay static final int BUTTONS_MIDDLE = 2;
@JsOverlay static final int BUTTONS_RIGHT = 4;
@JsOverlay static final int BUTTONS_BACK = 8;
@JsOverlay static final int BUTTONS_FORWARD = 16;
@JsProperty(name = "altKey") boolean isAltKey();
@JsProperty(name = "ctrlKey") boolean isCtrlKey();
@JsProperty(name = "metaKey") boolean isMetaKey();
@JsProperty(name = "shiftKey") boolean isShiftKey();
@JsProperty int getButton();
@JsProperty int getButtons();
@JsProperty int getClientX();
@JsProperty int getClientY();
@JsProperty int getMovementX();
@JsProperty int getMovementY();
@JsProperty int getOffsetX();
@JsProperty int getOffsetY();
@JsProperty int getPageX();
@JsProperty int getPageY();
@JsProperty int getScreenX();
@JsProperty int getScreenY();
@JsProperty String getRegion();
@JsProperty EventTarget getRelatedTarget();
boolean getModifierState();
}