# wxJoystickEvent

###
Module

wxJoystickEvent

###
Module Summary

Functions for wxJoystickEvent class

###
Description

This event class contains information about joystick events, particularly events received by windows.

See: wxJoystick (not implemented in wx)

This class is derived (and can use functions) from: wxEvent

wxWidgets docs: wxJoystickEvent

###
Events

Use wxEvtHandler:connect/3 with wxJoystickEventType to subscribe to events of this type.

###
Data Types

####
wxJoystickEvent() = wx:wx_object()

####
wxJoystick() =
#wxJoystick{type = wxJoystickEvent:wxJoystickEventType(),
pos = {X :: integer(), Y :: integer()},
zPosition = integer(),
buttonChange = integer(),
buttonState = integer(),
joyStick = integer()}

####
wxJoystickEventType() =
joy_button_down | joy_button_up | joy_move | joy_zmove

###
Exports

####
buttonDown(This) -> boolean()

### Types

This = wxJoystickEvent()

####
buttonDown(This, Options :: [Option]) -> boolean()

### Types

This = wxJoystickEvent()
Option = {but, integer()}

Returns true if the event was a down event from the specified button (or any button).

####
buttonIsDown(This) -> boolean()

### Types

This = wxJoystickEvent()

####
buttonIsDown(This, Options :: [Option]) -> boolean()

### Types

This = wxJoystickEvent()
Option = {but, integer()}

Returns true if the specified button (or any button) was in a down state.

####
buttonUp(This) -> boolean()

### Types

This = wxJoystickEvent()

####
buttonUp(This, Options :: [Option]) -> boolean()

### Types

This = wxJoystickEvent()
Option = {but, integer()}

Returns true if the event was an up event from the specified button (or any button).

####
getButtonChange(This) -> integer()

### Types

This = wxJoystickEvent()

Returns the identifier of the button changing state.

The return value is where n is the index of the button changing state, which can also be retrieved using GetButtonOrdinal() (not implemented in wx).

Note that for n equal to 1, 2, 3 or 4 there are predefined wxJOY_BUTTONn constants which can be used for more clarity, however these constants are not defined for the buttons beyond the first four.

####
getButtonState(This) -> integer()

### Types

This = wxJoystickEvent()

Returns the down state of the buttons.

This is a wxJOY_BUTTONn identifier, where n is one of 1, 2, 3, 4.

####
getJoystick(This) -> integer()

### Types

This = wxJoystickEvent()

Returns the identifier of the joystick generating the event - one of wxJOYSTICK1 and wxJOYSTICK2.

####
getPosition(This) -> {X :: integer(), Y :: integer()}

### Types

This = wxJoystickEvent()

Returns the x, y position of the joystick event.

These coordinates are valid for all the events except wxEVT_JOY_ZMOVE.

####
getZPosition(This) -> integer()

### Types

This = wxJoystickEvent()

Returns the z position of the joystick event.

This method can only be used for wxEVT_JOY_ZMOVE events.

####
isButton(This) -> boolean()

### Types

This = wxJoystickEvent()

Returns true if this was a button up or down event (not 'is any button down?').

####
isMove(This) -> boolean()

### Types

This = wxJoystickEvent()

Returns true if this was an x, y move event.

####
isZMove(This) -> boolean()

### Types

This = wxJoystickEvent()

Returns true if this was a z move event.