Files
BanjoRecomp/patches/recompui_event_structs.h
Darío d26d18b373 UI Submodule Refactor (#32)
* Added recompui::IconButton

* Remove zelda themed input mapping visualization

* update toggle

* grayscale overlay colors

* recompui::theme namespace + border constants

* added ui_binding_button element

* Initial support for multiple controllers. (#3)

* Support for multiple controllers.

* Fix default bindings.

* Backwards compatibility with controls from previous version.

* WIP code driven input mapping and player assignment

* button press anims & temp reassignment state when opening assignment modal

* set base opacity for disable state getting re-enabled

* generic PlayerCard for both main Controls and assignment modal

* wip ui_select recompui component

* Add Input Profiles. (#4)

* Add Input Profiles.

* Add capability of setting custom profiles.

* Remove leftover early return.

* button sizes and annotation update

* flex wrap and context root being assets

* controls page multi vs single views

* ability to reparent elements

* ability to rotate elements

* added functional caret to Select component

* smaller edit profile button

* select fixes and player profile assignment

* pointer events property support and apply ptr events None to select arrow svg

* init mp kb mappings to be unmapped

* wire up selected profile's bindings

* reimplement binding system in new menu

* clear and reset input bindings implemented

* remove deprecated controls panel

* changes up to swapping to recompfrontend library

* switch ui/input to be using recompfrontend library (unfinished)

* register main font with recompui

* Changes for recompui built in default scss

* launcher + custom background

* update modern runtime for recompui

* Update N64ModernRuntime for recompui config changes

* Added RecordSpinner icon

* Added PlusKeyboard icon

* remove sass and rml

* single player + theme update

* Delete Rmlui and lunasvg from being dependencies.

* Update recomp frontend commit.

* Remove lunasvg and rmlui submodules.

* Update recomp frontend.

* Move findfreetype.

* Remove freetype windows binaries.

* More updates.

* Update frontend.

* It builds.

* Update frontend.

* Update runtime and frontend.

* Update frontend and RT64.

* Get rid of SDL2 path from recomp frontend.

* Update runtime and frontend and fix link order to fix Linux building

* Update frontend and remove gyro and mouse sensitivity options

* Update frontend to fix open menu button on controllers

---------

Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
Co-authored-by: Mr-Wiseguy <mrwiseguyromhacking@gmail.com>
2026-01-03 16:44:58 -05:00

70 lines
1.3 KiB
C

#ifndef __UI_FUNCS_H__
#define __UI_FUNCS_H__
// These three enums must be kept in sync with src/ui/elements/ui_types.h!
typedef enum {
UI_EVENT_NONE,
UI_EVENT_CLICK,
UI_EVENT_FOCUS,
UI_EVENT_HOVER,
UI_EVENT_ENABLE,
UI_EVENT_DRAG,
UI_EVENT_RESERVED1, // Would be UI_EVENT_TEXT but text events aren't usable in mods currently
UI_EVENT_UPDATE,
UI_EVENT_NAVIGATE,
UI_EVENT_MOUSE_BUTTON,
UI_EVENT_MENU_ACTION,
UI_EVENT_COUNT
} RecompuiEventType;
typedef enum {
UI_DRAG_NONE,
UI_DRAG_START,
UI_DRAG_MOVE,
UI_DRAG_END
} RecompuiDragPhase;
typedef enum {
UI_MENU_ACTION_NONE,
UI_MENU_ACTION_ACCEPT,
UI_MENU_ACTION_APPLY,
UI_MENU_ACTION_BACK,
UI_MENU_ACTION_TOGGLE,
UI_MENU_ACTION_TAB_LEFT,
UI_MENU_ACTION_TAB_RIGHT
} RecompuiMenuAction;
typedef struct {
RecompuiEventType type;
union {
struct {
float x;
float y;
} click;
struct {
bool active;
} focus;
struct {
bool active;
} hover;
struct {
bool active;
} enable;
struct {
float x;
float y;
RecompuiDragPhase phase;
} drag;
struct {
RecompuiMenuAction action;
} menu_action;
} data;
} RecompuiEventData;
#endif