interface menu : widget { 
\c{\fbox{menu}}
menu(char* p, char* options = ""); menu(widget* w, char* p, char* options = ""); menu* add(char* s, char* options = ""); menu* entry(char* s,char* args ="", char* opts=""); menu* entry(char*,action&, char* ="", char* =""); menu* cascade(char* s, char* m, char* opts = ""); menu* cascade(char* s, menu* m, char* opts = ""); char* entryconfigure(int i, char* options); int index(char *s); int active();
\c{// returns active index}
void del(int i);
\c{// delete entry with index i}
void del(char* s);
\c{// delete entry}
char* invoke(int i);
\c{// invoke entry with index i}
char* invoke(char *s );
\c{// invoke}
void post(int x = 500, int y = 500); void unpost(); protected: install(action&, char* args); };

slide: The menu class