/** * Copyright (c) 2021 Dominic Masters * * This software is released under the MIT License. * https://opensource.org/licenses/MIT */ #pragma once #include #include "label.h" #include "menu.h" #include "frame.h" #include "rectangle.h" /** Callback to listen for when the menu is selected. */ void _menuListMenuOnSelect(menu_t *menu, menuitem_t *item, uint8_t i, void *u); /** * Initialize a menu list. * * @param ml Menu List to initialize. * @param texture Texture to use for the frame. */ void menuListInit(menulist_t *ml, texture_t *texture); /** * Add an item to the menu list. * * @param ml Menu list to add to. * @param font Font to use for the label. * @param text Text to add. * @return Index that refers to the label/menu item. */ uint8_t menuListAdd(menulist_t *ml, font_t *font, char *text); /** * Tick the menu list and listen for input changes. * * @param ml Menu list to update. * @param engine Engine to update with. */ void menuListUpdate(menulist_t *ml, engine_t *engine); /** * Render a menu list. * * @param ml Menu list to render. * @param shader Shader to use. */ void menuListRender(menulist_t *ml, shader_t *shader); /** * Cleanup a previously created menu list. * * @param ml Menu list to clean up. */ void menuListDispose(menulist_t *ml);