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 >
C/C++ Source or Header  |  1991-03-07  |  6KB  |  173 lines

  1. /* modengine1.h
  2.  * Copyright (C) 1990 Commodore-Amiga, Inc.
  3.  * written by David N. Junod
  4.  *
  5.  * header file for modengine1.c
  6.  * application-specific arrays & definitions
  7.  *
  8.  */
  9.  
  10. /* Modular Function ID's */
  11. enum
  12. {
  13.     NewID = 1,
  14.     OpenID,
  15.     SaveID,
  16.     SaveAsID,
  17.     AboutID,
  18.     QuitID,
  19.     ChooseID,
  20.     DefineID,
  21.     UndoID,
  22.     HelpID,
  23.     ArrowID,
  24.     ShellID,
  25.     Macro1ID,
  26.     WindowID,
  27.     AbortID,
  28.     LAST_ID
  29. };
  30.  
  31. /* Modular Function Table */
  32. struct Funcs FTable[] =
  33. {
  34.     {NULL,     NO_FUNCTION},    /* padding, for alignment */
  35.     {"NEW",    NewFunc},
  36.     {"OPEN",   OpenFunc},
  37.     {"SAVE",   SaveFunc},
  38.     {"SAVEAS", SaveAsFunc},
  39.     {"ABOUT",  AboutFunc},
  40.     {"QUIT",   QuitFunc},
  41.     {"CHOOSE", ChooseFunc},
  42.     {"DEFINE", DefineFunc},
  43.     {"UNDO",   UndoFunc},
  44.     {"HELP",   HelpFunc},
  45.     {"ARROW",  ArrowFunc},
  46.     {"SHELL",  ShellFunc},
  47.     {"MACRO1", NO_FUNCTION},    /* calls an ARexx macro */
  48.     {"WINDOW", WindowFunc},
  49.     {"ABORT",  AbortFunc},
  50.     {NULL,     NO_FUNCTION}    /* end of array */
  51. };
  52.  
  53. /* Text attribute to use for our text */
  54. struct TextAttr Topaz80 = {"topaz.font", 8, NULL, NULL};
  55.  
  56. /* The menu structures for our 'application' */
  57. struct IntuiText UserT[] =
  58. {
  59.     {2, 1, COMPLEMENT, 2, 1, &Topaz80, "Command Shell",   NULL},
  60.     {2, 1, COMPLEMENT, 2, 1, &Topaz80, "ARexx Macro 1", NULL}
  61. };
  62.  
  63. /* MenuItem structure using our extended structure */
  64. struct EMenuItem UserI[] =
  65. {
  66.     {NULL,               0, 0, 168, 9,
  67.      ITEMTEXT | COMMSEQ | ITEMENABLED | HIGHCOMP,
  68.      0, (APTR) & UserT[0], NULL, 'E', NULL, MENUNULL, ShellID, NULL},
  69.  
  70.     {&UserI[0].emi_Item, 0, 9, 168, 9,
  71.      ITEMTEXT | COMMSEQ | ITEMENABLED | HIGHCOMP,
  72.      0, (APTR) & UserT[1], NULL, '1', NULL, MENUNULL, Macro1ID, NULL}
  73. };
  74.  
  75. /* Text for our Menu Items */
  76. struct IntuiText ProjT[] =
  77. {
  78.     {2, 1, COMPLEMENT, 2, 1, &Topaz80, "New", NULL},
  79.     {2, 1, COMPLEMENT, 2, 1, &Topaz80, "Open...", NULL},
  80.     {2, 1, COMPLEMENT, 2, 1, &Topaz80, "Save", NULL},
  81.     {2, 1, COMPLEMENT, 2, 1, &Topaz80, "Save As...", NULL},
  82.     {2, 1, COMPLEMENT, 2, 1, &Topaz80, "About...", NULL},
  83.     {2, 1, COMPLEMENT, 2, 1, &Topaz80, "Quit", NULL}
  84. };
  85.  
  86. /* Extended Menu Item structures for our Application */
  87. struct EMenuItem ProjI[] =
  88. {
  89.     {NULL,               0, 51, 148, 9,
  90.      ITEMTEXT | COMMSEQ | ITEMENABLED | HIGHCOMP,
  91.      0, (APTR) & ProjT[5], NULL, 'Q', NULL, MENUNULL, QuitID, NULL},
  92.     {&ProjI[0].emi_Item, 0, 40, 148, 9,
  93.      ITEMTEXT | ITEMENABLED | HIGHCOMP,
  94.      0, (APTR) & ProjT[4], NULL, NULL, NULL, MENUNULL, AboutID, NULL},
  95.     {&ProjI[1].emi_Item, 0, 29, 148, 9,
  96.      ITEMTEXT | ITEMENABLED | HIGHCOMP,
  97.      0, (APTR) & ProjT[3], NULL, NULL, NULL, MENUNULL, SaveAsID, NULL},
  98.     {&ProjI[2].emi_Item, 0, 20, 148, 9,
  99.      ITEMTEXT | COMMSEQ | ITEMENABLED | HIGHCOMP,
  100.      0, (APTR) & ProjT[2], NULL, 'S', NULL, MENUNULL, SaveID, NULL},
  101.     {&ProjI[3].emi_Item, 0, 9, 148, 9,
  102.      ITEMTEXT | COMMSEQ | ITEMENABLED | HIGHCOMP,
  103.      0, (APTR) & ProjT[1], NULL, 'O', NULL, MENUNULL, OpenID, NULL},
  104.     {&ProjI[4].emi_Item, 0, 0, 148, 9,
  105.      ITEMTEXT | ITEMENABLED | HIGHCOMP,
  106.      0, (APTR) & ProjT[0], NULL, NULL, NULL, MENUNULL, NewID, NULL}
  107. };
  108.  
  109. /* Menu structure */
  110. struct Menu Menu2 =
  111. {NULL,  70, 0, 87, 0, MENUENABLED, "User",    &UserI[1].emi_Item};
  112. struct Menu Menu1 =
  113. {&Menu2, 0, 0, 63, 0, MENUENABLED, "Project", &ProjI[5].emi_Item};
  114.  
  115. /* Text for our Gadgets */
  116. struct IntuiText GadgT[] =
  117. {
  118.     {2, 1, JAM2, 2, 1, &Topaz80, "   DownPress  ", NULL},
  119.     {2, 1, JAM2, 2, 1, &Topaz80, "  Hold (Drag) ", NULL},
  120.     {2, 1, JAM2, 2, 1, &Topaz80, "    Release   ", NULL},
  121.     {2, 1, JAM2, 2, 1, &Topaz80, " Double-Click ", NULL},
  122.     {2, 1, JAM2, 2, 1, &Topaz80, " ARexx Macro  ", NULL}
  123. };
  124.  
  125. /* extended Gadgets structures for our application */
  126. struct EGadget Gadg[] =
  127. {
  128.     {NULL,               67, 15, 115, 10, NULL, GADGIMMEDIATE | RELVERIFY,
  129.      BOOLGADGET, NULL, NULL, &GadgT[0], NULL, NULL, NULL, NULL,
  130.      ChooseID, NO_FUNCTION, NO_FUNCTION, NO_FUNCTION, NO_FUNCTION},
  131.  
  132.     {&Gadg[0].eg_Gadget, 67, 29, 115, 10, NULL, GADGIMMEDIATE | RELVERIFY,
  133.      BOOLGADGET, NULL, NULL, &GadgT[1], NULL, NULL, NULL, NULL,
  134.      ArrowID, ArrowID, NO_FUNCTION, NO_FUNCTION, AbortID},
  135.  
  136.     {&Gadg[1].eg_Gadget, 67, 43, 115, 10, NULL, GADGIMMEDIATE | RELVERIFY,
  137.      BOOLGADGET, NULL, NULL, &GadgT[2], NULL, NULL, NULL, NULL,
  138.      NO_FUNCTION, NO_FUNCTION, UndoID, NO_FUNCTION, NO_FUNCTION},
  139.  
  140.     {&Gadg[2].eg_Gadget, 67, 58, 115, 10, NULL, GADGIMMEDIATE | RELVERIFY,
  141.      BOOLGADGET, NULL, NULL, &GadgT[3], NULL, NULL, NULL, NULL,
  142.      ChooseID, NO_FUNCTION, NO_FUNCTION, DefineID, NO_FUNCTION},
  143.  
  144.     {&Gadg[3].eg_Gadget, 67, 73, 115, 10, NULL, GADGIMMEDIATE | RELVERIFY,
  145.      BOOLGADGET, NULL, NULL, &GadgT[4], NULL, NULL, NULL, NULL,
  146.      NO_FUNCTION, NO_FUNCTION, Macro1ID, NO_FUNCTION, NO_FUNCTION}
  147. };
  148.  
  149. /* Set up the keyboard function map. If you are a word processor,
  150.  * then you could set up all the text-related keys to the same
  151.  * function. */
  152. struct KeyboardCMD KeyArray[] =
  153. {
  154.     {'u',  UndoID},        /* u will call the Undo function */
  155.     {ESC,  QuitID},        /* ESC to quit */
  156.     {HELP, HelpID},        /* HELP to call the help function */
  157.     {UP,   ArrowID},        /* Up arrow */
  158.     {DOWN, ArrowID},        /* Down arrow */
  159.     {FUNC1,Macro1ID},        /* Call an ARexx macro */
  160.     {NULL, NO_FUNCTION}        /* end of array */
  161. };
  162.  
  163. /* NewWindow structure */
  164. struct NewWindow NewWindow =
  165. {
  166.     0, 10, 250, 90, 2, 1,
  167.     NULL,
  168.     WINDOWDRAG | WINDOWDEPTH | WINDOWCLOSE | ACTIVATE | NOCAREREFRESH
  169.     | REPORTMOUSE,
  170.     &Gadg[4].eg_Gadget, NULL, APPNAME, NULL, NULL,
  171.     60, 30, 1024, 1024, WBENCHSCREEN,
  172. };
  173.