/************************************************************************ shm_menu 9th August 87 ************************************************************************/ /* |----------|------------|--------------| | Controls | Parameters | Colours | | Draw | Settings | Palette | | Halt | | Cycle Time | | Reset | | | | Cycle | | | | Erase | | | | Manual | | | | Future | | | | Quit | | | |----------|------------|--------------| Controls menu mutual exclusion codes Q F M E C R H D D 1 1 1 1 1 1 1 0 FE H 1 1 1 1 1 1 0 1 FD R 1 1 1 1 1 0 0 1 F9 C 1 1 1 1 0 1 1 1 F7 E 1 1 1 0 1 0 0 1 E9 M 1 0 0 0 0 0 0 0 80 F 1 0 0 0 0 0 0 0 80 Q 0 1 1 1 1 1 1 1 7F */ #include "exec/types.h" #include "intuition/intuition.h" extern struct TextAttr Fnt; struct IntuiText menu_quit_txt = { 0, 1, JAM2,CHECKWIDTH, 0, &Fnt,"Quit " }; struct MenuItem menu_quit = { NULL, 0, 63, (75 + CHECKWIDTH + COMMWIDTH), 9, (CHECKIT | ITEMTEXT | COMMSEQ | ITEMENABLED | HIGHBOX), 0x7F, (APTR) &menu_quit_txt, NULL, 'Q', NULL }; struct IntuiText menu_future_txt = { 0, 1, JAM2,CHECKWIDTH, 0, &Fnt,"Future " }; struct MenuItem menu_future = { &menu_quit, 0, 54, (75 + CHECKWIDTH + COMMWIDTH), 9, (ITEMTEXT | COMMSEQ | ITEMENABLED | HIGHBOX), 0x80, (APTR) &menu_future_txt, NULL, 'F', NULL }; struct IntuiText menu_manual_txt = { 0, 1, JAM2,CHECKWIDTH, 0, &Fnt,"Manual " }; struct MenuItem menu_manual = { &menu_future, 0, 45, (75 + CHECKWIDTH + COMMWIDTH), 9, (ITEMTEXT | COMMSEQ | ITEMENABLED | HIGHBOX), 0x80, (APTR) &menu_manual_txt, NULL, 'M', NULL }; struct IntuiText menu_erase_txt = { 0, 1, JAM2,CHECKWIDTH, 0, &Fnt,"Erase " }; struct MenuItem menu_erase = { &menu_manual, 0, 36, (75 + CHECKWIDTH + COMMWIDTH), 9, (CHECKIT | ITEMTEXT | COMMSEQ | ITEMENABLED | HIGHBOX), 0xE9, (APTR) &menu_erase_txt, NULL, 'E', NULL }; struct IntuiText menu_cycle_txt = { 0, 1, JAM2,CHECKWIDTH, 0, &Fnt,"Cycle " }; struct MenuItem menu_cycle = { &menu_erase, 0, 27, (75 + CHECKWIDTH + COMMWIDTH), 9, (CHECKIT | ITEMTEXT | COMMSEQ | ITEMENABLED | HIGHBOX), 0xF7, (APTR) &menu_cycle_txt, NULL, 'C', NULL }; struct IntuiText menu_reset_txt = { 0, 1, JAM2,CHECKWIDTH, 0, &Fnt,"Reset " }; struct MenuItem menu_reset = { &menu_cycle, 0, 18, (75 + CHECKWIDTH + COMMWIDTH), 9, (CHECKIT | ITEMTEXT | COMMSEQ | ITEMENABLED | HIGHBOX), 0xF9, (APTR) &menu_reset_txt, NULL, 'R', NULL }; struct IntuiText menu_halt_txt = { 0, 1, JAM2,CHECKWIDTH, 0, &Fnt,"Halt " }; struct MenuItem menu_halt = { &menu_reset, 0, 9, (75 + CHECKWIDTH + COMMWIDTH), 9, (CHECKIT | ITEMTEXT | COMMSEQ | ITEMENABLED | HIGHBOX), 0xFD, (APTR) &menu_halt_txt, NULL, 'H', NULL }; struct IntuiText menu_draw_txt = { 0, 1, JAM2,CHECKWIDTH, 0, &Fnt,"Draw " }; struct MenuItem menu_draw = { &menu_halt, 0, 0, (75 + CHECKWIDTH + COMMWIDTH), 9, (CHECKIT | CHECKED | ITEMTEXT | COMMSEQ | ITEMENABLED | HIGHBOX), 0xFE, (APTR) &menu_draw_txt, NULL, 'D', NULL }; struct IntuiText menu_settings_txt = { 0, 1, JAM2, 0, 0, &Fnt,"Settings " }; struct MenuItem menu_settings = { NULL, 0, 0, 100, 9, (ITEMTEXT | ITEMENABLED | HIGHBOX), NULL, (APTR) &menu_settings_txt, NULL, NULL, NULL }; struct IntuiText menu_cycle_time_txt = { 0, 1, JAM2, 0, 0, &Fnt,"Cycle Time " }; struct MenuItem menu_cycle_time = { NULL, 0, 9, 80, 9, (ITEMTEXT | ITEMENABLED | HIGHBOX), NULL, (APTR) &menu_cycle_time_txt, NULL, NULL, NULL }; struct IntuiText menu_palette_txt = { 0, 1, JAM2, 0, 0, &Fnt,"Palette " }; struct MenuItem menu_palette = { &menu_cycle_time, 0, 0, 80, 9, (ITEMTEXT | ITEMENABLED | HIGHBOX), NULL, (APTR) &menu_palette_txt, NULL, NULL, NULL }; struct Menu Menu[3] = { { /* Menu[0] : Controls */ &Menu[1], 0,0,(75+CHECKWIDTH+COMMWIDTH),0, MENUENABLED, "Controls", &menu_draw }, { /* Menu[1] : Parameters */ &Menu[2], (76+CHECKWIDTH+COMMWIDTH),0,100,0, MENUENABLED, "Parameters", &menu_settings }, { /* Menu[2] : Colours */ NULL, (177+CHECKWIDTH+COMMWIDTH),0,80,0, MENUENABLED, "Colours", &menu_palette } }; struct Menu *SHMenu = &Menu[0];