libGumball 0.0.1
C23-Based, libGimbal-powered UI Library
Loading...
Searching...
No Matches
gumball_controller.h File Reference

Go to the source code of this file.

Macros

#define GUM_Controller_create(...)
Type System

Type UUID and cast operators

#define GUM_CONTROLLER_TYPE
#define GUM_CONTROLLER(self)
#define GUM_CONTROLLER_CLASS(klass)
#define GUM_CONTROLLER_CLASSOF(self)

Enumerations

enum  GUM_CONTROLLER_BUTTON_STATE
enum  GUM_CONTROLLER_BUTTON_ID

Functions

GBL_EXPORT void GUM_Controller_sendButton (GBL_SELF, GUM_CONTROLLER_BUTTON_STATE state, GUM_CONTROLLER_BUTTON_ID button) GBL_NOEXCEPT
GBL_EXPORT void GUM_Controller_setSelectedButton (GBL_SELF, GUM_Button *pButton) GBL_NOEXCEPT

Variables

Properties

Properties you can set/get at or after creation.

Note
You can also set/get properties from parent classes (see GUM_Controller).
uint8_t controllerId
bool isKeyboard

Detailed Description

GUM_Controller data structure and hierarchy graph

GUM_Controller is responsible for handling input from gamepads and/or keyboards, and drawing a border around the currently selected button. Each controller is associated with a specific player id, allowing you to have multiple controllers at once.

Todo
  • Handle multiple controllers on the same button
  • Make pSelectedButton a property
  • Make variables private
  • Deprecate GUM_Controller_setSelectedButton once GUM_Property is implemented
Author
2025 Agustín Bellagamba

Enumeration Type Documentation

◆ GUM_CONTROLLER_BUTTON_STATE

enum GUM_CONTROLLER_BUTTON_STATE
42 {
43 GUM_CONTROLLER_BUTTON_PRESS,
44 GUM_CONTROLLER_BUTTON_RELEASE
45} GUM_CONTROLLER_BUTTON_STATE;

◆ GUM_CONTROLLER_BUTTON_ID

enum GUM_CONTROLLER_BUTTON_ID
47 {
48 GUM_CONTROLLER_UP,
49 GUM_CONTROLLER_RIGHT,
50 GUM_CONTROLLER_DOWN,
51 GUM_CONTROLLER_LEFT,
52 GUM_CONTROLLER_PRIMARY,
53 GUM_CONTROLLER_SECONDARY,
54 GUM_CONTROLLER_TERTIARY
55} GUM_CONTROLLER_BUTTON_ID;

Function Documentation

◆ GUM_Controller_sendButton()

GBL_EXPORT void GUM_Controller_sendButton ( GBL_SELF ,
GUM_CONTROLLER_BUTTON_STATE state,
GUM_CONTROLLER_BUTTON_ID button )

Takes in a GUM_Controller, a GUM_CONTROLLER_BUTTON_STATE, and a GUM_CONTROLLER_BUTTON_ID.

Handles the event.

◆ GUM_Controller_setSelectedButton()

GBL_EXPORT void GUM_Controller_setSelectedButton ( GBL_SELF ,
GUM_Button * pButton )

Takes in a GUM_Controller, and sets its selected button to the passed GUM_Button.

Variable Documentation

◆ controllerId

uint8_t controllerId

Which id is this controller associated with.

Default value is 0

◆ isKeyboard

bool isKeyboard

If the controller is a keyboard.

Default value is false