| /* |
| * Copyright 2008 Google Inc. |
| * |
| * 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 com.google.gwt.event.dom.client; |
| |
| /** |
| * Represents a native mouse wheel event. |
| */ |
| public class MouseWheelEvent extends MouseEvent<MouseWheelHandler> { |
| |
| /** |
| * Event type for mouse wheel events. Represents the meta-data associated with |
| * this event. |
| */ |
| private static final Type<MouseWheelHandler> TYPE = new Type<MouseWheelHandler>( |
| "mousewheel", new MouseWheelEvent()); |
| |
| static { |
| /** |
| * Hidden type used to ensure DOMMouseScroll gets registered in the type map. |
| * This is the special name used on Mozilla browsers for what everyone else |
| * calls 'mousewheel'. |
| */ |
| new Type<MouseWheelHandler>("DOMMouseScroll", new MouseWheelEvent()); |
| } |
| |
| /** |
| * Gets the event type associated with mouse wheel events. |
| * |
| * @return the handler type |
| */ |
| public static Type<MouseWheelHandler> getType() { |
| return TYPE; |
| } |
| |
| /** |
| * Protected constructor, use |
| * {@link DomEvent#fireNativeEvent(com.google.gwt.dom.client.NativeEvent, com.google.gwt.event.shared.HasHandlers)} |
| * to fire mouse wheel events. |
| */ |
| protected MouseWheelEvent() { |
| } |
| |
| @Override |
| public final Type<MouseWheelHandler> getAssociatedType() { |
| return TYPE; |
| } |
| |
| /** |
| * Get the change in the mouse wheel position along the Y-axis; positive if |
| * the mouse wheel is moving north (toward the top of the screen) or negative |
| * if the mouse wheel is moving south (toward the bottom of the screen). |
| * |
| * Note that delta values are not normalized across browsers or OSes. |
| * |
| * @return the delta of the mouse wheel along the y axis |
| */ |
| public int getDeltaY() { |
| return getNativeEvent().getMouseWheelVelocityY(); |
| } |
| |
| /** |
| * Convenience method that returns <code>true</code> if {@link #getDeltaY()} |
| * is a negative value (ie, the velocity is directed toward the top of the |
| * screen). |
| * |
| * @return true if the velocity is directed toward the top of the screen |
| */ |
| public boolean isNorth() { |
| return getDeltaY() < 0; |
| } |
| |
| /** |
| * Convenience method that returns <code>true</code> if {@link #getDeltaY()} |
| * is a positive value (ie, the velocity is directed toward the bottom of the |
| * screen). |
| * |
| * @return true if the velocity is directed toward the bottom of the screen |
| */ |
| public boolean isSouth() { |
| return getDeltaY() > 0; |
| } |
| |
| @Override |
| protected void dispatch(MouseWheelHandler handler) { |
| handler.onMouseWheel(this); |
| } |
| } |