home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 10 / Fresh_Fish_10_2352.bin / useful / util / edit / mg / src.lzh / amiga / amiga_maps.h next >
C/C++ Source or Header  |  1990-05-23  |  5KB  |  165 lines

  1. /*
  2.  * Name:    MG 2a keymap.c setup for Amiga-specific function keys.
  3.  * Created:    14-May-1988 Mic Kaczmarczik (mic@emx.utexas.edu) Last edit:
  4.  * 14-May-1988 Mic Kaczmarczik
  5.  * 
  6.  * One big table for coding convenience, because the number of different
  7.  * compilation possibilities makes setting up data structures kind of tricky.
  8.  * Once again for convenience, the file is #included into keymap.c instead of
  9.  * being linked.  I tried to minimize the changes to keymap.c, while making
  10.  * it possible to have the Amiga function/arrow keys in dired mode as well as
  11.  * fundamental mode.  In the future, we might want to rebind some of the
  12.  * function keys in dired mode, but for right now they do the same thing as
  13.  * in fundamental mode.
  14.  */
  15.  
  16. /* Carefully include anything we may have missed */
  17. #ifndef    FKEYS
  18. #include "fkeys.h"
  19. #endif
  20. #ifndef    BROWSER
  21. #include "browser.h"
  22. #endif
  23. #ifndef    MOUSE
  24. #include "mouse.h"
  25. #endif
  26. #ifndef MENU
  27. #include "menu.h"
  28. #endif
  29. #ifndef DO_ICONIFY
  30. #include "do_iconify.h"
  31. #endif
  32.  
  33. static struct function amiga_keys[] = {
  34. #ifdef    FKEYS
  35.     {backline, F_CFUNCT},    /* Up            (0x100)     */
  36.     {forwline, F_CFUNCT},    /* Down                 */
  37.     {backchar, F_CFUNCT},    /* Left                 */
  38.     {forwchar, F_CFUNCT},    /* Right             */
  39.     {gotobop, F_CFUNCT},    /* Shift-Up             */
  40.     {gotoeop, F_CFUNCT},    /* Shift-Down             */
  41.     {backword, F_CFUNCT},    /* Shift-Left             */
  42.     {forwword, F_CFUNCT},    /* Shift-Right        (0x107)     */
  43. #else
  44.     /* 8 unbound keys */
  45.     {rescan, F_CFUNCT},
  46.     {rescan, F_CFUNCT},
  47.     {rescan, F_CFUNCT},
  48.     {rescan, F_CFUNCT},
  49.     {rescan, F_CFUNCT},
  50.     {rescan, F_CFUNCT},
  51.     {rescan, F_CFUNCT},
  52.     {rescan, F_CFUNCT},
  53. #endif
  54.  
  55. #ifdef    FKEYS
  56.     {filevisit, F_CFUNCT},    /* F1            (0x108)     */
  57.     {filesave, F_CFUNCT},    /* F2                 */
  58.     {forwpage, F_CFUNCT},    /* F3                 */
  59.     {enlargewind, F_CFUNCT},/* F4                 */
  60.     {fillpara, F_CFUNCT},    /* F5                 */
  61.     {splitwind, F_CFUNCT},    /* F6                 */
  62.     {twiddle, F_CFUNCT},    /* F7                 */
  63.     {definemacro, F_CFUNCT},/* F8                 */
  64.     {executemacro, F_CFUNCT},    /* F9                 */
  65.     {listbuffers, F_CFUNCT},/* F10                 */
  66.     {poptofile, F_CFUNCT},    /* Shift-F1        (0x112)     */
  67.     {filewrite, F_CFUNCT},    /* Shift-F2             */
  68.     {backpage, F_CFUNCT},    /* Shift-F3             */
  69.     {shrinkwind, F_CFUNCT},    /* Shift-F4             */
  70.     {queryrepl, F_CFUNCT},    /* Shift-F5             */
  71.     {onlywind, F_CFUNCT},    /* Shift-F6             */
  72.     {justone, F_CFUNCT},    /* Shift-F7             */
  73.     {finishmacro, F_CFUNCT},/* Shift-F8             */
  74.     {wallchart, F_CFUNCT},    /* Shift-F9             */
  75.     {quit, F_CFUNCT},    /* Shift-F10        (0x11B)     */
  76. #else
  77.     {rescan, F_CFUNCT},
  78.     {rescan, F_CFUNCT},
  79.     {rescan, F_CFUNCT},
  80.     {rescan, F_CFUNCT},
  81.     {rescan, F_CFUNCT},
  82.     {rescan, F_CFUNCT},
  83.     {rescan, F_CFUNCT},
  84.     {rescan, F_CFUNCT},
  85.     {rescan, F_CFUNCT},
  86.     {rescan, F_CFUNCT},
  87.     {rescan, F_CFUNCT},
  88.     {rescan, F_CFUNCT},
  89.     {rescan, F_CFUNCT},
  90.     {rescan, F_CFUNCT},
  91.     {rescan, F_CFUNCT},
  92.     {rescan, F_CFUNCT},
  93.     {rescan, F_CFUNCT},
  94.     {rescan, F_CFUNCT},
  95.     {rescan, F_CFUNCT},
  96.     {rescan, F_CFUNCT},
  97. #endif
  98.  
  99. #ifdef    FKEYS
  100.     {desckey, F_CFUNCT},    /* Help            (0x11C)     */
  101. #else
  102.     {rescan, F_CFUNCT},
  103. #endif
  104.  
  105. #ifdef    DO_MENU
  106.     {amigamenu, F_CFUNCT},    /* Menu selction    (0x11D)     */
  107. #else
  108.     {rescan, F_CFUNCT},    /* Menu selection    (0x11D)     */
  109. #endif
  110.     {refresh, F_CFUNCT},    /* Resize window    (0x11E)     */
  111.     {rescan, F_CFUNCT},    /* used to be Mouse         */
  112.  
  113. #ifdef    MOUSE
  114.     {amigamouse, F_CFUNCT},    /* Mouse        (0x120)     */
  115.     {mforwdel, F_CFUNCT},    /* Ctrl-Mouse             */
  116.     {mreposition, F_CFUNCT},/* Shift-Mouse             */
  117.     {mdelwhite, F_CFUNCT},    /* Shift-Ctrl-Mouse         */
  118.     {mdelfword, F_CFUNCT},    /* Meta-Mouse             */
  119.     {mkillregion, F_CFUNCT},/* Meta-Ctrl-Mouse         */
  120.     {mkillline, F_CFUNCT},    /* Meta-Shift-Mouse         */
  121.     {myank, F_CFUNCT},    /* Meta-Shift-Ctrl-Mouse     */
  122.     {mforwpage, F_CFUNCT},    /* Mode-Mouse        (0x128)     */
  123.     {mgotobob, F_CFUNCT},    /* Ctrl-Mode-Mouse         */
  124.     {mbackpage, F_CFUNCT},    /* Shift-Mode-Mouse         */
  125.     {mgotoeob, F_CFUNCT},    /* Shift-Ctrl-Mode-Mouse     */
  126.     {msplitwind, F_CFUNCT},    /* Meta-Mode-Mouse         */
  127.     {menlargewind, F_CFUNCT},    /* Meta-Ctrl-Mode-Mouse         */
  128.     {mdelwind, F_CFUNCT},    /* Meta-Shift-Mode-Mouse     */
  129.     {mshrinkwind, F_CFUNCT},/* Meta-Shift-Ctrl-Mode-Mouse     */
  130. #ifdef    DO_ICONIFY
  131.     {tticon, F_CFUNCT},    /* Echo-Mouse        (0x130)     */
  132. #else
  133.     {usebuffer, F_CFUNCT},    /* Echo-Mouse        (0x130)     */
  134. #endif
  135.     {spawncli, F_CFUNCT},    /* Ctrl-Echo-Mouse         */
  136.     {killbuffer, F_CFUNCT},    /* Shift-Echo-Mouse         */
  137.     {quit, F_CFUNCT},    /* Shift-Ctrl-Echo-Mouse     */
  138.     {desckey, F_CFUNCT},    /* Meta-Echo-Mouse         */
  139.     {listbuffers, F_CFUNCT},/* Meta-Ctrl-Echo-Mouse         */
  140.     {wallchart, F_CFUNCT},    /* Meta-Shift-Echo-Mouse     */
  141.     {togglewindow, F_CFUNCT},    /* Meta-Shift-Ctrl-Echo-Mouse     */
  142. #endif
  143. };
  144.  
  145.  
  146. /*
  147.  * Define extra maps for fundamental mode.  Have to provide the number of
  148.  * extra map segments because it's used by the KEYMAPE() macro that builds
  149.  * keymaps.  The keymap setup, while compact, is pretty complex...
  150.  */
  151.  
  152. #define    NFUND_XMAPS    1
  153.  
  154. #ifdef    MOUSE
  155. #define    FUND_XMAPS    {KUP,    KEASCMOUSE,    amiga_keys}
  156. #else
  157. #define    FUND_XMAPS    {KUP,    KSF10,        amiga_keys}
  158. #endif
  159.  
  160. /*
  161.  * Extra map segments for dired mode -- just use fundamental mode segments
  162.  */
  163. #define    NDIRED_XMAPS    NFUND_XMAPS
  164. #define    DIRED_XMAPS    FUND_XMAPS
  165.