home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 3 / Meeting_Pearls_III.iso / Pearls / texmf / source / driver / show / amiga / am_menu.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-07-10  |  6.2 KB  |  172 lines

  1. /** am_menu.h **/
  2.  
  3. #define NR_MENU_LINES        10
  4. #define NR_SMENU_O_LINES    4
  5. #define NR_SMENU_L_LINES    2
  6. #define NR_SMENU_R_LINES    3                /* variabel */
  7.  
  8.  
  9. #define MAIN_MENU        0
  10. #define SMENU_OUTFIT        1
  11. #define SMENU_LOAD        2
  12. #define SMENU_RESOLUTION    3
  13.  
  14. #define TXTHEIGHT        txt_height
  15. #define TXTWIDTH        txt_width
  16.  
  17. #define YOFFSET            (TXTHEIGHT+2)
  18.  
  19. #define CALC_HEIGHT(lines)    (long)(7+((lines)*YOFFSET))
  20.  
  21. #define MENU_CHARS        16
  22. #define CALC_MENU_WIDTH        (MENU_CHARS*TXTWIDTH+8)
  23. #define CALC_MENU_HEIGHT    CALC_HEIGHT(NR_MENU_LINES)
  24. #define MENU_WIDTH        menu_width
  25. #define MENU_HEIGHT        menu_height
  26.  
  27. #define SMENU_O_CHARS        16
  28. #define CALC_SMENU_O_WIDTH    (SMENU_O_CHARS*TXTWIDTH+8)
  29. #define CALC_SMENU_O_HEIGHT    CALC_HEIGHT(NR_SMENU_O_LINES)
  30. #define SMENU_O_WIDTH        smenu_o_width
  31. #define SMENU_O_HEIGHT        smenu_o_height
  32.  
  33. #define SMENU_L_CHARS        17
  34. #define CALC_SMENU_L_WIDTH    (SMENU_L_CHARS*TXTWIDTH+8)
  35. #define CALC_SMENU_L_HEIGHT    CALC_HEIGHT(NR_SMENU_L_LINES)
  36. #define SMENU_L_WIDTH        smenu_l_width
  37. #define SMENU_L_HEIGHT        smenu_l_height
  38.  
  39. #define SMENU_R_CHARS        12 /*9*/
  40. #define CALC_SMENU_R_WIDTH    (SMENU_R_CHARS*TXTWIDTH+8)
  41. #define CALC_SMENU_R_HEIGHT    CALC_HEIGHT(show_state.menu_res_lines)    /* variabel */
  42. #define SMENU_R_WIDTH        smenu_r_width
  43. #define SMENU_R_HEIGHT        smenu_r_height
  44.  
  45. #define SMENU_O_START_LINE    6
  46. #define SMENU_L_START_LINE    7
  47. #define SMENU_R_START_LINE    8
  48.  
  49. #define SPALTE            (TXTWIDTH*9)        /* zweite Spalte im Menu */
  50. #define SUBMENU_SPALTE        (SPALTE)        /* Start Submenu */
  51. #define SUBMENU_ARROW        (MENU_WIDTH-20)        /* draw arrow */
  52.  
  53.  
  54.  
  55.  
  56.  
  57. /****************************************************************************/
  58.  
  59. #include "localstr.h"
  60.  
  61. #define SPECIAL_HAS_SUB    1<<0
  62. #define SPECIAL_EMPTY     1<<1
  63. #define SPECIAL_IS_SUB     1<<2
  64.  
  65. struct MenuLayout {
  66.   WORD  StringNr;
  67.   BYTE  Special;
  68.   BYTE  Command;
  69.   UWORD Flags;
  70.   char *RightString;
  71. };
  72.  
  73. static struct IntuiText DefaultIText = {
  74.    0, 1, JAM1, 1, 1, NULL, NULL, NULL
  75. };
  76.  
  77. static struct MenuItem DefaultMenuItem = {
  78.    NULL, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, NULL, 0
  79. };
  80.  
  81. static struct Image EmptyImage = {
  82.    0, 0, 0, 0, 1,NULL, 0, 0, NULL
  83. };
  84.  
  85. #define DEFFLAGS    ITEMENABLED|ITEMTEXT|HIGHCOMP
  86. #define DEFSUBFLAGS    ITEMENABLED|ITEMTEXT|HIGHBOX
  87. #define DEFEMPTY    HIGHNONE
  88.  
  89.  
  90.  
  91. static struct Menu *DosMenu;
  92.  
  93.  
  94. static struct MenuLayout ProjectMenu[] = {
  95.   { MSG_PROJECT_ABOUT, 0, '\0', DEFFLAGS, "HELP" },
  96.   { -1, SPECIAL_EMPTY, '\0', DEFEMPTY, NULL },
  97.   { MSG_PROJECT_OPENAGAIN, 0, '\0', DEFFLAGS, "a" },
  98.   { MSG_PROJECT_OPENNEW, 0, 'O', DEFFLAGS|COMMSEQ, NULL },
  99.   { MSG_PROJECT_AUTOLOADAGAIN, 0, 'A', DEFFLAGS|COMMSEQ|MENUTOGGLE|CHECKIT, NULL },
  100.   { MSG_PROJECT_SAVEIFF, 0, '\0', DEFFLAGS, NULL },
  101.   { -1, SPECIAL_EMPTY, '\0', DEFEMPTY, NULL },
  102.   { MSG_PROJECT_SHELLCOMANDS, SPECIAL_HAS_SUB, '\0', DEFSUBFLAGS, NULL },
  103.   { -1, SPECIAL_EMPTY, '\0', DEFEMPTY, NULL },
  104.   { MSG_PROJECT_PRINTPAGE, 0, '\0', DEFFLAGS, "p" },
  105.   { -1, SPECIAL_EMPTY, '\0', DEFEMPTY, NULL },
  106.   { MSG_PROJECT_WBTOFRONT, 0, '\0', DEFFLAGS, "d" },
  107.   { MSG_PROJECT_HIDE, 0, '\0', DEFFLAGS, "ESC" },
  108.   { MSG_PROJECT_SAVECONFIG, 0, 'W', DEFFLAGS|COMMSEQ, NULL },
  109.   { -1, SPECIAL_EMPTY, '\0', DEFEMPTY, NULL },
  110.   { MSG_PROJECT_QUIT, 0, 'Q', DEFFLAGS|COMMSEQ, NULL }
  111.  };
  112.  
  113. static struct MenuLayout ProjectShellMenu[] = {
  114.   { MSG_PROJECT_SHELLCOMANDS_NEWCLI, SPECIAL_IS_SUB, '\0', DEFFLAGS, "!" },
  115.   { MSG_PROJECT_SHELLCOMANDS_EXECUTECOMMAND, SPECIAL_IS_SUB, 'E', DEFFLAGS|COMMSEQ, NULL },
  116.   { MSG_PROJECT_SHELLCOMANDS_TEXSCRIPT, SPECIAL_IS_SUB, '\0', DEFFLAGS, "r|R" },
  117.   { MSG_PROJECT_SHELLCOMANDS_AREXXTEXSHELL, SPECIAL_IS_SUB, '\0', DEFFLAGS, NULL },
  118.   { MSG_PROJECT_SHELLCOMANDS_SETENVTEXFORMAT, SPECIAL_IS_SUB, '\0', DEFFLAGS, NULL },
  119.   { MSG_PROJECT_SHELLCOMANDS_SPECIALHOST, SPECIAL_IS_SUB, 'H', DEFFLAGS|COMMSEQ, NULL },
  120.  };
  121.  
  122. static struct MenuLayout OutfitMenu[] = {
  123.   { MSG_OUTFIT_COPY, 0, 'C', DEFFLAGS|COMMSEQ, NULL },
  124.   { -1, SPECIAL_EMPTY, '\0', DEFEMPTY, NULL },
  125.   { MSG_OUTFIT_LACE, 0, '\0', DEFFLAGS|MENUTOGGLE|CHECKIT, "i" },
  126.   { MSG_OUTFIT_SCROLLBAR, 0, '\0', DEFFLAGS|MENUTOGGLE|CHECKIT, "o" },
  127.   { MSG_OUTFIT_FULLPAGE, 0, '\0', DEFFLAGS|MENUTOGGLE|CHECKIT, "f" },
  128.   { MSG_OUTFIT_MEASUREWINDOW, 0, '\0', DEFFLAGS|MENUTOGGLE|CHECKIT, "m" },
  129.   { MSG_OUTFIT_BORDERLINE, 0, '\0', DEFFLAGS|MENUTOGGLE|CHECKIT, "l" },
  130.   { -1, SPECIAL_EMPTY, '\0', DEFEMPTY, NULL },
  131.   { MSG_OUTFIT_SETMARGIN, 0, '\0', DEFFLAGS, "M" },
  132.   { MSG_OUTFIT_4COLORSCREEN, 0, '\0', DEFFLAGS|MENUTOGGLE|CHECKIT, NULL },
  133.   { -1, SPECIAL_EMPTY, '\0', DEFEMPTY, NULL },
  134.   { MSG_OUTFIT_UNIT, SPECIAL_HAS_SUB, '\0', DEFSUBFLAGS, NULL },
  135.   { MSG_OUTFIT_COLOR, 0, '\0', DEFFLAGS, NULL },
  136.   { MSG_OUTFIT_CLONEWBCOLOR, 0, '\0', DEFFLAGS, NULL },
  137.   { MSG_OUTFIT_SCREENPREFS, 0, 'X', DEFFLAGS|COMMSEQ, NULL },
  138.  };
  139.  
  140. static struct MenuLayout OutfitUnitMenu[] = {
  141.   { MSG_OUTFIT_UNIT_INCH, SPECIAL_IS_SUB, '\0', DEFFLAGS|MENUTOGGLE|CHECKIT, NULL },
  142.   { MSG_OUTFIT_UNIT_CM, SPECIAL_IS_SUB, '\0', DEFFLAGS|MENUTOGGLE|CHECKIT, NULL },
  143.   { MSG_OUTFIT_UNIT_PT, SPECIAL_IS_SUB, '\0', DEFFLAGS|MENUTOGGLE|CHECKIT, NULL },
  144.  };
  145.  
  146. static struct MenuLayout MoveMenu[] = {
  147.   { MSG_MOVE_SEARCH, 0, '\0', DEFFLAGS, "s" },
  148.   { -1, SPECIAL_EMPTY, '\0', DEFEMPTY, NULL },
  149.   { MSG_MOVE_PREVPAGE, 0, '\0', DEFFLAGS, "-|BACKSP" },
  150.   { MSG_MOVE_NEXTPAGE, 0, '\0', DEFFLAGS, "+|RET|ENTER" },
  151.   { MSG_MOVE_FIRSTPAGE, 0, '\0', DEFFLAGS, "SHIFT -|BACKSP" },
  152.   { MSG_MOVE_LASTPAGE, 0, '\0', DEFFLAGS, "SHIFT +|RET|ENTER" },
  153.   { -1, SPECIAL_EMPTY, '\0', DEFEMPTY, NULL },
  154.   { MSG_MOVE_PAGECOUNTER, 0, '\0', ITEMTEXT|HIGHNONE, NULL },
  155.   { MSG_MOVE_JUMPTOPAGENUMBER, 0, '\0', DEFFLAGS, "g|." },
  156.   { MSG_MOVE_CLEARPAGECOUNTER, 0, '\0', DEFFLAGS, "c" },
  157.   { -1, SPECIAL_EMPTY, '\0', DEFEMPTY, NULL },
  158.   { MSG_MOVE_USEPHY, 0, '\0', ITEMTEXT|HIGHNONE, NULL },
  159.   { MSG_MOVE_USEORDERDVI, 0, '\0', DEFFLAGS|MENUTOGGLE|CHECKIT, "y" },
  160.   { MSG_MOVE_USEPHYPREVPAGE, 0, '\0', DEFFLAGS, "CTRL -|BACKSP" },
  161.   { MSG_MOVE_USEPHYNEXTPAGE, 0, '\0', DEFFLAGS, "CTRL +|RET|ENTER" },
  162.   { MSG_MOVE_USEPHYFIRSTPAGE, 0, '\0', DEFFLAGS, "CTRL SHIFT -|BACKSP" },
  163.   { MSG_MOVE_USEPHYLASTPAGE, 0, '\0', DEFFLAGS, "CTRL SHIFT +|RET|ENTER" },
  164.  };
  165.  
  166.  
  167. #define MEN_1_ENTRIES    (sizeof(ProjectMenu) / sizeof(struct MenuLayout))
  168. #define MEN_2_ENTRIES    (sizeof(OutfitMenu) / sizeof(struct MenuLayout))
  169. #define MEN_3_ENTRIES    (sizeof(MoveMenu) / sizeof(struct MenuLayout))
  170. #define MEN_4_ENTRIES    11    /* maximum; not sure */
  171.  
  172.