home *** CD-ROM | disk | FTP | other *** search
/ Carousel / CAROUSEL.cdr / mactosh / hc / xcmd_pos.sit / QuicKeys.h < prev    next >
Text File  |  1987-10-14  |  4KB  |  149 lines

  1. /*
  2.   * QuicKeys.h :    Types and defines for interacting with QuicKeys internals. This information is based
  3.   *                on Chapter 8 of the QuicKeys manual. Typed in by Dewi Williams. Delphi: DEWI, who is
  4.   *                responsible for any typos here!
  5.   *
  6.   *                The QuicKeys keyboard enhancer is a product of CE Software, 801 73rd Street,
  7.   *                Des Moines, Iowa 50312. (515) 224-1995.
  8.   */
  9.  
  10.  
  11. /* Defines */
  12.  
  13. /* QuicKey command types (for the QKtype field of the key record). */
  14. #define    QK_UNUSED    0                    /* Empty key record */
  15. #define    QK_FILE        1
  16. #define    QK_TEXT        2
  17. #define    QK_MENU        3
  18. #define    QK_DA        4
  19. #define    QK_OTHER        5
  20. #define    QK_ALIAS        6
  21. #define    QK_CLICK        7
  22. #define    QK_SEQUENCE    8
  23. #define    QK_BUTTON    9
  24.  
  25. /* QuicKey "Other" command types. */
  26. #define    QKO_LINEUP    0
  27. #define    QKO_LINEDN    1
  28. #define    QKO_PAGEUP    2
  29. #define    QKO_PAGEDN    3
  30. #define    QKO_HOME    4
  31. #define    QKO_END        5
  32. #define    QKO_COLLEFT    6
  33. #define    QKO_COLRIGHT    7
  34. #define    QKO_PGLEFT    8
  35. #define    QKO_PGRIGHT    9
  36. #define    QKO_CLWIND    10
  37. #define    QKO_ZMWIND    11
  38. #define    QKO_TRANSFER     12
  39. #define    QKO_SHUTDN    13
  40. #define    QKO_RESTART    14
  41. #define    QKO_SELRWIND    16
  42. #define    QKO_SEL2WIND    17
  43. #define    QKO_QUOTES    18
  44. #define    QKO_DQUOTES    19
  45. #define    QKO_QUICREF    20
  46. #define    QKO_TOGGLE    21
  47. #define    QKO_READ    22
  48. #define    QKO_DATE1    23
  49. #define    QKO_DATE2    24
  50. #define    QKO_DATE3    25
  51. #define    QKO_DATE4    26
  52. #define    QKO_DATE5    27
  53. #define    QKO_DATE6    28
  54. #define    QKO_DATE7    29
  55. #define    QKO_DATE8    30
  56. #define    QKO_TIME1    32
  57. #define    QKO_TIME2    34
  58. #define    QKO_FKBASE    101            /* Base for FKEYs. Add ID value on to this. */
  59.  
  60. #define    N_QCKEYS        100            /* Number of entries in the key record arrays. */
  61.  
  62. /* Types */
  63.  
  64. /*
  65.   * Format of the key record within QuicKeys' system heap block.
  66.   */
  67.  
  68. typedef struct {
  69.     unsigned    key;                    /* Keycode and ascii value as returned by GetNextEvent */
  70.     unsigned    modifiers;                /* Modifiers as returned by GetNextEvent, masked */
  71.     int        QKtype;                /* Variant */
  72.     union {
  73.         struct {                    /* QuicKeys File */
  74.             char        filename[32];
  75.             char        volname[32];
  76.             long        dirID;
  77.             ResType    fileType;
  78.         } QKFile;
  79.     
  80.         struct {                    /* QuicKeys text to type */
  81.             char        text[72];
  82.         } QuicText;
  83.  
  84.         struct {                    /* QuicKeys menu */
  85.             char        menu[72];
  86.         } QuicMenu;
  87.  
  88.         struct {                    /* QuicKeys DA */
  89.             char        da[72];
  90.         } QuicDA;
  91.  
  92.         struct {                    /* QuicKeys Other  (e.g. mousies, special, datestamps) */
  93.             int        cmd;            /* See the defines above starting with "QKO_" */
  94.         } QuicOther;
  95.  
  96.         struct {                    /* QuicKeys Alias */
  97.             unsigned    key;            /* Replacement keycode and ascii value */
  98.             unsigned    modifiers;        /* Replacement modifiers */
  99.         } QuicAlias;
  100.  
  101.         struct {                    /* QuicKeys Click */
  102.             char        title[28];        /* Title of the click */
  103.             char        wtitle[28];    /* Title of the window to look for */
  104.             int        nclicks;        /* Number of clicks */
  105.             int        specific;        /* Look for specific window. Really boolean + pad. */
  106.             int        mUpFormat;    /* Mouse up format: Absolute/relative/window etc. */
  107.             Point        mouseUp;
  108.             int        mDownFormat;    /* Mouse down format: Absolute/relative/window etc. */
  109.             Point        mouseDown;
  110.         } QuicClick;
  111.  
  112.         struct {                    /* QuicKeys Sequence */
  113.             char        title[12];        /* QuicKeys sequence title */
  114.             int        step[30];        /* Individual steps of sequence as a keycode/modifiers */
  115.         } QuicSequence;
  116.         
  117.         struct {
  118.             char        name[72];        /* Name of the button */
  119.         } QuicButton;
  120.     } u;
  121. } KeyRecord;
  122.  
  123. typedef struct {                        /* QuicKeys INIT system heap  block */
  124.     long            magic;                /* Hex value of a89f1234 */
  125.     long            signature;                /* CE Software's signature of 'CELN' */
  126.     long            version;                /* Version number of 0. */
  127.     ProcPtr        SetLaunch;            /* Vector */
  128.     long            unknown1;            /* Undocumented */
  129.     ProcPtr        FindAnApp;            /* Vector */
  130.     Byte            unknown2[16];            /* Undocumented */
  131.     ProcPtr        PlotAnItem;            /* Vector */
  132.     long            unknown3;            /* Undocumented */
  133.     KeyRecord    universal[N_QCKEYS];    /* Universal keys */
  134.     KeyRecord    application[N_QCKEYS];    /* Program-specific keys */
  135. } QuicInit;
  136.  
  137. /*
  138.   * And the block together with its memory manager header.
  139.   */
  140.  
  141. typedef struct {                /* QuicInit and its block header */
  142.     Byte        header[8];        /* Memory manager block header */
  143.     QuicInit    quic;
  144. } QuicInitBlock;
  145.  
  146. /* Prototypes */
  147. QuicInitBlock    *FindSysHeap(void);
  148. KeyRecord    *FindKeyRecord(QuicInitBlock *qb, StringPtr name, Boolean progKeys);
  149.