home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
180.lha
/
Files_v1.2
/
src
/
menu.c
< prev
next >
Wrap
C/C++ Source or Header
|
1988-04-28
|
2KB
|
107 lines
/*
* 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);
}