Skip to content

Commit

Permalink
small cleanup to ui cursor after adding enum flags (#266)
Browse files Browse the repository at this point in the history
* add FlxUICursorInputFlag

* fix backwards copatibility with ints

* cleanup

* simplify doPress
  • Loading branch information
Geokureli committed Jan 9, 2024
1 parent 1e01ef1 commit 569116c
Showing 1 changed file with 31 additions and 26 deletions.
57 changes: 31 additions & 26 deletions flixel/addons/ui/FlxUICursor.hx
@@ -1,24 +1,24 @@
package flixel.addons.ui;

import openfl.events.MouseEvent;
import flixel.FlxG;
import flixel.FlxObject;
import flixel.FlxSprite;
import flixel.addons.ui.Anchor;
import flixel.addons.ui.FlxUIAssets;
import flixel.addons.ui.FlxUICursor.WidgetList;
import flixel.addons.ui.FlxUISprite;
import flixel.addons.ui.interfaces.ICursorPointable;
import flixel.addons.ui.interfaces.IFlxUIWidget;
import flixel.FlxG;
import flixel.FlxObject;
import flixel.FlxSprite;
import flixel.input.gamepad.FlxGamepadInputID;
import flixel.input.gamepad.FlxGamepad;
import flixel.input.gamepad.FlxGamepadInputID;
import flixel.input.mouse.FlxMouse;
import flixel.math.FlxMath;
import flixel.math.FlxPoint;
import flixel.math.FlxRect;
import flixel.util.FlxArrayUtil;
import flixel.util.FlxColor;
import flixel.util.FlxDestroyUtil;
import openfl.events.MouseEvent;

/**
* Cursor object that you can use to "click" on interface elements using a keyboard or gamepad
Expand Down Expand Up @@ -1003,11 +1003,15 @@ class FlxUICursor extends FlxUISprite
#if FLX_MOUSE
if (dispatchEvents)
{
var rawMouseX:Float = pt.x * FlxG.camera.zoom;
var rawMouseY:Float = pt.y * FlxG.camera.zoom;
final rawMouseX:Float = pt.x * FlxG.camera.zoom;
final rawMouseY:Float = pt.y * FlxG.camera.zoom;

#if FLX_KEYBOARD
FlxG.stage.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN, true, false, rawMouseX, rawMouseY, FlxG.stage, FlxG.keys.pressed.CONTROL,
FlxG.keys.pressed.ALT, FlxG.keys.pressed.SHIFT));
final ctrl = FlxG.keys.pressed.CONTROL;
final alt = FlxG.keys.pressed.ALT;
final shift = FlxG.keys.pressed.SHIFT;

FlxG.stage.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN, true, false, rawMouseX, rawMouseY, FlxG.stage, ctrl, alt, shift));
#else
FlxG.stage.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN, true, false, rawMouseX, rawMouseY, FlxG.stage));
#end
Expand Down Expand Up @@ -1045,23 +1049,24 @@ class FlxUICursor extends FlxUISprite
}

#if FLX_MOUSE
var rawMouseX:Float = pt.x * FlxG.camera.zoom;
var rawMouseY:Float = pt.y * FlxG.camera.zoom;

if (dispatchEvents)
{
// dispatch a low-level mouse event to the FlxG.stage object itself
#if FLX_KEYBOARD
FlxG.stage.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_UP, true, false, rawMouseX, rawMouseY, FlxG.stage, FlxG.keys.pressed.CONTROL,
FlxG.keys.pressed.ALT, FlxG.keys.pressed.SHIFT));
if (_clickPressed)
FlxG.stage.dispatchEvent(new MouseEvent(MouseEvent.CLICK, true, false, rawMouseX, rawMouseY, FlxG.stage, FlxG.keys.pressed.CONTROL,
FlxG.keys.pressed.ALT, FlxG.keys.pressed.SHIFT));
#else
FlxG.stage.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_UP, true, false, rawMouseX, rawMouseY, FlxG.stage));
final rawMouseX:Float = pt.x * FlxG.camera.zoom;
final rawMouseY:Float = pt.y * FlxG.camera.zoom;

final ctrl = #if FLX_KEYBOARD FlxG.keys.pressed.CONTROL #else false #end;
final alt = #if FLX_KEYBOARD FlxG.keys.pressed.ALT #else false #end;
final shift = #if FLX_KEYBOARD FlxG.keys.pressed.SHIFT #else false #end;

inline function dispatch(type)
{
FlxG.stage.dispatchEvent(new MouseEvent(type, true, false, rawMouseX, rawMouseY, FlxG.stage, ctrl, alt, shift));
}

dispatch(MouseEvent.MOUSE_UP);
if (_clickPressed)
FlxG.stage.dispatchEvent(new MouseEvent(MouseEvent.CLICK, true, false, rawMouseX, rawMouseY, FlxG.stage));
#end
dispatch(MouseEvent.CLICK);
}
#end

Expand Down Expand Up @@ -1450,13 +1455,13 @@ class FlxUICursor extends FlxUISprite
enum abstract FlxUICursorInputFlag(Int) from Int to Int
{
/* tab to go "right", shift+tab to go "left", enter to click */
var KEYS_TAB = 0x00000001;
var KEYS_TAB = 0x00000001;
/* WASD to go up/left/down/right, enter to click */
var KEYS_WASD = 0x00000010;
var KEYS_WASD = 0x00000010;
/* Arrows to go up/left/down/right, enter to click */
var KEYS_ARROWS = 0x00000100;
var KEYS_ARROWS = 0x00000100;
/* Numpad numbers to go up/left/down/right, enter to click */
var KEYS_NUMPAD = 0x00001000;
var KEYS_NUMPAD = 0x00001000;

// DPAD to go up/left/down/right, A to click
var GAMEPAD_DPAD = 0x00010000;
Expand Down

0 comments on commit 569116c

Please sign in to comment.