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

  1. DEFINITION MODULE GPIPRIMITIVES;
  2.  
  3. (************************************************************************
  4.   OS/2 2.0 interface for Presentation Manager
  5.            GPI Drawing Primitives and Primitive Attributes.
  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. IMPORT SYSTEM;
  15. FROM   OS2DEF  IMPORT TYPEPREFIX, HPS, POINTL, RECTL;
  16. FROM   GPIDEF  IMPORT FIXED, SIZEL;
  17.  
  18. CONST (* default color table indices *)
  19.   CLR_FALSE                     =   -5;
  20.   CLR_TRUE                      =   -4;
  21.   CLR_ERROR                     = -255;
  22.   CLR_DEFAULT                   =   -3;
  23.   CLR_WHITE                     =   -2;
  24.   CLR_BLACK                     =   -1;
  25.   CLR_BACKGROUND                =    0;
  26.   CLR_BLUE                      =    1;
  27.   CLR_RED                       =    2;
  28.   CLR_PINK                      =    3;
  29.   CLR_GREEN                     =    4;
  30.   CLR_CYAN                      =    5;
  31.   CLR_YELLOW                    =    6;
  32.   CLR_NEUTRAL                   =    7;
  33.   CLR_DARKGRAY                  =    8;
  34.   CLR_DARKGREY                  =    8;
  35.   CLR_DARKBLUE                  =    9;
  36.   CLR_DARKRED                   =   10;
  37.   CLR_DARKPINK                  =   11;
  38.   CLR_DARKGREEN                 =   12;
  39.   CLR_DARKCYAN                  =   13;
  40.   CLR_BROWN                     =   14;
  41.   CLR_PALEGRAY                  =   15;
  42.   CLR_PALEGREY                  =   15;
  43.  
  44. CONST (* rgb colors *)
  45.   RGB_ERROR                     = -255;
  46.   RGB_BLACK                     =  00000000H;
  47.   RGB_BLUE                      =  000000FFH;
  48.   RGB_GREEN                     =  0000FF00H;
  49.   RGB_CYAN                      =  0000FFFFH;
  50.   RGB_RED                       =  00FF0000H;
  51.   RGB_PINK                      =  00FF00FFH;
  52.   RGB_YELLOW                    =  00FFFF00H;
  53.   RGB_WHITE                     =  00FFFFFFH;
  54.  
  55. CONST (* control flags used by GpiBeginArea *)
  56.   BA_NOBOUNDARY                 = 0;
  57.   BA_BOUNDARY                   = 0001H;
  58.   BA_ALTERNATE                  = 0;
  59.   BA_WINDING                    = 0002H;
  60.   BA_EXCL                       = 0;
  61.   BA_INCL                       = 8;
  62.  
  63. CONST (* fill options for GpiBox/GpiFullArc *)
  64.   DRO_FILL                      = 1;
  65.   DRO_OUTLINE                   = 2;
  66.   DRO_OUTLINEFILL               = 3;
  67.  
  68. CONST (* basic pattern symbols *)
  69.   PATSYM_ERROR                  = -1;
  70.   PATSYM_DEFAULT                =  0;
  71.   PATSYM_DENSE1                 =  1;
  72.   PATSYM_DENSE2                 =  2;
  73.   PATSYM_DENSE3                 =  3;
  74.   PATSYM_DENSE4                 =  4;
  75.   PATSYM_DENSE5                 =  5;
  76.   PATSYM_DENSE6                 =  6;
  77.   PATSYM_DENSE7                 =  7;
  78.   PATSYM_DENSE8                 =  8;
  79.   PATSYM_VERT                   =  9;
  80.   PATSYM_HORIZ                  = 10;
  81.   PATSYM_DIAG1                  = 11;
  82.   PATSYM_DIAG2                  = 12;
  83.   PATSYM_DIAG3                  = 13;
  84.   PATSYM_DIAG4                  = 14;
  85.   PATSYM_NOSHADE                = 15;
  86.   PATSYM_SOLID                  = 16;
  87.   PATSYM_HALFTONE               = 17;
  88.   PATSYM_HATCH                  = 18;
  89.   PATSYM_DIAGHATCH              = 19;
  90.   PATSYM_BLANK                  = 64;
  91.  
  92. CONST (* lcid values for GpiSet/QueryPattern and others *)
  93.   LCID_ERROR                    = -1;
  94.   LCID_DEFAULT                  =  0;
  95.  
  96. (*** global primitive functions *)
  97.  
  98. PROCEDURE GpiSetColor
  99. ( PresSpaceHandle               : HPS;
  100.   Color                         : LONGINT
  101. )                               : BOOLEAN;
  102.  
  103. PROCEDURE GpiQueryColor
  104. ( PresSpaceHandle               : HPS
  105. )                               : LONGINT;
  106.  
  107.  
  108. (*** line primitive functions *)
  109.  
  110. PROCEDURE GpiBox
  111. ( PresSpaceHandle               : HPS;
  112.   Control                       : LONGINT;
  113.   VAR CornerPoint               : POINTL;
  114.   HRound                        : LONGINT;
  115.   VRound                        : LONGINT
  116. )                               : LONGINT;
  117.  
  118. PROCEDURE GpiMove
  119. ( PresSpaceHandle               : HPS;
  120.   VAR Point                     : POINTL
  121. )                               : BOOLEAN;
  122.  
  123. PROCEDURE GpiLine
  124. ( PresSpaceHandle               : HPS;
  125.   VAR EndPoint                  : POINTL
  126. )                               : LONGINT;
  127.  
  128. PROCEDURE GpiPolyLine
  129. ( PresSpaceHandle               : HPS;
  130.   Count                         : LONGINT;
  131.   VAR Points                    : ARRAY OF POINTL
  132. )                               : LONGINT;
  133.  
  134. PROCEDURE GpiPolyLineDisjoint
  135. ( PresSpaceHandle               : HPS;
  136.   Count                         : LONGINT;
  137.   VAR Points                    : ARRAY OF POINTL
  138. )                               : LONGINT;
  139.  
  140.  
  141. (*** area primitive functions *)
  142.  
  143. PROCEDURE GpiSetPattern
  144. ( PresSpaceHandle               : HPS;
  145.   PatternSymbol                 : LONGINT
  146. )                               : BOOLEAN;
  147.  
  148. PROCEDURE GpiQueryPattern
  149. ( PresSpaceHandle               : HPS
  150. )                               : LONGINT;
  151.  
  152. PROCEDURE GpiBeginArea
  153. ( PresSpaceHandle               : HPS;
  154.   Options                       : LONGCARD
  155. )                               : BOOLEAN;
  156.  
  157. PROCEDURE GpiEndArea
  158. ( PresSpaceHandle               : HPS
  159. )                               : LONGINT;
  160.  
  161. (*** character primitive functions *)
  162.  
  163. PROCEDURE GpiCharString
  164. ( PresSpaceHandle               : HPS;
  165.   Count                         : LONGINT;
  166.   String                        : ARRAY OF CHAR
  167. )                               : LONGINT;
  168.  
  169. PROCEDURE GpiCharStringAt
  170. ( PresSpaceHandle               : HPS;
  171.   VAR Point                     : POINTL;
  172.   Count                         : LONGINT;
  173.   String                        : ARRAY OF CHAR
  174. )                               : LONGINT;
  175.  
  176. CONST (* mode for GpiSetAttrMode *)
  177.   AM_ERROR                      = -1;
  178.   AM_PRESERVE                   =  0;
  179.   AM_NOPRESERVE                 =  1;
  180.  
  181. CONST (* foreground mixes *)
  182.   FM_ERROR                      = -1;
  183.   FM_DEFAULT                    =  0;
  184.   FM_OR                         =  1;
  185.   FM_OVERPAINT                  =  2;
  186.   FM_LEAVEALONE                 =  5;
  187.   FM_XOR                        =  4;
  188.   FM_AND                        =  6;
  189.   FM_SUBTRACT                   =  7;
  190.   FM_MASKSRCNOT                 =  8;
  191.   FM_ZERO                       =  9;
  192.   FM_NOTMERGESRC                = 10;
  193.   FM_NOTXORSRC                  = 11;
  194.   FM_INVERT                     = 12;
  195.   FM_MERGESRCNOT                = 13;
  196.   FM_NOTCOPYSRC                 = 14;
  197.   FM_MERGENOTSRC                = 15;
  198.   FM_NOTMASKSRC                 = 16;
  199.   FM_ONE                        = 17;
  200.  
  201. CONST (* background mixes *)
  202.   BM_ERROR                      = -1;
  203.   BM_DEFAULT                    =  0;
  204.   BM_OR                         =  1;
  205.   BM_OVERPAINT                  =  2;
  206.   BM_LEAVEALONE                 =  5;
  207.   BM_XOR                        =  4;
  208.   BM_AND                        =  6;
  209.   BM_SUBTRACT                   =  7;
  210.   BM_MASKSRCNOT                 =  8;
  211.   BM_ZERO                       =  9;
  212.   BM_NOTMERGESRC                = 10;
  213.   BM_NOTXORSRC                  = 11;
  214.   BM_INVERT                     = 12;
  215.   BM_MERGESRCNOT                = 13;
  216.   BM_NOTCOPYSRC                 = 14;
  217.   BM_MERGENOTSRC                = 15;
  218.   BM_NOTMASKSRC                 = 16;
  219.   BM_ONE                        = 17;
  220.   BM_SRCTRANSPARENT             = 18;
  221.   BM_DESTTRANSPARENT            = 19;
  222.  
  223. CONST (* basic line type styles *)
  224.   LINETYPE_ERROR                = -1;
  225.   LINETYPE_DEFAULT              =  0;
  226.   LINETYPE_DOT                  =  1;
  227.   LINETYPE_SHORTDASH            =  2;
  228.   LINETYPE_DASHDOT              =  3;
  229.   LINETYPE_DOUBLEDOT            =  4;
  230.   LINETYPE_LONGDASH             =  5;
  231.   LINETYPE_DASHDOUBLEDOT        =  6;
  232.   LINETYPE_SOLID                =  7;
  233.   LINETYPE_INVISIBLE            =  8;
  234.   LINETYPE_ALTERNATE            =  9;
  235.  
  236. CONST (* cosmetic line widths *)
  237.   LINEWIDTH_ERROR               = -1;
  238.   LINEWIDTH_DEFAULT             =  0;
  239.   LINEWIDTH_NORMAL              =  00010000H;  (* MAKEFIXED(1,0) *)
  240.   LINEWIDTH_THICK               =  00020000H;  (* MAKEFIXED(2,0) *)
  241.  
  242. CONST (* actual line widths *)
  243.   LINEWIDTHGEOM_ERROR           = -1;
  244.  
  245. CONST (* line end styles *)
  246.   LINEEND_ERROR                 = -1;
  247.   LINEEND_DEFAULT               =  0;
  248.   LINEEND_FLAT                  =  1;
  249.   LINEEND_SQUARE                =  2;
  250.   LINEEND_ROUND                 =  3;
  251.  
  252. CONST (* line join styles *)
  253.   LINEJOIN_ERROR                = -1;
  254.   LINEJOIN_DEFAULT              =  0;
  255.   LINEJOIN_BEVEL                =  1;
  256.   LINEJOIN_ROUND                =  2;
  257.   LINEJOIN_MITRE                =  3;
  258.  
  259. CONST (* character directions *)
  260.   CHDIRN_ERROR                  = -1;
  261.   CHDIRN_DEFAULT                =  0;
  262.   CHDIRN_LEFTRIGHT              =  1;
  263.   CHDIRN_TOPBOTTOM              =  2;
  264.   CHDIRN_RIGHTLEFT              =  3;
  265.   CHDIRN_BOTTOMTOP              =  4;
  266.  
  267. CONST (* character text alignments *)
  268.   TA_NORMAL_HORIZ               = 0001H;
  269.   TA_LEFT                       = 0002H;
  270.   TA_CENTER                     = 0003H;
  271.   TA_RIGHT                      = 0004H;
  272.   TA_STANDARD_HORIZ             = 0005H;
  273.   TA_NORMAL_VERT                = 0100H;
  274.   TA_TOP                        = 0200H;
  275.   TA_HALF                       = 0300H;
  276.   TA_BASE                       = 0400H;
  277.   TA_BOTTOM                     = 0500H;
  278.   TA_STANDARD_VERT              = 0600H;
  279.  
  280. CONST (* character modes *)
  281.   CM_ERROR                      = -1;
  282.   CM_DEFAULT                    =  0;
  283.   CM_MODE1                      =  1;
  284.   CM_MODE2                      =  2;
  285.   CM_MODE3                      =  3;
  286.  
  287. CONST (* basic marker symbols *)
  288.   MARKSYM_ERROR                 = -1;
  289.   MARKSYM_DEFAULT               =  0;
  290.   MARKSYM_CROSS                 =  1;
  291.   MARKSYM_PLUS                  =  2;
  292.   MARKSYM_DIAMOND               =  3;
  293.   MARKSYM_SQUARE                =  4;
  294.   MARKSYM_SIXPOINTSTAR          =  5;
  295.   MARKSYM_EIGHTPOINTSTAR        =  6;
  296.   MARKSYM_SOLIDDIAMOND          =  7;
  297.   MARKSYM_SOLIDSQUARE           =  8;
  298.   MARKSYM_DOT                   =  9;
  299.   MARKSYM_SMALLCIRCLE           = 10;
  300.   MARKSYM_BLANK                 = 64;
  301.  
  302. CONST (* formatting options for GpiCharStringPosAt *)
  303.   CHS_OPAQUE                    = 0001H;
  304.   CHS_VECTOR                    = 0002H;
  305.   CHS_LEAVEPOS                  = 0008H;
  306.   CHS_CLIP                      = 0010H;
  307.   CHS_UNDERSCORE                = 0200H;
  308.   CHS_STRIKEOUT                 = 0400H;
  309.  
  310. CONST (* bundle codes for GpiSetAttributes and GpiQueryAttributes *)
  311.   PRIM_LINE                     = 1;
  312.   PRIM_CHAR                     = 2;
  313.   PRIM_MARKER                   = 3;
  314.   PRIM_AREA                     = 4;
  315.   PRIM_IMAGE                    = 5;
  316.  
  317. CONST (* line bundle mask bits *)
  318.   LBB_COLOR                     = 0001H;
  319.   LBB_BACK_COLOR                = 0002H;
  320.   LBB_MIX_MODE                  = 0004H;
  321.   LBB_BACK_MIX_MODE             = 0008H;
  322.   LBB_WIDTH                     = 0010H;
  323.   LBB_GEOM_WIDTH                = 0020H;
  324.   LBB_TYPE                      = 0040H;
  325.   LBB_END                       = 0080H;
  326.   LBB_JOIN                      = 0100H;
  327.  
  328. CONST (* character bundle mask bits *)
  329.   CBB_COLOR                     = 0001H;
  330.   CBB_BACK_COLOR                = 0002H;
  331.   CBB_MIX_MODE                  = 0004H;
  332.   CBB_BACK_MIX_MODE             = 0008H;
  333.   CBB_SET                       = 0010H;
  334.   CBB_MODE                      = 0020H;
  335.   CBB_BOX                       = 0040H;
  336.   CBB_ANGLE                     = 0080H;
  337.   CBB_SHEAR                     = 0100H;
  338.   CBB_DIRECTION                 = 0200H;
  339.   CBB_TEXT_ALIGN                = 0400H;
  340.   CBB_EXTRA                     = 0800H;
  341.   CBB_BREAK_EXTRA               = 1000H;
  342.  
  343. CONST (* marker bundle mask bits *)
  344.   MBB_COLOR                     = 0001H;
  345.   MBB_BACK_COLOR                = 0002H;
  346.   MBB_MIX_MODE                  = 0004H;
  347.   MBB_BACK_MIX_MODE             = 0008H;
  348.   MBB_SET                       = 0010H;
  349.   MBB_SYMBOL                    = 0020H;
  350.   MBB_BOX                       = 0040H;
  351.  
  352. CONST (* pattern bundle mask bits *)
  353.   ABB_COLOR                     = 0001H;
  354.   ABB_BACK_COLOR                = 0002H;
  355.   ABB_MIX_MODE                  = 0004H;
  356.   ABB_BACK_MIX_MODE             = 0008H;
  357.   ABB_SET                       = 0010H;
  358.   ABB_SYMBOL                    = 0020H;
  359.   ABB_REF_POINT                 = 0040H;
  360.  
  361. CONST (* image bundle mask bits *)
  362.   IBB_COLOR                     = 0001H;
  363.   IBB_BACK_COLOR                = 0002H;
  364.   IBB_MIX_MODE                  = 0004H;
  365.   IBB_BACK_MIX_MODE             = 0008H;
  366.  
  367. TYPE (* structure for GpiSetArcParams and GpiQueryArcParams *)
  368.   ARCPARAMS                     = RECORD             (* arcp *)
  369.     CASE                          : TYPEPREFIX OF
  370.     | TRUE                        :
  371.       lP                          : LONGINT;
  372.       lQ                          : LONGINT;
  373.       lR                          : LONGINT;
  374.       lS                          : LONGINT;
  375.     | FALSE                       :
  376.       P                           : LONGINT;
  377.       Q                           : LONGINT;
  378.       R                           : LONGINT;
  379.       S                           : LONGINT;
  380.     END;                          END;
  381.   PARCPARAMS                    = POINTER TO ARCPARAMS;
  382.  
  383. TYPE (* variation of SIZE used for FIXEDs *)
  384.   SIZEF                         = RECORD             (* sizfx *)
  385.     CASE                          : TYPEPREFIX OF
  386.     | TRUE                        :
  387.       cx                          : FIXED;
  388.       cy                          : FIXED;
  389.     | FALSE                       :
  390.       xSize                       : FIXED;
  391.       ySize                       : FIXED;
  392.     END;                          END;
  393.   PSIZEF                        = POINTER TO SIZEF;
  394.  
  395. TYPE (* structure for gradient parameters e.g. for GpiSetCharAngle *)
  396.   GRADIENTL                     = RECORD        (* gradl *)
  397.     x                             : LONGINT;
  398.     y                             : LONGINT;
  399.                                   END;
  400.   PGRADIENTL                    = POINTER TO GRADIENTL;
  401.  
  402. TYPE (* line bundle for GpiSetAttributes and GpiQueryAttributes *)
  403.   LINEBUNDLE                    = RECORD           (* lbnd *)
  404.     CASE                          : TYPEPREFIX OF
  405.     | TRUE                        :
  406.       lColor                      : LONGINT;
  407.       lBackColor                  : LONGINT;
  408.       usMixMode                   : CARDINAL;
  409.       usBackMixMode               : CARDINAL;
  410.       fxWidth                     : FIXED;
  411.       lGeomWidth                  : LONGINT;
  412.       usType                      : CARDINAL;
  413.       usEnd                       : CARDINAL;
  414.       usJoin                      : CARDINAL;
  415.       usReserved                  : CARDINAL;
  416.     | FALSE                       :
  417.       Color                       : LONGINT;
  418.       BackColor                   : LONGINT;
  419.       MixMode                     : CARDINAL;
  420.       BackMixMode                 : CARDINAL;
  421.       Width                       : FIXED;
  422.       GeomWidth                   : LONGINT;
  423.       Type                        : CARDINAL;
  424.       End                         : CARDINAL;
  425.       Join                        : CARDINAL;
  426.       Reserved                    : CARDINAL;
  427.     END;                          END;
  428.   PLINEBUNDLE                   = POINTER TO LINEBUNDLE;
  429.  
  430. TYPE (* character bundle for GpiSetAttributes and GpiQueryAttributes *)
  431.   CHARBUNDLE                    = RECORD           (* cbnd *)
  432.     CASE                          : TYPEPREFIX OF
  433.     | TRUE                        :
  434.       lColor                      : LONGINT;
  435.       lBackColor                  : LONGINT;
  436.       usMixMode                   : CARDINAL;
  437.       usBackMixMode               : CARDINAL;
  438.       usSet                       : CARDINAL;
  439.       usPrecision                 : CARDINAL;
  440.       sizfxCell                   : SIZEF;
  441.       ptlAngle                    : POINTL;
  442.       ptlShear                    : POINTL;
  443.       usDirection                 : CARDINAL;
  444.       usTextAlign                 : CARDINAL;
  445.       fxExtra                     : FIXED;
  446.       fxBreakExtra                : FIXED;
  447.     | FALSE                       :
  448.       Color                       : LONGINT;
  449.       BackColor                   : LONGINT;
  450.       MixMode                     : CARDINAL;
  451.       BackMixMode                 : CARDINAL;
  452.       Set                         : CARDINAL;
  453.       Precision                   : CARDINAL;
  454.       CellSize                    : SIZEF;
  455.       AnglePoint                  : POINTL;
  456.       ShearPoint                  : POINTL;
  457.       Direction                   : CARDINAL;
  458.       TextAlign                   : CARDINAL;
  459.       Extra                       : FIXED;
  460.       BreakExtra                  : FIXED;
  461.     END;                          END;
  462.   PCHARBUNDLE                   = POINTER TO CHARBUNDLE;
  463.  
  464. TYPE (* marker bundle for GpiSetAttributes and GpiQueryAttributes *)
  465.   MARKERBUNDLE                  = RECORD         (* mbnd *)
  466.     CASE                          : TYPEPREFIX OF
  467.     | TRUE                        :
  468.       lColor                      : LONGINT;
  469.       lBackColor                  : LONGINT;
  470.       usMixMode                   : CARDINAL;
  471.       usBackMixMode               : CARDINAL;
  472.       usSet                       : CARDINAL;
  473.       usSymbol                    : CARDINAL;
  474.       sizfxCell                   : SIZEF;
  475.     | FALSE                       :
  476.       Color                       : LONGINT;
  477.       BackColor                   : LONGINT;
  478.       MixMode                     : CARDINAL;
  479.       BackMixMode                 : CARDINAL;
  480.       Set                         : CARDINAL;
  481.       Symbol                      : CARDINAL;
  482.       CellSize                    : SIZEF;
  483.     END;                          END;
  484.   PMARKERBUNDLE                 = POINTER TO MARKERBUNDLE;
  485.  
  486. TYPE (* pattern bundle for GpiSetAttributes and GpiQueryAttributes *)
  487.   AREABUNDLE                    = RECORD            (* pbnd *)
  488.     CASE                          : TYPEPREFIX OF
  489.     | TRUE                        :
  490.       lColor                      : LONGINT;
  491.       lBackColor                  : LONGINT;
  492.       usMixMode                   : CARDINAL;
  493.       usBackMixMode               : CARDINAL;
  494.       usSet                       : CARDINAL;
  495.       usSymbol                    : CARDINAL;
  496.       ptlRefPoint                 : POINTL;
  497.     | FALSE                       :
  498.       Color                       : LONGINT;
  499.       BackColor                   : LONGINT;
  500.       MixMode                     : CARDINAL;
  501.       BackMixMode                 : CARDINAL;
  502.       Set                         : CARDINAL;
  503.       Symbol                      : CARDINAL;
  504.       RefPoint                    : POINTL;
  505.     END;                          END;
  506.   PAREABUNDLE                   = POINTER TO AREABUNDLE;
  507.  
  508. TYPE (* image bundle for GpiSetAttributes and GpiQueryAttributes *)
  509.   IMAGEBUNDLE                   = RECORD           (* ibmd *)
  510.     CASE                          : TYPEPREFIX OF
  511.     | TRUE                        :
  512.       lColor                      : LONGINT;
  513.       lBackColor                  : LONGINT;
  514.       usMixMode                   : CARDINAL;
  515.       usBackMixMode               : CARDINAL;
  516.     | FALSE                       :
  517.       Color                       : LONGINT;
  518.       BackColor                   : LONGINT;
  519.       MixMode                     : CARDINAL;
  520.       BackMixMode                 : CARDINAL;
  521.     END;                          END;
  522.   PIMAGEBUNDLE                  = POINTER TO IMAGEBUNDLE;
  523.  
  524. TYPE (* pointer to any bundle used by GpiSet/QueryAttrs *)
  525.   PBUNDLE                       = SYSTEM.ADDRESS;
  526.  
  527. CONST (* array indices for GpiQueryTextBox *)
  528.   TXTBOX_TOPLEFT                = 0;
  529.   TXTBOX_BOTTOMLEFT             = 1;
  530.   TXTBOX_TOPRIGHT               = 2;
  531.   TXTBOX_BOTTOMRIGHT            = 3;
  532.   TXTBOX_CONCAT                 = 4;
  533.  
  534. CONST (* array count for GpiQueryTextBox *)
  535.   TXTBOX_COUNT                  = 5;
  536.  
  537. CONST (* return codes for GpiPtVisible *)
  538.   PVIS_ERROR                    = 0;
  539.   PVIS_INVISIBLE                = 1;
  540.   PVIS_VISIBLE                  = 2;
  541.  
  542. CONST (* return codes for GpiRectVisible *)
  543.   RVIS_ERROR                    = 0;
  544.   RVIS_INVISIBLE                = 1;
  545.   RVIS_PARTIAL                  = 2;
  546.   RVIS_VISIBLE                  = 3;
  547.  
  548.  
  549. (*** attribute mode functions *)
  550.  
  551. PROCEDURE GpiSetAttrMode
  552. ( PresSpaceHandle               : HPS;
  553.   Mode                          : LONGINT
  554. )                               : BOOLEAN;
  555.  
  556. PROCEDURE GpiQueryAttrMode
  557. ( PresSpaceHandle               : HPS
  558. )                               : LONGINT;
  559.  
  560.  
  561. (*** bundle primitive functions *)
  562.  
  563. PROCEDURE GpiSetAttrs
  564. ( PresSpaceHandle               : HPS;
  565.   PrimType                      : LONGINT;
  566.   AttrMask                      : LONGCARD;
  567.   DefMask                       : LONGCARD;
  568.   VAR AttrBundle                : ARRAY OF SYSTEM.BYTE
  569. )                               : BOOLEAN;
  570.  
  571. PROCEDURE GpiQueryAttrs
  572. ( PresSpaceHandle               : HPS;
  573.   PrimType                      : LONGINT;
  574.   AttrMask                      : LONGCARD;
  575.   VAR AttrBundle                : ARRAY OF SYSTEM.BYTE
  576. )                               : LONGINT;
  577.  
  578.  
  579. (*** global primitive functions *)
  580.  
  581. PROCEDURE GpiSetBackColor
  582. ( PresSpaceHandle               : HPS;
  583.   Color                         : LONGINT
  584. )                               : BOOLEAN;
  585.  
  586. PROCEDURE GpiQueryBackColor
  587. ( PresSpaceHandle               : HPS
  588. )                               : LONGINT;
  589.  
  590. PROCEDURE GpiSetMix
  591. ( PresSpaceHandle               : HPS;
  592.   MixMode                       : LONGINT
  593. )                               : BOOLEAN;
  594.  
  595. PROCEDURE GpiQueryMix
  596. ( PresSpaceHandle               : HPS
  597. )                               : LONGINT;
  598.  
  599. PROCEDURE GpiSetBackMix
  600. ( PresSpaceHandle               : HPS;
  601.   MixMode                       : LONGINT
  602. )                               : BOOLEAN;
  603.  
  604. PROCEDURE GpiQueryBackMix
  605. ( PresSpaceHandle               : HPS
  606. )                               : LONGINT;
  607.  
  608.  
  609. (*** line primitive functions *)
  610.  
  611. PROCEDURE GpiSetLineType
  612. ( PresSpaceHandle               : HPS;
  613.   LineType                      : LONGINT
  614. )                               : BOOLEAN;
  615.  
  616. PROCEDURE GpiQueryLineType
  617. ( PresSpaceHandle               : HPS
  618. )                               : LONGINT;
  619.  
  620. PROCEDURE GpiSetLineWidth
  621. ( PresSpaceHandle               : HPS;
  622.   LineWidth                     : FIXED
  623. )                               : BOOLEAN;
  624.  
  625. PROCEDURE GpiQueryLineWidth
  626. ( PresSpaceHandle               : HPS
  627. )                               : FIXED;
  628.  
  629. PROCEDURE GpiSetLineWidthGeom
  630. ( PresSpaceHandle               : HPS;
  631.   LineWidth                     : LONGINT
  632. )                               : BOOLEAN;
  633.  
  634. PROCEDURE GpiQueryLineWidthGeom
  635. ( PresSpaceHandle               : HPS
  636. )                               : LONGINT;
  637.  
  638. PROCEDURE GpiSetLineEnd
  639. ( PresSpaceHandle               : HPS;
  640.   LineEnd                       : LONGINT
  641. )                               : BOOLEAN;
  642.  
  643. PROCEDURE GpiQueryLineEnd
  644. ( PresSpaceHandle               : HPS
  645. )                               : LONGINT;
  646.  
  647. PROCEDURE GpiSetLineJoin
  648. ( PresSpaceHandle               : HPS;
  649.   LineJoin                      : LONGINT
  650. )                               : BOOLEAN;
  651.  
  652. PROCEDURE GpiQueryLineJoin
  653. ( PresSpaceHandle               : HPS
  654. )                               : LONGINT;
  655.  
  656. PROCEDURE GpiSetCurrentPosition
  657. ( PresSpaceHandle               : HPS;
  658.   VAR Point                     : POINTL
  659. )                               : BOOLEAN;
  660.  
  661. PROCEDURE GpiQueryCurrentPosition
  662. ( PresSpaceHandle               : HPS;
  663.   VAR Point                     : POINTL
  664. )                               : BOOLEAN;
  665.  
  666.  
  667. (*** arc primitive functions *)
  668.  
  669. PROCEDURE GpiSetArcParams
  670. ( PresSpaceHandle               : HPS;
  671.   VAR ArcParams                 : ARCPARAMS
  672. )                               : BOOLEAN;
  673.  
  674. PROCEDURE GpiQueryArcParams
  675. ( PresSpaceHandle               : HPS;
  676.   VAR ArcParams                 : ARCPARAMS
  677. )                               : BOOLEAN;
  678.  
  679. PROCEDURE GpiPointArc
  680. ( PresSpaceHandle               : HPS;
  681.   VAR Points                    : ARRAY OF POINTL
  682. )                               : LONGINT;
  683.  
  684. PROCEDURE GpiFullArc
  685. ( PresSpaceHandle               : HPS;
  686.   Control                       : LONGINT;
  687.   Multiplier                    : FIXED
  688. )                               : LONGINT;
  689.  
  690. PROCEDURE GpiPartialArc
  691. ( PresSpaceHandle               : HPS;
  692.   VAR CenterPoint               : POINTL;
  693.   Multiplier                    : FIXED;
  694.   StartAngle                    : FIXED;
  695.   SweepAngle                    : FIXED
  696. )                               : LONGINT;
  697.  
  698. PROCEDURE GpiPolyFillet
  699. ( PresSpaceHandle               : HPS;
  700.   Count                         : LONGINT;
  701.   VAR Points                    : ARRAY OF POINTL
  702. )                               : LONGINT;
  703.  
  704. PROCEDURE GpiPolySpline
  705. ( PresSpaceHandle               : HPS;
  706.   Count                         : LONGINT;
  707.   VAR Points                    : ARRAY OF POINTL
  708. )                               : LONGINT;
  709.  
  710. PROCEDURE GpiPolyFilletSharp
  711. ( PresSpaceHandle               : HPS;
  712.   Count                         : LONGINT;
  713.   VAR Points                    : ARRAY OF POINTL;
  714.   VAR Sharpness                 : ARRAY OF FIXED
  715. )                               : LONGINT;
  716.  
  717.  
  718. (*** area primitive functions *)
  719.  
  720. PROCEDURE GpiSetPatternSet
  721. ( PresSpaceHandle               : HPS;
  722.   Set                           : LONGINT
  723. )                               : BOOLEAN;
  724.  
  725. PROCEDURE GpiQueryPatternSet
  726. ( PresSpaceHandle               : HPS
  727. )                               : LONGINT;
  728.  
  729. PROCEDURE GpiSetPatternRefPoint
  730. ( PresSpaceHandle               : HPS;
  731.   VAR RefPoint                  : POINTL
  732. )                               : BOOLEAN;
  733.  
  734. PROCEDURE GpiQueryPatternRefPoint
  735. ( PresSpaceHandle               : HPS;
  736.   VAR RefPoint                  : POINTL
  737. )                               : BOOLEAN;
  738.  
  739.  
  740. (*** character primitive functions *)
  741.  
  742. PROCEDURE GpiQueryCharStringPos
  743. ( PresSpaceHandle               : HPS;
  744.   Options                       : LONGCARD;
  745.   Count                         : LONGINT;
  746.   String                        : ARRAY OF CHAR;
  747.   VAR XIncrements               : ARRAY OF LONGINT;
  748.   VAR Positions                 : ARRAY OF POINTL
  749. )                               : BOOLEAN;
  750.  
  751. PROCEDURE GpiQueryCharStringPosAt
  752. ( PresSpaceHandle               : HPS;
  753.   VAR Start                     : POINTL;
  754.   Options                       : LONGCARD;
  755.   Count                         : LONGINT;
  756.   String                        : ARRAY OF CHAR;
  757.   VAR XIncrements               : ARRAY OF LONGINT;
  758.   VAR Positions                 : ARRAY OF POINTL
  759. )                               : BOOLEAN;
  760.  
  761. PROCEDURE GpiQueryTextBox
  762. ( PresSpaceHandle               : HPS;
  763.   Count1                        : LONGINT;
  764.   String                        : ARRAY OF CHAR;
  765.   Count2                        : LONGINT;
  766.   VAR Points                    : ARRAY OF POINTL
  767. )                               : BOOLEAN;
  768.  
  769. PROCEDURE GpiQueryDefCharBox
  770. ( PresSpaceHandle               : HPS;
  771.   VAR Size                      : SIZEL
  772. )                               : BOOLEAN;
  773.  
  774. PROCEDURE GpiSetCharSet
  775. ( PresSpaceHandle               : HPS;
  776.   LocCharSetId                  : LONGINT
  777. )                               : BOOLEAN;
  778.  
  779. PROCEDURE GpiQueryCharSet
  780. ( PresSpaceHandle               : HPS
  781. )                               : LONGINT;
  782.  
  783. PROCEDURE GpiSetCharBox
  784. ( PresSpaceHandle               : HPS;
  785.   VAR BoxSize                   : SIZEF
  786. )                               : BOOLEAN;
  787.  
  788. PROCEDURE GpiQueryCharBox
  789. ( PresSpaceHandle               : HPS;
  790.   VAR BoxSize                   : SIZEF
  791. )                               : BOOLEAN;
  792.  
  793. PROCEDURE GpiSetCharAngle
  794. ( PresSpaceHandle               : HPS;
  795.   VAR Angle                     : GRADIENTL
  796. )                               : BOOLEAN;
  797.  
  798. PROCEDURE GpiQueryCharAngle
  799. ( PresSpaceHandle               : HPS;
  800.   VAR Angle                     : GRADIENTL
  801. )                               : BOOLEAN;
  802.  
  803. PROCEDURE GpiSetCharShear
  804. ( PresSpaceHandle               : HPS;
  805.   VAR Angle                     : POINTL
  806. )                               : BOOLEAN;
  807.  
  808. PROCEDURE GpiQueryCharShear
  809. ( PresSpaceHandle               : HPS;
  810.   VAR Angle                     : POINTL
  811. )                               : BOOLEAN;
  812.  
  813. PROCEDURE GpiSetCharDirection
  814. ( PresSpaceHandle               : HPS;
  815.   Direction                     : LONGINT
  816. )                               : BOOLEAN;
  817.  
  818. PROCEDURE GpiQueryCharDirection
  819. ( PresSpaceHandle               : HPS
  820. )                               : LONGINT;
  821.  
  822. PROCEDURE GpiSetCharMode
  823. ( PresSpaceHandle               : HPS;
  824.   Mode                          : LONGINT
  825. )                               : BOOLEAN;
  826.  
  827. PROCEDURE GpiQueryCharMode
  828. ( PresSpaceHandle               : HPS
  829. )                               : LONGINT;
  830.  
  831. PROCEDURE GpiSetTextAlignment
  832. ( PresSpaceHandle               : HPS;
  833.   Horiz                         : LONGINT;
  834.   Vert                          : LONGINT
  835. )                               : BOOLEAN;
  836.  
  837. PROCEDURE GpiQueryTextAlignment
  838. ( PresSpaceHandle               : HPS;
  839.   VAR Horiz                     : LONGINT;
  840.   VAR Vert                      : LONGINT
  841. )                               : BOOLEAN;
  842.  
  843. PROCEDURE GpiCharStringPos
  844. ( PresSpaceHandle               : HPS;
  845.   VAR Rect                      : RECTL;
  846.   Options                       : LONGCARD;
  847.   Count                         : LONGINT;
  848.   String                        : ARRAY OF CHAR;
  849.   VAR Adx                       : ARRAY OF LONGINT
  850. )                               : LONGINT;
  851.  
  852. PROCEDURE GpiCharStringPosAt
  853. ( PresSpaceHandle               : HPS;
  854.   VAR Start                     : POINTL;
  855.   VAR Rect                      : RECTL;
  856.   Options                       : LONGCARD;
  857.   Count                         : LONGINT;
  858.   String                        : ARRAY OF CHAR;
  859.   VAR Adx                       : ARRAY OF LONGINT
  860. )                               : LONGINT;
  861.  
  862. PROCEDURE GpiSetCharExtra
  863. ( PresSpaceHandle               : HPS;
  864.   Extra                         : FIXED
  865. )                               : BOOLEAN;
  866.  
  867. PROCEDURE GpiSetCharBreakExtra
  868. ( PresSpaceHandle               : HPS;
  869.   BreakExtra                    : FIXED
  870. )                               : BOOLEAN;
  871.  
  872. PROCEDURE GpiQueryCharExtra
  873. ( PresSpaceHandle               : HPS;
  874.   VAR Extra                     : FIXED
  875. )                               : BOOLEAN;
  876.  
  877. PROCEDURE GpiQueryCharBreakExtra
  878. ( PresSpaceHandle               : HPS;
  879.   VAR BreakExtra                : FIXED
  880. )                               : BOOLEAN;
  881.  
  882.  
  883. (*** marker primitive functions  *)
  884.  
  885. PROCEDURE GpiMarker
  886. ( PresSpaceHandle               : HPS;
  887.   VAR Point                     : POINTL
  888. )                               : LONGINT;
  889.  
  890. PROCEDURE GpiPolyMarker
  891. ( PresSpaceHandle               : HPS;
  892.   Count                         : LONGINT;
  893.   VAR Points                    : ARRAY OF POINTL
  894. )                               : LONGINT;
  895.  
  896. PROCEDURE GpiSetMarker
  897. ( PresSpaceHandle               : HPS;
  898.   Symbol                        : LONGINT
  899. )                               : BOOLEAN;
  900.  
  901. PROCEDURE GpiSetMarkerBox
  902. ( PresSpaceHandle               : HPS;
  903.   VAR BoxSize                   : SIZEF
  904. )                               : BOOLEAN;
  905.  
  906. PROCEDURE GpiSetMarkerSet
  907. ( PresSpaceHandle               : HPS;
  908.   Set                           : LONGINT
  909. )                               : BOOLEAN;
  910.  
  911. PROCEDURE GpiQueryMarker
  912. ( PresSpaceHandle               : HPS
  913. )                               : LONGINT;
  914.  
  915. PROCEDURE GpiQueryMarkerBox
  916. ( PresSpaceHandle               : HPS;
  917.   VAR BoxSize                   : SIZEF
  918. )                               : BOOLEAN;
  919.  
  920. PROCEDURE GpiQueryMarkerSet
  921. ( PresSpaceHandle               : HPS
  922. )                               : LONGINT;
  923.  
  924.  
  925. (*** image primitive functions *)
  926.  
  927. PROCEDURE GpiImage
  928. ( PresSpaceHandle               : HPS;
  929.   Format                        : LONGINT;
  930.   VAR ImageSize                 : SIZEL;
  931.   Length                        : LONGINT;
  932.   VAR Data                      : ARRAY OF SYSTEM.BYTE
  933. )                               : LONGINT;
  934.  
  935.  
  936. (*** miscellaneous primitive functions *)
  937.  
  938. PROCEDURE GpiPop
  939. ( PresSpaceHandle               : HPS;
  940.   Count                         : LONGINT
  941. )                               : BOOLEAN;
  942.  
  943. PROCEDURE GpiPtVisible
  944. ( PresSpaceHandle               : HPS;
  945.   VAR Point                     : POINTL
  946. )                               : LONGINT;
  947.  
  948. PROCEDURE GpiRectVisible
  949. ( PresSpaceHandle               : HPS;
  950.   VAR Rectangle                 : RECTL
  951. )                               : LONGINT;
  952.  
  953. PROCEDURE GpiComment
  954. ( PresSpaceHandle               : HPS;
  955.   Length                        : LONGINT;
  956.   Data                          : ARRAY OF SYSTEM.BYTE
  957. )                               : BOOLEAN;
  958.  
  959. END GPIPRIMITIVES.
  960.