Add MouseWheelMode, make SDL wheel events consistent, add MouseButton, rename Cursor back to MouseCursor (resolve #1124)
This commit is contained in:
@@ -13,16 +13,17 @@ import flash.events.TouchEvent;
|
||||
import flash.geom.Matrix;
|
||||
import flash.system.Capabilities;
|
||||
import flash.ui.Mouse;
|
||||
import flash.ui.MouseCursor;
|
||||
import flash.ui.MouseCursor in FlashMouseCursor;
|
||||
import flash.Lib;
|
||||
import lime.app.Application;
|
||||
import lime.graphics.Image;
|
||||
import lime.graphics.RenderContext;
|
||||
import lime.graphics.RenderContextAttributes;
|
||||
import lime.math.Rectangle;
|
||||
import lime.ui.Cursor;
|
||||
import lime.ui.KeyCode;
|
||||
import lime.ui.KeyModifier;
|
||||
import lime.ui.MouseButton;
|
||||
import lime.ui.MouseCursor;
|
||||
import lime.ui.Touch;
|
||||
import lime.system.Display;
|
||||
import lime.system.DisplayMode;
|
||||
@@ -305,11 +306,11 @@ class FlashWindow {
|
||||
|
||||
private function handleMouseEvent (event:MouseEvent):Void {
|
||||
|
||||
var button = switch (event.type) {
|
||||
var button:MouseButton = switch (event.type) {
|
||||
|
||||
case "middleMouseDown", "middleMouseUp": 1;
|
||||
case "rightMouseDown", "rightMouseUp": 2;
|
||||
default: 0;
|
||||
case "middleMouseDown", "middleMouseUp": MIDDLE;
|
||||
case "rightMouseDown", "rightMouseUp": RIGHT;
|
||||
default: LEFT;
|
||||
|
||||
}
|
||||
|
||||
@@ -343,7 +344,7 @@ class FlashWindow {
|
||||
|
||||
case "mouseWheel":
|
||||
|
||||
parent.onMouseWheel.dispatch (0, event.delta);
|
||||
parent.onMouseWheel.dispatch (0, event.delta, LINES);
|
||||
|
||||
default:
|
||||
|
||||
@@ -385,7 +386,7 @@ class FlashWindow {
|
||||
|
||||
if (event.isPrimaryTouchPoint) {
|
||||
|
||||
parent.onMouseDown.dispatch (x, y, 0);
|
||||
parent.onMouseDown.dispatch (x, y, LEFT);
|
||||
|
||||
}
|
||||
|
||||
@@ -522,7 +523,7 @@ class FlashWindow {
|
||||
}
|
||||
|
||||
|
||||
public function setCursor (value:Cursor):Cursor {
|
||||
public function setCursor (value:MouseCursor):MouseCursor {
|
||||
|
||||
if (cursor != value) {
|
||||
|
||||
@@ -540,18 +541,18 @@ class FlashWindow {
|
||||
|
||||
Mouse.cursor = switch (value) {
|
||||
|
||||
case ARROW: MouseCursor.ARROW;
|
||||
case CROSSHAIR: MouseCursor.ARROW;
|
||||
case MOVE: MouseCursor.HAND;
|
||||
case POINTER: MouseCursor.BUTTON;
|
||||
case RESIZE_NESW: MouseCursor.HAND;
|
||||
case RESIZE_NS: MouseCursor.HAND;
|
||||
case RESIZE_NWSE: MouseCursor.HAND;
|
||||
case RESIZE_WE: MouseCursor.HAND;
|
||||
case TEXT: MouseCursor.IBEAM;
|
||||
case WAIT: MouseCursor.ARROW;
|
||||
case WAIT_ARROW: MouseCursor.ARROW;
|
||||
default: MouseCursor.AUTO;
|
||||
case ARROW: FlashMouseCursor.ARROW;
|
||||
case CROSSHAIR: FlashMouseCursor.ARROW;
|
||||
case MOVE: FlashMouseCursor.HAND;
|
||||
case POINTER: FlashMouseCursor.BUTTON;
|
||||
case RESIZE_NESW: FlashMouseCursor.HAND;
|
||||
case RESIZE_NS: FlashMouseCursor.HAND;
|
||||
case RESIZE_NWSE: FlashMouseCursor.HAND;
|
||||
case RESIZE_WE: FlashMouseCursor.HAND;
|
||||
case TEXT: FlashMouseCursor.IBEAM;
|
||||
case WAIT: FlashMouseCursor.ARROW;
|
||||
case WAIT_ARROW: FlashMouseCursor.ARROW;
|
||||
default: FlashMouseCursor.AUTO;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -27,9 +27,9 @@ import lime.system.Display;
|
||||
import lime.system.DisplayMode;
|
||||
import lime.system.System;
|
||||
import lime.system.Clipboard;
|
||||
import lime.ui.Cursor;
|
||||
import lime.ui.Gamepad;
|
||||
import lime.ui.Joystick;
|
||||
import lime.ui.MouseCursor;
|
||||
import lime.ui.Touch;
|
||||
import lime.ui.Window;
|
||||
|
||||
@@ -61,7 +61,7 @@ class HTML5Window {
|
||||
private var cacheElementWidth:Float;
|
||||
private var cacheMouseX:Float;
|
||||
private var cacheMouseY:Float;
|
||||
private var cursor:Cursor;
|
||||
private var cursor:MouseCursor;
|
||||
private var cursorHidden:Bool;
|
||||
private var currentTouches = new Map<Int, Touch> ();
|
||||
private var isFullscreen:Bool;
|
||||
@@ -375,7 +375,7 @@ class HTML5Window {
|
||||
}
|
||||
|
||||
|
||||
public function getCursor ():Cursor {
|
||||
public function getCursor ():MouseCursor {
|
||||
|
||||
return cursor;
|
||||
|
||||
@@ -713,7 +713,16 @@ class HTML5Window {
|
||||
|
||||
} else {
|
||||
|
||||
parent.onMouseWheel.dispatch (untyped event.deltaX, -untyped event.deltaY);
|
||||
var deltaMode = switch (untyped event.deltaMode) {
|
||||
|
||||
case 0: PIXELS;
|
||||
case 1: LINES;
|
||||
case 2: PAGES;
|
||||
default: UNKNOWN;
|
||||
|
||||
}
|
||||
|
||||
parent.onMouseWheel.dispatch (untyped event.deltaX, -untyped event.deltaY, deltaMode);
|
||||
|
||||
if (parent.onMouseWheel.canceled) {
|
||||
|
||||
@@ -1023,7 +1032,7 @@ class HTML5Window {
|
||||
}
|
||||
|
||||
|
||||
public function setCursor (value:Cursor):Cursor {
|
||||
public function setCursor (value:MouseCursor):MouseCursor {
|
||||
|
||||
if (cursor != value) {
|
||||
|
||||
|
||||
@@ -400,7 +400,7 @@ class NativeApplication {
|
||||
|
||||
case MOUSE_WHEEL:
|
||||
|
||||
window.onMouseWheel.dispatch (mouseEventInfo.x, mouseEventInfo.y);
|
||||
window.onMouseWheel.dispatch (mouseEventInfo.x, mouseEventInfo.y, UNKNOWN);
|
||||
|
||||
default:
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ import lime.system.Display;
|
||||
import lime.system.DisplayMode;
|
||||
import lime.system.JNI;
|
||||
import lime.system.System;
|
||||
import lime.ui.Cursor;
|
||||
import lime.ui.MouseCursor;
|
||||
import lime.ui.Window;
|
||||
import lime.utils.UInt8Array;
|
||||
|
||||
@@ -47,7 +47,7 @@ class NativeWindow {
|
||||
public var handle:Dynamic;
|
||||
|
||||
private var closing:Bool;
|
||||
private var cursor:Cursor;
|
||||
private var cursor:MouseCursor;
|
||||
private var displayMode:DisplayMode;
|
||||
private var frameRate:Float;
|
||||
private var mouseLock:Bool;
|
||||
@@ -273,7 +273,7 @@ class NativeWindow {
|
||||
}
|
||||
|
||||
|
||||
public function getCursor ():Cursor {
|
||||
public function getCursor ():MouseCursor {
|
||||
|
||||
return cursor;
|
||||
|
||||
@@ -528,7 +528,7 @@ class NativeWindow {
|
||||
}
|
||||
|
||||
|
||||
public function setCursor (value:Cursor):Cursor {
|
||||
public function setCursor (value:MouseCursor):MouseCursor {
|
||||
|
||||
if (cursor != value) {
|
||||
|
||||
@@ -540,7 +540,7 @@ class NativeWindow {
|
||||
|
||||
} else {
|
||||
|
||||
var type:CursorType = switch (value) {
|
||||
var type:MouseCursorType = switch (value) {
|
||||
|
||||
case ARROW: ARROW;
|
||||
case CROSSHAIR: CROSSHAIR;
|
||||
@@ -766,7 +766,7 @@ class NativeWindow {
|
||||
}
|
||||
|
||||
|
||||
@:enum private abstract CursorType(Int) from Int to Int {
|
||||
@:enum private abstract MouseCursorType(Int) from Int to Int {
|
||||
|
||||
var HIDDEN = 0;
|
||||
var ARROW = 1;
|
||||
|
||||
@@ -10,6 +10,8 @@ import lime.ui.Joystick;
|
||||
import lime.ui.JoystickHatPosition;
|
||||
import lime.ui.KeyCode;
|
||||
import lime.ui.KeyModifier;
|
||||
import lime.ui.MouseButton;
|
||||
import lime.ui.MouseWheelMode;
|
||||
import lime.ui.Touch;
|
||||
import lime.ui.Window;
|
||||
import lime.ui.WindowAttributes;
|
||||
@@ -292,7 +294,7 @@ class Application extends Module {
|
||||
@param y The current y coordinate of the mouse
|
||||
@param button The ID of the mouse button that was pressed
|
||||
**/
|
||||
public function onMouseDown (x:Float, y:Float, button:Int):Void { }
|
||||
public function onMouseDown (x:Float, y:Float, button:MouseButton):Void { }
|
||||
|
||||
|
||||
/**
|
||||
@@ -319,7 +321,7 @@ class Application extends Module {
|
||||
@param y The current y coordinate of the mouse
|
||||
@param button The ID of the button that was released
|
||||
**/
|
||||
public function onMouseUp (x:Float, y:Float, button:Int):Void { }
|
||||
public function onMouseUp (x:Float, y:Float, button:MouseButton):Void { }
|
||||
|
||||
|
||||
/**
|
||||
@@ -327,7 +329,7 @@ class Application extends Module {
|
||||
@param deltaX The amount of horizontal scrolling (if applicable)
|
||||
@param deltaY The amount of vertical scrolling (if applicable)
|
||||
**/
|
||||
public function onMouseWheel (deltaX:Float, deltaY:Float):Void { }
|
||||
public function onMouseWheel (deltaX:Float, deltaY:Float, deltaMode:MouseWheelMode):Void { }
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
package lime.ui;
|
||||
|
||||
|
||||
enum Cursor {
|
||||
|
||||
ARROW;
|
||||
CROSSHAIR;
|
||||
DEFAULT;
|
||||
MOVE;
|
||||
POINTER;
|
||||
RESIZE_NESW;
|
||||
RESIZE_NS;
|
||||
RESIZE_NWSE;
|
||||
RESIZE_WE;
|
||||
TEXT;
|
||||
WAIT;
|
||||
WAIT_ARROW;
|
||||
CUSTOM;
|
||||
|
||||
}
|
||||
@@ -38,7 +38,7 @@ class Window {
|
||||
public var application (default, null):Application;
|
||||
public var borderless (get, set):Bool;
|
||||
public var context (default, null):RenderContext;
|
||||
public var cursor (get, set):Cursor;
|
||||
public var cursor (get, set):MouseCursor;
|
||||
public var display (get, null):Display;
|
||||
public var displayMode (get, set):DisplayMode;
|
||||
|
||||
@@ -75,11 +75,11 @@ class Window {
|
||||
public var onLeave (default, null) = new Event<Void->Void> ();
|
||||
public var onMaximize (default, null) = new Event<Void->Void> ();
|
||||
public var onMinimize (default, null) = new Event<Void->Void> ();
|
||||
public var onMouseDown (default, null) = new Event<Float->Float->Int->Void> ();
|
||||
public var onMouseDown (default, null) = new Event<Float->Float->MouseButton->Void> ();
|
||||
public var onMouseMove (default, null) = new Event<Float->Float->Void> ();
|
||||
public var onMouseMoveRelative (default, null) = new Event<Float->Float->Void> ();
|
||||
public var onMouseUp (default, null) = new Event<Float->Float->Int->Void> ();
|
||||
public var onMouseWheel (default, null) = new Event<Float->Float->Void> ();
|
||||
public var onMouseWheel (default, null) = new Event<Float->Float->MouseWheelMode->Void> ();
|
||||
public var onMove (default, null) = new Event<Float->Float->Void> ();
|
||||
public var onRender (default, null) = new Event<RenderContext->Void> ();
|
||||
public var onRenderContextLost (default, null) = new Event<Void->Void> ();
|
||||
@@ -459,14 +459,14 @@ class Window {
|
||||
|
||||
|
||||
|
||||
@:noCompletion private function get_cursor ():Cursor {
|
||||
@:noCompletion private function get_cursor ():MouseCursor {
|
||||
|
||||
return __backend.getCursor ();
|
||||
|
||||
}
|
||||
|
||||
|
||||
@:noCompletion private function set_cursor (value:Cursor):Cursor {
|
||||
@:noCompletion private function set_cursor (value:MouseCursor):MouseCursor {
|
||||
|
||||
return __backend.setCursor (value);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user