home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / bpos2i.zip / MOUCALLS.PAS < prev    next >
Pascal/Delphi Source File  |  1994-05-31  |  11KB  |  328 lines

  1. (* ====================================================== *)
  2. (*                       MOUCALLS.PAS                     *)
  3. (*     Implementation of the functions of MOUCALLS.DLL    *)
  4. (*           Translation to Pascal by jb / toolbox mag    *)
  5. (* =====================================================  *)
  6. {$IFNDEF OS2}
  7.   Error: Wrong target/Compiler not patched
  8. {$ENDIF}
  9.  
  10. UNIT MouCalls;
  11.  
  12. INTERFACE
  13.  
  14. USES
  15.   Os2Def;
  16.  
  17. CONST
  18.   MR_MOUGETNUMBUTTONS    = $00000001;
  19.   MR_MOUGETNUMMICKEYS    = $00000002;
  20.   MR_MOUGETDEVSTATUS     = $00000004;
  21.   MR_MOUGETNUMQUEEL      = $00000008;
  22.   MR_MOUREADEVENTQUE     = $00000010;
  23.   MR_MOUGETSCALEFACT     = $00000020;
  24.   MR_MOUGETEVENTMASK     = $00000040;
  25.   MR_MOUSETSCALEFACT     = $00000080;
  26.   MR_MOUSETEVENTMASK     = $00000100;
  27.   MR_MOUOPEN             = $00000800;
  28.   MR_MOUCLOSE            = $00001000;
  29.   MR_MOUGETPTRSHAPE      = $00002000;
  30.   MR_MOUSETPTRSHAPE      = $00004000;
  31.   MR_MOUDRAWPTR          = $00008000;
  32.   MR_MOUREMOVEPTR        = $00010000;
  33.   MR_MOUGETPTRPOS        = $00020000;
  34.   MR_MOUSETPTRPOS        = $00040000;
  35.   MR_MOUINITREAL         = $00080000;
  36.   MR_MOUSETDEVSTATUS     = $00100000;
  37.  
  38.   MHK_BUTTON1            = 1;
  39.   MHK_BUTTON2            = 2;
  40.   MHK_BUTTON3            = 4;
  41.  
  42.   MOUSE_QUEUEBUSY        = $0001;
  43.   MOUSE_BLOCKREAD        = $0002;
  44.   MOUSE_FLUSH            = $0004;
  45.   MOUSE_UNSUPPORTED_MODE = $0008;
  46.   MOUSE_DISABLED         = $0100;
  47.   MOUSE_MICKEYS          = $0200;
  48.  
  49.   MOU_NODRAW             = $0001;
  50.   MOU_DRAW               = $0000;
  51.   MOU_MICKEYS            = $0002;
  52.   MOU_PELS               = $0000;
  53.  
  54. TYPE
  55.   MouQueInfo = RECORD
  56.     cEvents     : WORD;
  57.     cmaxEvents  : WORD;
  58.   END;
  59.  
  60.   PtrLoc = RECORD
  61.     row   : WORD;
  62.     col   : WORD;
  63.   END;
  64.  
  65.   PtrShape = RECORD
  66.     cb     : WORD;       (* size in bytes of the bitmasks *)
  67.     col    : WORD;       (* width of the masks            *)
  68.     row    : WORD;       (* height of the masks           *)
  69.     colHot : WORD;       (* x coordinate of hot spot      *)
  70.     rowHot : WORD;       (* y coordinate of hot spot      *)
  71.   END;
  72.  
  73.   ScaleFact = RECORD
  74.     rowScale      : WORD;
  75.     colScale      : WORD;
  76.   END;
  77.  
  78.   MouEventInfo = RECORD
  79.     fs            : WORD;
  80.     time          : LongInt;
  81.     row           : WORD;
  82.     col           : WORD;
  83.   END;
  84.  
  85.   NoPtrRect = RECORD
  86.     row   : WORD;
  87.     col   : WORD;
  88.     cRow  : WORD;
  89.     cCol  : WORD;
  90.   END;
  91.  
  92.  
  93. FUNCTION MouClose(Handle   : WORD) : WORD;
  94. FUNCTION Mou16Close(Handle : WORD) : WORD;
  95.  
  96. FUNCTION MouDeRegister  : WORD;
  97. FUNCTION Mou16DeRegister: WORD;
  98.  
  99. FUNCTION MouDrawPtr(Handle   : WORD) : WORD;
  100. FUNCTION Mou16DrawPtr(Handle : WORD) : WORD;
  101.  
  102. FUNCTION MouFlushQue(Handle   : WORD) : WORD;
  103. FUNCTION Mou16FlushQue(Handle : WORD) : WORD;
  104.  
  105. FUNCTION MouGetDevStatus(  VAR Status : WORD;
  106.                                Handle : WORD) : WORD;
  107. FUNCTION Mou16GetDevStatus(VAR Status : WORD;
  108.                                Handle : WORD) : WORD;
  109.  
  110. TYPE
  111.   MouseEvent = (
  112.     MotionOnly,
  113.     MotionAndButton1,
  114.     Button1,
  115.     MotionAndButton2,
  116.     Button2,
  117.     MotionAndButton3,
  118.     Button3,
  119.     Reserved1,
  120.     Reserved2,
  121.     Reserved3,
  122.     Reserved4,
  123.     Reserved5,
  124.     Reserved6,
  125.     Reserved7,
  126.     Reserved8,
  127.     Reserved9);
  128.  
  129. TYPE
  130.   MouseEventSet = SET OF MouseEvent;
  131.  
  132. FUNCTION MouGetEventMask(  VAR Mask   : WORD;
  133.                                Handle : WORD) : WORD;
  134. FUNCTION Mou16GetEventMask(VAR Mask   : WORD;
  135.                                Handle : WORD) : WORD;
  136.  
  137. FUNCTION MouGetNumButtons(  VAR NumButtons : WORD;
  138.                                 Handle     : WORD) : WORD;
  139. FUNCTION Mou16GetNumButtons(VAR NumButtons : WORD;
  140.                                 Handle     : WORD) : WORD;
  141.  
  142. FUNCTION MouGetNumMickeys(  VAR MickeysPerCentimeter : WORD;
  143.                                 Handle               : WORD
  144.                                                     ): WORD;
  145. FUNCTION Mou16GetNumMickeys(VAR MickeysPerCentimeter : WORD;
  146.                                 Handle               : WORD
  147.                                                    ) : WORD;
  148.  
  149. FUNCTION MouGetNumQueEl(  VAR Status : MouQueInfo;
  150.                               Handle : WORD) : WORD;
  151. FUNCTION Mou16GetNumQueEl(VAR Status : MouQueInfo;
  152.                               Handle : WORD) : WORD;
  153.  
  154. (* Mouse pointer location data structure *)
  155.  
  156. FUNCTION MouGetPtrPos(  VAR Position : PtrLoc;
  157.                             Handle   : WORD) : WORD;
  158. FUNCTION Mou16GetPtrPos(VAR Position : PtrLoc;
  159.                             Handle   : WORD) : WORD;
  160.  
  161. FUNCTION MouGetPtrShape(      Buffer    : Pointer;
  162.                           VAR ShapeInfo : PtrShape;
  163.                               Handle    : WORD) : WORD;
  164. FUNCTION Mou16GetPtrShape(    Buffer    : Pointer;
  165.                           VAR ShapeInfo : PtrShape;
  166.                               Handle    : WORD) : WORD;
  167.  
  168. FUNCTION MouGetScaleFact(  VAR Scale  : ScaleFact;
  169.                                Handle : WORD) : WORD;
  170. FUNCTION Mou16GetScaleFact(VAR Scale  : ScaleFact;
  171.                                Handle : WORD) : WORD;
  172.  
  173. FUNCTION MouOpen(     DrawDeviceName : Pointer;
  174.                    VAR Handle        : WORD) : WORD;
  175. FUNCTION Mou16Open(   DrawDeviceName : Pointer;
  176.                    VAR Handle        : WORD) : WORD;
  177.  
  178. FUNCTION MouReadEventQue(  VAR Event  : MouEventInfo;
  179.                            VAR Wait   : WORD;
  180.                                Handle : WORD) : WORD;
  181. FUNCTION Mou16ReadEventQue(VAR Event  : MouEventInfo;
  182.                            VAR Wait   : WORD;
  183.                                Handle : WORD) : WORD;
  184.  
  185. FUNCTION MouRegister(  aLibrary,
  186.                        EntryPoint : Pointer;
  187.                        Mask       : LongInt) : WORD;
  188. FUNCTION Mou16Register(aLibrary,
  189.                        EntryPoint : Pointer;
  190.                        Mask       : LongInt) : WORD;
  191.  
  192. FUNCTION MouRemovePtr(  Area   : NoPtrRect;
  193.                         Handle : WORD) : WORD;
  194. FUNCTION Mou16RemovePtr(Area   : NoPtrRect;
  195.                         Handle : WORD) : WORD;
  196.  
  197. FUNCTION MouSetDevStatus(  VAR Status : WORD;
  198.                                Handle : WORD) : WORD;
  199. FUNCTION Mou16SetDevStatus(VAR Status : WORD;
  200.                                Handle : WORD) : WORD;
  201.  
  202. FUNCTION MouSetEventMask(  VAR Mask   : WORD;
  203.                                Handle : WORD) : WORD;
  204. FUNCTION Mou16SetEventMask(VAR Mask   : WORD;
  205.                                Handle : WORD) : WORD;
  206.  
  207. FUNCTION MouSetPtrPos(  VAR Pos    : PtrLoc;
  208.                             Handle : WORD) : WORD;
  209. FUNCTION Mou16SetPtrPos(VAR Pos    : PtrLoc;
  210.                             Handle : WORD) : WORD;
  211.  
  212. FUNCTION MouSetPtrShape(  Buffer    : Pointer;
  213.                           ShapeInfo : PtrShape;
  214.                           Handle    : WORD) : WORD;
  215. FUNCTION Mou16SetPtrShape(Buffer    : Pointer;
  216.                           ShapeInfo : PtrShape;
  217.                           Handle    : WORD) : WORD;
  218.  
  219. FUNCTION MouSetScaleFact(  VAR Scale  : ScaleFact;
  220.                                Handle : WORD) : WORD;
  221. FUNCTION Mou16SetScaleFact(VAR Scale  : ScaleFact;
  222.                                Handle : WORD) : WORD;
  223.  
  224. FUNCTION MouInitReal(  a : Pointer) : WORD;
  225. FUNCTION Mou16InitReal(a : Pointer) : WORD;
  226.  
  227. FUNCTION MouSynch(  a : WORD) : WORD;
  228. FUNCTION Mou16Synch(a : WORD) : WORD;
  229.  
  230. IMPLEMENTATION
  231.  
  232.   FUNCTION MouGetPtrShape;     EXTERNAL 'MouCalls' INDEX  1;
  233.   FUNCTION Mou16GetPtrShape;   EXTERNAL 'MouCalls' INDEX  1;
  234.  
  235.   FUNCTION MouSetPtrShape;     EXTERNAL 'MouCalls' INDEX  2;
  236.   FUNCTION Mou16SetPtrShape;   EXTERNAL 'MouCalls' INDEX  2;
  237.  
  238.   FUNCTION MouGetNumMickeys;   EXTERNAL 'MouCalls' INDEX  3;
  239.   FUNCTION Mou16GetNumMickeys; EXTERNAL 'MouCalls' INDEX  3;
  240.  
  241. {                     NOT IMPLEMENTED
  242.   FUNCTION MouGetHotkey;       External 'MouCalls' INDEX  4;
  243.   FUNCTION Mou16GetHotkey;     External 'MouCalls' INDEX  4;
  244. }
  245.  
  246. (* ====================================================== *)
  247.  
  248.   FUNCTION MouGetScaleFact;    EXTERNAL 'MouCalls' INDEX  6;
  249.   FUNCTION Mou16GetScaleFact;  EXTERNAL 'MouCalls' INDEX  6;
  250.  
  251.   FUNCTION MouFlushQue;        EXTERNAL 'MouCalls' INDEX  7;
  252.   FUNCTION Mou16FlushQue;      EXTERNAL 'MouCalls' INDEX  7;
  253.  
  254.   FUNCTION MouGetNumButtons;   EXTERNAL 'MouCalls' INDEX  8;
  255.   FUNCTION Mou16GetNumButtons; EXTERNAL 'MouCalls' INDEX  8;
  256.  
  257.   FUNCTION MouClose;           EXTERNAL 'MouCalls' INDEX  9;
  258.   FUNCTION Mou16Close;         EXTERNAL 'MouCalls' INDEX  9;
  259.  
  260. {                      NOT IMPLEMENTED
  261.   FUNCTION MouSetHotkey;       External 'MouCalls' INDEX 10;
  262.   FUNCTION Mou16SetHotkey;     External 'MouCalls' INDEX 10;
  263. }
  264.   FUNCTION MouSetScaleFact;    EXTERNAL 'MouCalls' INDEX 11;
  265.   FUNCTION Mou16SetScaleFact;  EXTERNAL 'MouCalls' INDEX 11;
  266.  
  267. (* ====================================================== *)
  268.  
  269.   FUNCTION MouGetNumQueEl;     EXTERNAL 'MouCalls' INDEX 13;
  270.   FUNCTION Mou16GetNumQueEl;   EXTERNAL 'MouCalls' INDEX 13;
  271.  
  272.   FUNCTION MouDeRegister;      EXTERNAL 'MouCalls' INDEX 14;
  273.   FUNCTION Mou16DeRegister;    EXTERNAL 'MouCalls' INDEX 14;
  274.  
  275.   FUNCTION MouGetEventMask;    EXTERNAL 'MouCalls' INDEX 15;
  276.   FUNCTION Mou16GetEventMask;  EXTERNAL 'MouCalls' INDEX 15;
  277.  
  278.   FUNCTION MouSetEventMask;    EXTERNAL 'MouCalls' INDEX 16;
  279.   FUNCTION Mou16SetEventMask;  EXTERNAL 'MouCalls' INDEX 16;
  280.  
  281.   FUNCTION MouOpen;            EXTERNAL 'MouCalls' INDEX 17;
  282.   FUNCTION Mou16Open;          EXTERNAL 'MouCalls' INDEX 17;
  283.  
  284.   FUNCTION MouRemovePtr;       EXTERNAL 'MouCalls' INDEX 18;
  285.   FUNCTION Mou16RemovePtr;     EXTERNAL 'MouCalls' INDEX 18;
  286.  
  287.   FUNCTION MouGetPtrPos;       EXTERNAL 'MouCalls' INDEX 19;
  288.   FUNCTION Mou16GetPtrPos;     EXTERNAL 'MouCalls' INDEX 19;
  289.  
  290.   FUNCTION MouReadEventQue;    EXTERNAL 'MouCalls' INDEX 20;
  291.   FUNCTION Mou16ReadEventQue;  EXTERNAL 'MouCalls' INDEX 20;
  292.  
  293.   FUNCTION MouSetPtrPos;       EXTERNAL 'MouCalls' INDEX 21;
  294.   FUNCTION Mou16SetPtrPos;     EXTERNAL 'MouCalls' INDEX 21;
  295.  
  296.   FUNCTION MouGetDevStatus;    EXTERNAL 'MouCalls' INDEX 22;
  297.   FUNCTION Mou16GetDevStatus;  EXTERNAL 'MouCalls' INDEX 22;
  298.  
  299.   FUNCTION MouSynch;           EXTERNAL 'MouCalls' INDEX 23;
  300.   FUNCTION Mou16Synch;         EXTERNAL 'MouCalls' INDEX 23;
  301.  
  302.   FUNCTION MouRegister;        EXTERNAL 'MouCalls' INDEX 24;
  303.   FUNCTION Mou16Register;      EXTERNAL 'MouCalls' INDEX 24;
  304.  
  305.   FUNCTION MouSetDevStatus;    EXTERNAL 'MouCalls' INDEX 25;
  306.   FUNCTION Mou16SetDevStatus;  EXTERNAL 'MouCalls' INDEX 25;
  307.  
  308.   FUNCTION MouDrawPtr;         EXTERNAL 'MouCalls' INDEX 26;
  309.   FUNCTION Mou16DrawPtr;       EXTERNAL 'MouCalls' INDEX 26;
  310.  
  311.   FUNCTION MouInitReal;        EXTERNAL 'MouCalls' INDEX 27;
  312.   FUNCTION Mou16InitReal;      EXTERNAL 'MouCalls' INDEX 27;
  313.  
  314. (* ====================================================== *)
  315.  
  316. {                         NOT IMPLEMENTED:
  317.   FUNCTION MouSetThreshold;    External 'MouCalls' INDEX 29;
  318.   FUNCTION Mou16SetThreshold;  External 'MouCalls' INDEX 29;
  319.  
  320.   FUNCTION MouGetThreshold;    External 'MouCalls' INDEX 30;
  321.   FUNCTION Mou16GetThreshold;  External 'MouCalls' INDEX 30;
  322. }
  323.  
  324. END.
  325.  
  326. (* ====================================================== *)
  327. (*                  Ende von MOUCALLS.PAS                 *)
  328.