Skip to main content

SDL_GamepadButton

Struct SDL_GamepadButton 

Source
#[repr(transparent)]
pub struct SDL_GamepadButton(pub c_int);
Expand description

The list of buttons available on a gamepad

For controllers that use a diamond pattern for the face buttons, the south/east/west/north buttons below correspond to the locations in the diamond pattern. For Xbox controllers, this would be A/B/X/Y, for Nintendo Switch controllers, this would be B/A/Y/X, for GameCube controllers this would be A/X/B/Y, for PlayStation controllers this would be Cross/Circle/Square/Triangle.

For controllers that don’t use a diamond pattern for the face buttons, the south/east/west/north buttons indicate the buttons labeled A, B, C, D, or 1, 2, 3, 4, or for controllers that aren’t labeled, they are the primary, secondary, etc. buttons.

The activate action is often the south button and the cancel action is often the east button, but in some regions this is reversed, so your game should allow remapping actions based on user preferences.

You can query the labels for the face buttons using SDL_GetGamepadButtonLabel()

Available Since: This enum is available since SDL 3.2.0.

Tuple Fields§

§0: c_int

Implementations§

Source§

impl SDL_GamepadButton

Source

pub const SDL_GAMEPAD_BUTTON_INVALID: SDL_GamepadButton

Source

pub const SDL_GAMEPAD_BUTTON_SOUTH: SDL_GamepadButton

< Bottom face button (e.g. Xbox A button)

Source

pub const SDL_GAMEPAD_BUTTON_EAST: SDL_GamepadButton

< Right face button (e.g. Xbox B button)

Source

pub const SDL_GAMEPAD_BUTTON_WEST: SDL_GamepadButton

< Left face button (e.g. Xbox X button)

Source

pub const SDL_GAMEPAD_BUTTON_NORTH: SDL_GamepadButton

< Top face button (e.g. Xbox Y button)

Source

pub const SDL_GAMEPAD_BUTTON_BACK: SDL_GamepadButton

Source

pub const SDL_GAMEPAD_BUTTON_GUIDE: SDL_GamepadButton

Source

pub const SDL_GAMEPAD_BUTTON_START: SDL_GamepadButton

Source

pub const SDL_GAMEPAD_BUTTON_LEFT_STICK: SDL_GamepadButton

Source

pub const SDL_GAMEPAD_BUTTON_RIGHT_STICK: SDL_GamepadButton

Source

pub const SDL_GAMEPAD_BUTTON_LEFT_SHOULDER: SDL_GamepadButton

Source

pub const SDL_GAMEPAD_BUTTON_RIGHT_SHOULDER: SDL_GamepadButton

Source

pub const SDL_GAMEPAD_BUTTON_DPAD_UP: SDL_GamepadButton

Source

pub const SDL_GAMEPAD_BUTTON_DPAD_DOWN: SDL_GamepadButton

Source

pub const SDL_GAMEPAD_BUTTON_DPAD_LEFT: SDL_GamepadButton

Source

pub const SDL_GAMEPAD_BUTTON_DPAD_RIGHT: SDL_GamepadButton

Source

pub const SDL_GAMEPAD_BUTTON_MISC1: SDL_GamepadButton

< Additional button (e.g. Xbox Series X share button, PS5 microphone button, Nintendo Switch Pro capture button, Amazon Luna microphone button, Google Stadia capture button)

Source

pub const SDL_GAMEPAD_BUTTON_RIGHT_PADDLE1: SDL_GamepadButton

< Upper or primary paddle, under your right hand (e.g. Xbox Elite paddle P1, DualSense Edge RB button, Right Joy-Con SR button)

Source

pub const SDL_GAMEPAD_BUTTON_LEFT_PADDLE1: SDL_GamepadButton

< Upper or primary paddle, under your left hand (e.g. Xbox Elite paddle P3, DualSense Edge LB button, Left Joy-Con SL button)

Source

pub const SDL_GAMEPAD_BUTTON_RIGHT_PADDLE2: SDL_GamepadButton

< Lower or secondary paddle, under your right hand (e.g. Xbox Elite paddle P2, DualSense Edge right Fn button, Right Joy-Con SL button)

Source

pub const SDL_GAMEPAD_BUTTON_LEFT_PADDLE2: SDL_GamepadButton

< Lower or secondary paddle, under your left hand (e.g. Xbox Elite paddle P4, DualSense Edge left Fn button, Left Joy-Con SR button)

Source

pub const SDL_GAMEPAD_BUTTON_TOUCHPAD: SDL_GamepadButton

< PS4/PS5 touchpad button

Source

pub const SDL_GAMEPAD_BUTTON_MISC2: SDL_GamepadButton

< Additional button

Source

pub const SDL_GAMEPAD_BUTTON_MISC3: SDL_GamepadButton

< Additional button (e.g. Nintendo GameCube left trigger click)

Source

pub const SDL_GAMEPAD_BUTTON_MISC4: SDL_GamepadButton

< Additional button (e.g. Nintendo GameCube right trigger click)

Source

pub const SDL_GAMEPAD_BUTTON_MISC5: SDL_GamepadButton

< Additional button

Source

pub const SDL_GAMEPAD_BUTTON_MISC6: SDL_GamepadButton

< Additional button

Source

pub const SDL_GAMEPAD_BUTTON_COUNT: SDL_GamepadButton

Trait Implementations§

Source§

impl Clone for SDL_GamepadButton

Source§

fn clone(&self) -> SDL_GamepadButton

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SDL_GamepadButton

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Hash for SDL_GamepadButton

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for SDL_GamepadButton

Source§

fn eq(&self, other: &SDL_GamepadButton) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for SDL_GamepadButton

Source§

impl Eq for SDL_GamepadButton

Source§

impl StructuralPartialEq for SDL_GamepadButton

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.