home *** CD-ROM | disk | FTP | other *** search
-
- /*
- * MENU.C
- *
- * (c)Copyright 1987 Matthew Dillon, All Rights Reserved.
- *
- */
-
- #include "files.h"
-
- #define NI 0 /* means 'not initialized' */
-
- static ITEXT IText[] = {
- { 0, 1, JAM2, 0, 0, NULL, (ubyte *)"Save" },
- { 0, 1, JAM2, 0, 0, NULL, (ubyte *)"SaveAs" },
- { 0, 1, JAM2, 0, 0, NULL, (ubyte *)"Load" },
- { 0, 1, JAM2, 0, 0, NULL, (ubyte *)"LoadDefault" },
- { 0, 1, JAM2, 0, 0, NULL, (ubyte *)"Quit" },
- { 0, 1, JAM2, 0, 0, NULL, (ubyte *)"AddKillPat" },
- };
-
- static ITEM Item[] = {
- { &Item[1], 0, NI, NI, NI, 0, 0, (APTR)&IText[0], NULL },
- { &Item[2], 0, NI, NI, NI, 0, 0, (APTR)&IText[1], NULL },
- { &Item[3], 0, NI, NI, NI, 0, 0, (APTR)&IText[2], NULL },
- { &Item[4], 0, NI, NI, NI, 0, 0, (APTR)&IText[3], NULL },
- { NULL , 0, NI, NI, NI, 0, 0, (APTR)&IText[4], NULL },
- { NULL , 0, NI, NI, NI, 0, 0, (APTR)&IText[5], NULL },
- };
-
- static MENU Menu[] = {
- { &Menu[1], NI, 0, NI, NI, NI, "Project" , NI },
- { NULL , NI, 0, NI, NI, NI, "Control", NI }
- };
-
-
- addmenus()
- {
- MENU *menu;
- ITEM *item, *nit;
- short left = 5;
- short height;
- short width;
-
- for (menu = Menu, item = Item; menu; menu = menu->NextMenu) {
- height = 0;
- width = strlen(menu->MenuName);
- menu->FirstItem = item;
- for (item = menu->FirstItem; item; item = item->NextItem) {
- if (width < strlen(((ITEXT *)item->ItemFill)->IText))
- width = strlen(((ITEXT *)item->ItemFill)->IText);
- }
- width *= Win->RPort->TxWidth;
- for (item = menu->FirstItem; item; nit = item, item = item->NextItem) {
- item->Width = width;
- item->Height = Win->RPort->TxHeight + 2;
- item->TopEdge = height;
- item->Flags |= ITEMTEXT|ITEMENABLED|HIGHCOMP;
- height += item->Height;
- }
- menu->LeftEdge = left;
- menu->Width = width;
- menu->Height = height;
- menu->Flags = MENUENABLED;
- item = nit + 1;
- left += width + 4;
- }
- SetMenuStrip(Win, Menu);
- }
-
- remmenus()
- {
- ClearMenuStrip(Win);
- }
-
- getmenu(im)
- IMESS *im;
- {
- register short mn = MENUNUM(im->Code);
- register short in = ITEMNUM(im->Code);
-
- switch(mn) {
- case 0:
- switch(in) {
- case 0:
- return(MEN_SAVE);
- case 1:
- return(MEN_SAVEAS);
- case 2:
- return(MEN_LOAD);
- case 3:
- return(MEN_LOADEF);
- case 4:
- return(MEN_QUIT);
- }
- break;
- case 1:
- switch(in) {
- case 0:
- return(MEN_KILLPAT);
- }
- break;
- }
- return(0);
- }
-
-