@:value(["left", "right", "middle"])staticbuttons:Array<String> = ["left", "right", "middle"]
new()
@:value(false)read onlyhidden:Bool = false
@:value(-1.0)lastX:Float = -1.0
@:value(-1.0)lastY:Float = -1.0
@:value(false)read onlylocked:Bool = false
@:value(false)read onlymoved:Bool = false
@:value(0.0)read onlymovementX:Float = 0.0
@:value(0.0)read onlymovementY:Float = 0.0
@:value(0.0)read onlyviewX:Float = 0.0
@:value(0.0)read onlyviewY:Float = 0.0
@:value(0)read onlywheelDelta:Int = 0
@:value(0.0)read onlyx:Float = 0.0
@:value(0.0)read onlyy:Float = 0.0
@:value({ button : "left" })down(button:String = "left"):Bool
endFrame():Void
hide():Void
lock():Void
@:value({ button : "left" })released(button:String = "left"):Bool
reset():Void
show():Void
@:value({ button : "left" })started(button:String = "left"):Bool
unlock():Void
setVirtual(virtual:String, button:String):Void