home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 4 / FreshFish_May-June1994.bin / bbs / cbm / nduk-v39.lha / V39 / include / intuition / pointerclass.h < prev    next >
C/C++ Source or Header  |  1992-09-24  |  4KB  |  117 lines

  1. #ifndef INTUITION_POINTERCLASS_H
  2. #define INTUITION_POINTERCLASS_H
  3. /*
  4. **  $VER: pointerclass.h 39.4 (22.06.92)
  5. **  Includes Release 39.108
  6. **
  7. **  'boopsi' pointer class interface
  8. **
  9. **  (C) Copyright 1992 Commodore-Amiga, Inc.
  10. **        All Rights Reserved
  11. */
  12.  
  13. #ifndef EXEC_TYPES_H
  14. #include <exec/types.h>
  15. #endif
  16.  
  17. #ifndef INTUITION_INTUITION_H
  18. #include <intuition/intuition.h>
  19. #endif
  20.  
  21. #ifndef UTILITY_TAGITEM_H
  22. #include <utility/tagitem.h>
  23. #endif
  24.  
  25. /* The following tags are recognized at NewObject() time by
  26.  * pointerclass:
  27.  *
  28.  * POINTERA_BitMap (struct BitMap *) - Pointer to bitmap to
  29.  *    get pointer imagery from.  Bitplane data need not be
  30.  *    in chip RAM.
  31.  * POINTERA_XOffset (LONG) - X-offset of the pointer hotspot.
  32.  * POINTERA_YOffset (LONG) - Y-offset of the pointer hotspot.
  33.  * POINTERA_WordWidth (ULONG) - designed width of the pointer in words
  34.  * POINTERA_XResolution (ULONG) - one of the POINTERXRESN_ flags below
  35.  * POINTERA_YResolution (ULONG) - one of the POINTERYRESN_ flags below
  36.  *
  37.  */
  38.  
  39. #define POINTERA_Dummy    (TAG_USER + 0x39000)
  40.  
  41. #define POINTERA_BitMap        (POINTERA_Dummy + 0x01)
  42. #define POINTERA_XOffset    (POINTERA_Dummy + 0x02)
  43. #define POINTERA_YOffset    (POINTERA_Dummy + 0x03)
  44. #define POINTERA_WordWidth    (POINTERA_Dummy + 0x04)
  45. #define POINTERA_XResolution    (POINTERA_Dummy + 0x05)
  46. #define POINTERA_YResolution    (POINTERA_Dummy + 0x06)
  47.  
  48. /* These are the choices for the POINTERA_XResolution attribute which
  49.  * will determine what resolution pixels are used for this pointer.
  50.  *
  51.  * POINTERXRESN_DEFAULT (ECS-compatible pointer width)
  52.  *    = 70 ns if SUPERHIRES-type mode, 140 ns if not
  53.  *
  54.  * POINTERXRESN_SCREENRES
  55.  *    = Same as pixel speed of screen
  56.  *
  57.  * POINTERXRESN_LORES (pointer always in lores-like pixels)
  58.  *    = 140 ns in 15kHz modes, 70 ns in 31kHz modes
  59.  *
  60.  * POINTERXRESN_HIRES (pointer always in hires-like pixels)
  61.  *    = 70 ns in 15kHz modes, 35 ns in 31kHz modes
  62.  *
  63.  * POINTERXRESN_140NS (pointer always in 140 ns pixels)
  64.  *    = 140 ns always
  65.  *
  66.  * POINTERXRESN_70NS (pointer always in 70 ns pixels)
  67.  *    = 70 ns always
  68.  *
  69.  * POINTERXRESN_35NS (pointer always in 35 ns pixels)
  70.  *    = 35 ns always
  71.  */
  72.  
  73. #define POINTERXRESN_DEFAULT    0
  74. #define POINTERXRESN_140NS    1
  75. #define POINTERXRESN_70NS    2
  76. #define POINTERXRESN_35NS    3
  77.  
  78. #define POINTERXRESN_SCREENRES    4
  79. #define POINTERXRESN_LORES    5
  80. #define POINTERXRESN_HIRES    6
  81.  
  82. /* These are the choices for the POINTERA_YResolution attribute which
  83.  * will determine what vertical resolution is used for this pointer.
  84.  *
  85.  * POINTERYRESN_DEFAULT
  86.  *    = In 15 kHz modes, the pointer resolution will be the same
  87.  *      as a non-interlaced screen.  In 31 kHz modes, the pointer
  88.  *      will be doubled vertically.  This means there will be about
  89.  *      200-256 pointer lines per screen.
  90.  *
  91.  * POINTERYRESN_HIGH
  92.  * POINTERYRESN_HIGHASPECT
  93.  *    = Where the hardware/software supports it, the pointer resolution
  94.  *      will be high.  This means there will be about 400-480 pointer
  95.  *      lines per screen.  POINTERYRESN_HIGHASPECT also means that
  96.  *      when the pointer comes out double-height due to hardware/software
  97.  *      restrictions, its width would be doubled as well, if possible
  98.  *      (to preserve aspect).
  99.  *
  100.  * POINTERYRESN_SCREENRES
  101.  * POINTERYRESN_SCREENRESASPECT
  102.  *    = Will attempt to match the vertical resolution of the pointer
  103.  *      to the screen's vertical resolution.    POINTERYRESN_HIGHASPECT also
  104.  *      means that when the pointer comes out double-height due to
  105.  *      hardware/software restrictions, its width would be doubled as well,
  106.  *      if possible (to preserve aspect).
  107.  *
  108.  */
  109.  
  110. #define POINTERYRESN_DEFAULT        0
  111. #define POINTERYRESN_HIGH        2
  112. #define POINTERYRESN_HIGHASPECT        3
  113. #define POINTERYRESN_SCREENRES        4
  114. #define POINTERYRESN_SCREENRESASPECT    5
  115.  
  116. #endif
  117.