52 lines
976 B
C
52 lines
976 B
C
#ifndef MENU_API_H
|
|
#define MENU_API_H
|
|
|
|
#include "../src/core/menu_types.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
// Initialization
|
|
MenuErrCode menu_init(void);
|
|
void menu_deinit(void);
|
|
|
|
// Core Loop
|
|
void menu_main_loop(uint32_t tick);
|
|
|
|
// Node Registration
|
|
MenuNodeId menu_register_node(
|
|
MenuNodeId id,
|
|
MenuNodeId parent_id,
|
|
const char* name,
|
|
MenuCallback enter_cb,
|
|
MenuCallback exit_cb
|
|
);
|
|
|
|
// Extended registration (Optimization)
|
|
MenuNodeId menu_register_node_ex(
|
|
MenuNodeId id,
|
|
MenuNodeId parent_id,
|
|
const char* name,
|
|
MenuCallback enter_cb,
|
|
MenuCallback exit_cb,
|
|
MenuCallback render_cb,
|
|
void* user_data
|
|
);
|
|
|
|
// Event Handling
|
|
MenuErrCode menu_post_event(MenuEventType type, uint32_t param);
|
|
|
|
// Navigation
|
|
MenuErrCode menu_enter(void); // Enter root
|
|
MenuErrCode menu_back(void);
|
|
|
|
// Parameter Binding
|
|
MenuErrCode menu_node_bind_param(MenuNodeId node_id, uint16_t param_id);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // MENU_API_H
|