home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Carousel Volume 2 #1
/
carousel.iso
/
mactosh
/
lang
/
skel_azt.sha
/
applemenu.c
< prev
next >
Wrap
C/C++ Source or Header
|
1986-07-08
|
1KB
|
57 lines
/*
* applemenu.c -- handle menu selection in first (Apple) menu
*/
#include <quickdraw.h>
#include <desk.h>
#include <memory.h> /* see comment about NewHandle() */
#include <menu.h>
#include <osutil.h>
#include <resource.h>
#include "def.h"
void
applemenu(item)
{
Handle dum;
extern MenuHandle mh[NMENUS + 1];
char name[255];
/* For some reason, even though <memory.h> contains this
* declaration of NewHandle, it doesn't take effect (at least
* in Aztec C 1.06G,) so it must be declared again.
*/
extern Handle NewHandle();
int refnum;
GrafPtr saveport;
Handle strrsrc;
if (item == 1) { /* about ... */
extern void report();
strrsrc = GetString(1);
HLock(strrsrc);
report(*strrsrc);
HUnlock(strrsrc);
}
else {
GetPort(&saveport); /* run desk accessory */
GetItem(mh[1], item, &name);
SetResLoad(FALSE); /* check for memory space */
dum = NewHandle(SizeResource(GetNamedResource('DRVR',
name)) + 3072L);
SetResLoad(TRUE);
if (!MemError()) {
DisposHandle(dum);
EnableItem(mh[3], 0);
refnum = OpenDeskAcc(name);
SetPort(saveport);
}
else
SysBeep(1);
};
} /* end of applemenu */