CleverRaven/Cataclysm-DDA — pull request #1487 by atomicdryad (2013-06-08 15:34:22+00:00)
Title: uimenu class: options for colors, geometry, behavior, preselection, and per entry hotkeys, disabling, etc

Will return user selection if invoked as a return int.

Invoked as a class:
uimenu sm;
sm.text="I am MENU!";
sm.return_invalid=false;
sm.entries.push_back(uimenu_entry(23, true, 'u', "I return -23-!" ));
sm.entries.push_back(uimenu_entry(2, true, -1, "I have auto-allocated hotkey");
sm.entries.push_back(uimenu_entry(33, false, 'w', "Someone disabled me =[");
sm.query();
if(sm.ret < 1) popup("Impossible goal reached");

Can also be invoked like menu();
int ret=uimenu(false,"I'm a menu", "I'm an option", "Me too", NULL);

or
std::vector stuff;
/* define stuff */
uimenu(startx, width, starty, "I'm a menu', stuff);