home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
488.lha
/
modengine_v1.0
/
modengine1.h
< prev
next >
Wrap
C/C++ Source or Header
|
1991-03-07
|
6KB
|
173 lines
/* modengine1.h
* Copyright (C) 1990 Commodore-Amiga, Inc.
* written by David N. Junod
*
* header file for modengine1.c
* application-specific arrays & definitions
*
*/
/* Modular Function ID's */
enum
{
NewID = 1,
OpenID,
SaveID,
SaveAsID,
AboutID,
QuitID,
ChooseID,
DefineID,
UndoID,
HelpID,
ArrowID,
ShellID,
Macro1ID,
WindowID,
AbortID,
LAST_ID
};
/* Modular Function Table */
struct Funcs FTable[] =
{
{NULL, NO_FUNCTION}, /* padding, for alignment */
{"NEW", NewFunc},
{"OPEN", OpenFunc},
{"SAVE", SaveFunc},
{"SAVEAS", SaveAsFunc},
{"ABOUT", AboutFunc},
{"QUIT", QuitFunc},
{"CHOOSE", ChooseFunc},
{"DEFINE", DefineFunc},
{"UNDO", UndoFunc},
{"HELP", HelpFunc},
{"ARROW", ArrowFunc},
{"SHELL", ShellFunc},
{"MACRO1", NO_FUNCTION}, /* calls an ARexx macro */
{"WINDOW", WindowFunc},
{"ABORT", AbortFunc},
{NULL, NO_FUNCTION} /* end of array */
};
/* Text attribute to use for our text */
struct TextAttr Topaz80 = {"topaz.font", 8, NULL, NULL};
/* The menu structures for our 'application' */
struct IntuiText UserT[] =
{
{2, 1, COMPLEMENT, 2, 1, &Topaz80, "Command Shell", NULL},
{2, 1, COMPLEMENT, 2, 1, &Topaz80, "ARexx Macro 1", NULL}
};
/* MenuItem structure using our extended structure */
struct EMenuItem UserI[] =
{
{NULL, 0, 0, 168, 9,
ITEMTEXT | COMMSEQ | ITEMENABLED | HIGHCOMP,
0, (APTR) & UserT[0], NULL, 'E', NULL, MENUNULL, ShellID, NULL},
{&UserI[0].emi_Item, 0, 9, 168, 9,
ITEMTEXT | COMMSEQ | ITEMENABLED | HIGHCOMP,
0, (APTR) & UserT[1], NULL, '1', NULL, MENUNULL, Macro1ID, NULL}
};
/* Text for our Menu Items */
struct IntuiText ProjT[] =
{
{2, 1, COMPLEMENT, 2, 1, &Topaz80, "New", NULL},
{2, 1, COMPLEMENT, 2, 1, &Topaz80, "Open...", NULL},
{2, 1, COMPLEMENT, 2, 1, &Topaz80, "Save", NULL},
{2, 1, COMPLEMENT, 2, 1, &Topaz80, "Save As...", NULL},
{2, 1, COMPLEMENT, 2, 1, &Topaz80, "About...", NULL},
{2, 1, COMPLEMENT, 2, 1, &Topaz80, "Quit", NULL}
};
/* Extended Menu Item structures for our Application */
struct EMenuItem ProjI[] =
{
{NULL, 0, 51, 148, 9,
ITEMTEXT | COMMSEQ | ITEMENABLED | HIGHCOMP,
0, (APTR) & ProjT[5], NULL, 'Q', NULL, MENUNULL, QuitID, NULL},
{&ProjI[0].emi_Item, 0, 40, 148, 9,
ITEMTEXT | ITEMENABLED | HIGHCOMP,
0, (APTR) & ProjT[4], NULL, NULL, NULL, MENUNULL, AboutID, NULL},
{&ProjI[1].emi_Item, 0, 29, 148, 9,
ITEMTEXT | ITEMENABLED | HIGHCOMP,
0, (APTR) & ProjT[3], NULL, NULL, NULL, MENUNULL, SaveAsID, NULL},
{&ProjI[2].emi_Item, 0, 20, 148, 9,
ITEMTEXT | COMMSEQ | ITEMENABLED | HIGHCOMP,
0, (APTR) & ProjT[2], NULL, 'S', NULL, MENUNULL, SaveID, NULL},
{&ProjI[3].emi_Item, 0, 9, 148, 9,
ITEMTEXT | COMMSEQ | ITEMENABLED | HIGHCOMP,
0, (APTR) & ProjT[1], NULL, 'O', NULL, MENUNULL, OpenID, NULL},
{&ProjI[4].emi_Item, 0, 0, 148, 9,
ITEMTEXT | ITEMENABLED | HIGHCOMP,
0, (APTR) & ProjT[0], NULL, NULL, NULL, MENUNULL, NewID, NULL}
};
/* Menu structure */
struct Menu Menu2 =
{NULL, 70, 0, 87, 0, MENUENABLED, "User", &UserI[1].emi_Item};
struct Menu Menu1 =
{&Menu2, 0, 0, 63, 0, MENUENABLED, "Project", &ProjI[5].emi_Item};
/* Text for our Gadgets */
struct IntuiText GadgT[] =
{
{2, 1, JAM2, 2, 1, &Topaz80, " DownPress ", NULL},
{2, 1, JAM2, 2, 1, &Topaz80, " Hold (Drag) ", NULL},
{2, 1, JAM2, 2, 1, &Topaz80, " Release ", NULL},
{2, 1, JAM2, 2, 1, &Topaz80, " Double-Click ", NULL},
{2, 1, JAM2, 2, 1, &Topaz80, " ARexx Macro ", NULL}
};
/* extended Gadgets structures for our application */
struct EGadget Gadg[] =
{
{NULL, 67, 15, 115, 10, NULL, GADGIMMEDIATE | RELVERIFY,
BOOLGADGET, NULL, NULL, &GadgT[0], NULL, NULL, NULL, NULL,
ChooseID, NO_FUNCTION, NO_FUNCTION, NO_FUNCTION, NO_FUNCTION},
{&Gadg[0].eg_Gadget, 67, 29, 115, 10, NULL, GADGIMMEDIATE | RELVERIFY,
BOOLGADGET, NULL, NULL, &GadgT[1], NULL, NULL, NULL, NULL,
ArrowID, ArrowID, NO_FUNCTION, NO_FUNCTION, AbortID},
{&Gadg[1].eg_Gadget, 67, 43, 115, 10, NULL, GADGIMMEDIATE | RELVERIFY,
BOOLGADGET, NULL, NULL, &GadgT[2], NULL, NULL, NULL, NULL,
NO_FUNCTION, NO_FUNCTION, UndoID, NO_FUNCTION, NO_FUNCTION},
{&Gadg[2].eg_Gadget, 67, 58, 115, 10, NULL, GADGIMMEDIATE | RELVERIFY,
BOOLGADGET, NULL, NULL, &GadgT[3], NULL, NULL, NULL, NULL,
ChooseID, NO_FUNCTION, NO_FUNCTION, DefineID, NO_FUNCTION},
{&Gadg[3].eg_Gadget, 67, 73, 115, 10, NULL, GADGIMMEDIATE | RELVERIFY,
BOOLGADGET, NULL, NULL, &GadgT[4], NULL, NULL, NULL, NULL,
NO_FUNCTION, NO_FUNCTION, Macro1ID, NO_FUNCTION, NO_FUNCTION}
};
/* Set up the keyboard function map. If you are a word processor,
* then you could set up all the text-related keys to the same
* function. */
struct KeyboardCMD KeyArray[] =
{
{'u', UndoID}, /* u will call the Undo function */
{ESC, QuitID}, /* ESC to quit */
{HELP, HelpID}, /* HELP to call the help function */
{UP, ArrowID}, /* Up arrow */
{DOWN, ArrowID}, /* Down arrow */
{FUNC1,Macro1ID}, /* Call an ARexx macro */
{NULL, NO_FUNCTION} /* end of array */
};
/* NewWindow structure */
struct NewWindow NewWindow =
{
0, 10, 250, 90, 2, 1,
NULL,
WINDOWDRAG | WINDOWDEPTH | WINDOWCLOSE | ACTIVATE | NOCAREREFRESH
| REPORTMOUSE,
&Gadg[4].eg_Gadget, NULL, APPNAME, NULL, NULL,
60, 30, 1024, 1024, WBENCHSCREEN,
};