home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mod201j.zip / modula2.exe / os2api / gpiregio.def < prev    next >
Text File  |  1994-05-03  |  6KB  |  183 lines

  1. DEFINITION MODULE GPIREGIONS;
  2.  
  3. (************************************************************************
  4.   OS/2 2.0 interface for Presentation Manager
  5.            GPI Regions and Clipping with Regions.
  6.  
  7.   Copyright (c) 1992 by Juergen Neuhoff
  8. *************************************************************************)
  9.  
  10. (*$XL+       Modula-2 language extensions: '_' allowed for symbol names *)
  11. (*$CDECL+    C-style procedures                                         *)
  12. (*$A         default alignment for record fields                        *)
  13.  
  14. FROM   OS2DEF  IMPORT TYPEPREFIX, HPS, HRGN, RECTL, PRECTL, POINTL;
  15. FROM   GPIDEF  IMPORT SIZEL;
  16.  
  17. CONST (* options for GpiCombineRegion *)
  18.   CRGN_OR                       = 1;
  19.   CRGN_COPY                     = 2;
  20.   CRGN_XOR                      = 4;
  21.   CRGN_AND                      = 6;
  22.   CRGN_DIFF                     = 7;
  23.  
  24. CONST (* usDirection of returned region data for GpiQueryRegionRects *)
  25.   RECTDIR_LFRT_TOPBOT           = 1;
  26.   RECTDIR_RTLF_TOPBOT           = 2;
  27.   RECTDIR_LFRT_BOTTOP           = 3;
  28.   RECTDIR_RTLF_BOTTOP           = 4;
  29.  
  30. TYPE (* control data for GpiQueryRegionRects *)
  31.   RGNRECT                       = RECORD (* rgnrc *)
  32.     CASE                          : TYPEPREFIX OF
  33.     | TRUE                        :
  34.       ircStart                    : LONGCARD;
  35.       crc                         : LONGCARD;
  36.       crcReturned                 : LONGCARD;
  37.       ulDirection                 : LONGCARD;
  38.     | FALSE                       :
  39.       RecStart                    : LONGCARD;
  40.       RecMaxCount                 : LONGCARD;
  41.       RecReturned                 : LONGCARD;
  42.       Direction                   : LONGCARD;
  43.     END;                          END;
  44.   PRGNRECT                      = POINTER TO RGNRECT;
  45.  
  46. CONST (* return code to indicate type of region for GpiCombineRegion and others *)
  47.   RGN_ERROR                     = 0;
  48.   RGN_NULL                      = 1;
  49.   RGN_RECT                      = 2;
  50.   RGN_COMPLEX                   = 3;
  51.  
  52. CONST (* return codes for GpiPtInRegion *)
  53.   PRGN_ERROR                    = 0;
  54.   PRGN_OUTSIDE                  = 1;
  55.   PRGN_INSIDE                   = 2;
  56.  
  57. CONST (* return codes for GpiRectInRegion *)
  58.   RRGN_ERROR                    = 0;
  59.   RRGN_OUTSIDE                  = 1;
  60.   RRGN_PARTIAL                  = 2;
  61.   RRGN_INSIDE                   = 3;
  62.  
  63. CONST (* return codes for GpiEqualRegion *)
  64.   EQRGN_ERROR                   = 0;
  65.   EQRGN_NOTEQUAL                = 1;
  66.   EQRGN_EQUAL                   = 2;
  67.  
  68. CONST (* error return code for GpiSetRegion *)
  69.   HRGN_ERROR                    = HRGN( -1 );
  70.  
  71.  
  72. (*** main region functions *)
  73.  
  74. PROCEDURE GpiCombineRegion
  75. ( PresSpaceHandle               : HPS;
  76.   DestRegHandle                 : HRGN;
  77.   Source1RegHandle              : HRGN;
  78.   Source2RegHandle              : HRGN;
  79.   Mode                          : LONGINT
  80. )                               : LONGINT;
  81.  
  82. PROCEDURE GpiCreateRegion
  83. ( PresSpaceHandle               : HPS;
  84.   Count                         : LONGINT;
  85.   VAR Rectangles                : ARRAY OF RECTL
  86. )                               : HRGN;
  87.  
  88. PROCEDURE GpiDestroyRegion
  89. ( PresSpaceHandle               : HPS;
  90.   RegHandle                     : HRGN
  91. )                               : BOOLEAN;
  92.  
  93. PROCEDURE GpiEqualRegion
  94. ( PresSpaceHandle               : HPS;
  95.   Src1RegHandle                 : HRGN;
  96.   Src2Reghandle                 : HRGN
  97. )                               : LONGINT;
  98.  
  99. PROCEDURE GpiOffsetRegion
  100. ( PresSpaceHandle               : HPS;
  101.   RegHandle                     : HRGN;
  102.   VAR Offset                    : POINTL
  103. )                               : BOOLEAN;
  104.  
  105. PROCEDURE GpiPaintRegion
  106. ( PresSpaceHandle               : HPS;
  107.   RegHandle                     : HRGN
  108. )                               : LONGINT;
  109.  
  110. PROCEDURE GpiFrameRegion
  111. ( PresSpaceHandle               : HPS;
  112.   RegHandle                     : HRGN;
  113.   VAR Thickness                 : SIZEL
  114. )                               : LONGINT;
  115.  
  116. PROCEDURE GpiPtInRegion
  117. ( PresSpaceHandle               : HPS;
  118.   RegHandle                     : HRGN;
  119.   VAR Point                     : POINTL
  120. )                               : LONGINT;
  121.  
  122. PROCEDURE GpiQueryRegionBox
  123. ( PresSpaceHandle               : HPS;
  124.   RegHandle                     : HRGN;
  125.   VAR Bound                     : RECTL
  126. )                               : LONGINT;
  127.  
  128. PROCEDURE GpiQueryRegionRects
  129. ( PresSpaceHandle               : HPS;
  130.   RegHandle                     : HRGN;
  131.   Bound                         : PRECTL;
  132.   VAR Control                   : RGNRECT;
  133.   VAR Rects                     : ARRAY OF RECTL
  134. )                               : BOOLEAN;
  135.  
  136. PROCEDURE GpiRectInRegion
  137. ( PresSpaceHandle               : HPS;
  138.   RegHandle                     : HRGN;
  139.   VAR Rect                      : RECTL
  140. )                               : LONGINT;
  141.  
  142. PROCEDURE GpiSetRegion
  143. ( PresSpaceHandle               : HPS;
  144.   RegHandle                     : HRGN;
  145.   Count                         : LONGINT;
  146.   VAR Rectangles                : ARRAY OF RECTL
  147. )                               : BOOLEAN;
  148.  
  149.  
  150. (*** clip region functions *)
  151.  
  152. PROCEDURE GpiSetClipRegion
  153. ( PresSpaceHandle               : HPS;
  154.   RegHandle                     : HRGN;
  155.   VAR OldRegHandle              : HRGN
  156. )                               : LONGINT;
  157.  
  158. PROCEDURE GpiQueryClipRegion
  159. ( PresSpaceHandle               : HPS
  160. )                               : HRGN;
  161.  
  162. PROCEDURE GpiQueryClipBox
  163. ( PresSpaceHandle               : HPS;
  164.   VAR Bound                     : RECTL
  165. )                               : LONGINT;
  166.  
  167. PROCEDURE GpiExcludeClipRectangle
  168. ( PresSpaceHandle               : HPS;
  169.   VAR Rectangle                 : RECTL
  170. )                               : LONGINT;
  171.  
  172. PROCEDURE GpiIntersectClipRectangle
  173. ( PresSpaceHandle               : HPS;
  174.   VAR Rectangle                 : RECTL
  175. )                               : LONGINT;
  176.  
  177. PROCEDURE GpiOffsetClipRegion
  178. ( PresSpaceHandle               : HPS;
  179.   VAR Point                     : POINTL
  180. )                               : LONGINT;
  181.  
  182. END GPIREGIONS.
  183.