/** * Copyright (c) 2021 Dominic Masters * * This software is released under the MIT License. * https://opensource.org/licenses/MIT */ #pragma once #include "../libs.h" /** The maximum number of items a menu can hold */ #define MENU_ITEMS_MAX 32 typedef struct _menuitem_t menuitem_t; typedef struct _menu_t menu_t; /** Callback for when menu events are fired. */ typedef void menucallback_t(menu_t *m, menuitem_t *t, uint8_t i, void *user); typedef struct _menuitem_t { uint8_t x; uint8_t y; uint8_t width; uint8_t height; } menuitem_t; typedef struct _menu_t { menuitem_t items[MENU_ITEMS_MAX]; uint8_t itemCount; uint8_t selected; uint8_t cursorX; uint8_t cursorY; void *user; menucallback_t *onSelect; } menu_t;