#include "menu.h" bool runSubmenu(Menu_t* const current_menu, void(*const redraw_callback)(), const ButtonPress_e tuner_button, const ButtonPress_e touch_button, const Point touch_point, const int16_t knob){ if(nullptr != current_menu->active_submenu){ auto ret = current_menu->active_submenu->runMenu(tuner_button,touch_button,touch_point,knob); switch(ret){ case MenuReturn_e::StillActive://Fallthrough intended case MenuReturn_e::ExitedNoRedraw: { //Nothing to do here - just return break; } default://Fallthrough intended. Default to this menu being active case MenuReturn_e::ExitedRedraw: { //Turn off submenu, redraw, then return current_menu->active_submenu = nullptr; redraw_callback(); break; } }//end switch return true; }//end submenu return false; }