home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Interactive Guide / c-cplusplus-interactive-guide.iso / c_ref / csource1 / program3 / pmddi.pas < prev    next >
Pascal/Delphi Source File  |  1993-11-23  |  18KB  |  749 lines

  1. {| Unit: pmddi
  2.  | Version: 1.00
  3.  | translated from file pmddi.H
  4.  | Original translation: Peter Sawatzki (ps)
  5.  | Contributing:
  6.  |   (fill in)
  7.  |
  8.  | change history:
  9.  | Date:    Ver: Author:
  10.  | 11/13/93 1.00 ps     original translation by ps
  11. }
  12. Unit pmddi;
  13. Interface
  14. Uses
  15.   Os2Def,
  16.   PmGpi,
  17.   BseDos;
  18. {**************************************************************************\
  19. *
  20. * Module Name: PMDDI.H
  21. *
  22. * OS/2 Presentation Manager Graphics Engine entry point, macro and type
  23. * declarations.
  24. *
  25. * Copyright
  26. *
  27. * =========================================================================
  28. *
  29. * Further defines must be made to specify which of the GRE function macros
  30. * should be defined.  INCL_GREALL causes all of them to be defined.
  31. *
  32. *     INCL_GRE_ARCS        - Arcs functions
  33. *     INCL_GRE_LINES       - Line functions
  34. *     INCL_GRE_MARKERS     - etc.
  35. *     INCL_GRE_SCANS
  36. *     INCL_GRE_BITMAPS
  37. *     INCL_GRE_STRINGS
  38. *     INCL_GRE_PATHS
  39. *     INCL_GRE_PICK
  40. *     INCL_GRE_CLIP
  41. *     INCL_GRE_REGIONS
  42. *     INCL_GRE_XFORMS
  43. *     INCL_GRE_DEVMISC
  44. *     INCL_GRE_COLORTABLE
  45. *     INCL_GRE_DEVICE
  46. *     INCL_GRE_DCS
  47. *     INCL_GRE_SETID
  48. *     INCL_GRE_FONTS
  49. *     INCL_GRE_JOURNALING
  50. *     INCL_GRE_LCID
  51. *     INCL_GRE_DEVSUPPORT
  52. \**************************************************************************}
  53.  
  54. { exported Engine DDI functions }
  55.  
  56.   Function SetDriverInfo (Par1: ULONG; Par2: LHANDLE; Par3: ULONG; hDC: HDC): ULONG;
  57.   Function GetDriverInfo (Par1: LHANDLE; Par2: ULONG; hDC: HDC): ULONG;
  58.   Function PostDeviceModes (Par1: PDRIVDATA; Par2, Par3, Par4: PSZ; Par5: ULONG): ULONG;
  59.   Function GreInitialize: BOOL;
  60.  
  61. { define common types in the Engine and DDI }
  62.  
  63.  
  64. Type
  65.   RECTS = Record                        { rcs }
  66.     pts1,
  67.     pts2: POINTS
  68.   End;
  69.   pRECTS = ^RECTS;
  70.  
  71.   POINTFX = Record                      { ptfx }
  72.     x,
  73.     y: FIXED
  74.   End;
  75.   pPOINTFX = ^POINTFX;
  76.  
  77.   RECTFX = Record                       { rcfx }
  78.     ptfx1,
  79.     ptfx2: POINTFX
  80.   End;
  81.  
  82.   pRECTFX = ^PRECTFX;
  83.  
  84.   XFORM = Record                        { xform }
  85.     fxM11,
  86.     fxM12,
  87.     fxM21,
  88.     fxM22: FIXED;
  89.     lM41,
  90.     lM42: LongInt
  91.   End;
  92.   pXFORM = ^PXFORM;
  93.  
  94.   LCID = LONG;      { locally-coded id }
  95.   pLCID = ^LCID;
  96.   PHID = LONG;      { path id          }
  97.  
  98. { get GRE function macros }
  99. { have INCL_GREALL defined to get all of these }
  100.  
  101. { Command Flags for high word of FunN }
  102.  
  103. Const
  104.   COM_DRAW                =  $0001;
  105.   COM_BOUND                        =  $0002;
  106.   COM_CORRELATE                    =  $0004;
  107.   COM_ALT_BOUND                    =  $0008;
  108.   COM_AREA                         =  $0010;
  109.   COM_PATH                         =  $0020;
  110.   COM_TRANSFORM                    =  $0040;
  111.   COM_RECORDING                    =  $0080;
  112.   COM_DEVICE                       =  $0100;
  113.  
  114. { BoxBoundary }
  115. { BoxInterior }
  116. { BoxBoth }
  117.  
  118. Type
  119.   BOXPARAMS = Record                    { boxp }
  120.     ptl: POINTL;
  121.     sizl: SIZEL
  122.   End;
  123.   pBOXPARAMS = ^BOXPARAMS;
  124.  
  125. { CopyClipRegion }
  126.  
  127. Const
  128.   COPYCRGN_ALLINTERSECT   = 0 ;
  129.   COPYCRGN_VISRGN                  = 1 ;
  130.   COPYCRGN_CLIPRGN                 = 2 ;
  131.  
  132. { SetupDC }
  133.  
  134.   SETUPDC_VISRGN                   =  $00000001 ;
  135.   SETUPDC_ORIGIN                   =  $00000002 ;
  136.   SETUPDC_ACCUMBOUNDSON            =  $00000004 ;
  137.   SETUPDC_ACCUMBOUNDSOFF           =  $00000008 ;
  138.   SETUPDC_RECALCCLIP               =  $00000010 ;
  139.   SETUPDC_SETOWNER                 =  $00000020 ;
  140.   SETUPDC_CLEANDC                  =  $00000040 ;
  141.  
  142. { QueryViewportSize }
  143. Type
  144.   VIEWPORTSIZE = Record                 { vs }
  145.     cx,
  146.     cy: ULONG
  147.   End;
  148.   pVIEWPORTSIZE = ^VIEWPORTSIZE;
  149.  
  150. { Constants for GreInitializeAttributes }
  151.  
  152. Const
  153.   INAT_DEFAULTATTRIBUTES  = 1 ;
  154.   INAT_CURRENTATTRIBUTES           = 2 ;
  155.  
  156. { InvalidateVisRegion }
  157.  
  158.  
  159. Type
  160.   DC_BLOCK = Record                     { ivr }
  161.     hdc,
  162.     hddc: ULONG
  163.   End;
  164.   pDC_BLOCK = ^DC_BLOCK;
  165.  
  166. { Display information resource structure }
  167.  
  168.   DISPLAYINFO = Record                  { dspinfo }
  169.     cb: USHORT;
  170.     cxIcon,
  171.     cyIcon,
  172.     cxPointer,
  173.     cyPointer,
  174.     cxBorder,
  175.     cyBorder,
  176.     cxHSlider,
  177.     cyVSlider,
  178.     cxSizeBorder,
  179.     cySizeBorder,
  180.     cxDeviceAlign,
  181.     cyDeviceAlign: SHORT
  182.   End;
  183.   pDISPLAYINFO = ^DISPLAYINFO;
  184.  
  185. { Parameters for the DC Enable function }
  186.  
  187.   DENPARAMS = Record                    { den }
  188.     ulStateInfo,
  189.     ulType,
  190.     ulHDC: ULONG
  191.   End;
  192.   pDENPARAMS = ^DENPARAMS;
  193.  
  194.  
  195.   STYLERATIO = Record                   { sr }
  196.     dx,
  197.     dy: BYTE
  198.   End;
  199.   pSTYLERATIO = ^STYLERATIO;
  200.  
  201. { Options flags for SetGlobalAttribute }
  202.  
  203.  
  204. Const
  205.   GATTR_DEFAULT           = 1 ;
  206.  
  207. { Attribute Types for SetGlobalAttribute }
  208.  
  209.   ATYPE_COLOR                      = 1 ;
  210.   ATYPE_BACK_COLOR                 = 2 ;
  211.   ATYPE_MIX_MODE                   = 3 ;
  212.   ATYPE_BACK_MIX_MODE              = 4 ;
  213.  
  214. { Options for CharStringPos }
  215.  
  216.   CHS_START_XY                     =  $00000020 ;
  217.   CHS_ATTR_INFO                    =  $00000040 ;
  218.  
  219.  
  220. Type
  221.   CSP_INFO = Record                     { csp }
  222.     cSize,
  223.     lColor,
  224.     lBackColor: LongInt
  225.   End;
  226.   pCSP_INFO = ^CSP_INFO;
  227.  
  228. { Set/GetProcessControl }
  229.  
  230.  
  231. Const
  232.   PCTL_DRAW               =  $00000001 ;
  233.   PCTL_BOUND                       =  $00000002 ;
  234.   PCTL_CORRELATE                   =  $00000004 ;
  235.   PCTL_USERBOUNDS                  =  $00000008 ;
  236.   PCTL_AREA                        =  $00000010 ;
  237.  
  238. { ResetBounds }
  239.  
  240.   RB_GPI                           =  $00000001 ;
  241.   RB_USER                          =  $00000002 ;
  242.  
  243. { GetBoundsData }
  244.  
  245.   GBD_GPI                          = 0 ;
  246.   GBD_USER                         = 1 ;
  247.  
  248. { EndArea Cancel Option }
  249.  
  250.   EA_DRAW                          =  $00000000 ;
  251.   EA_CANCEL                        =  $00000001 ;
  252.  
  253. { Bitblt Style }
  254.  
  255.   BLTMODE_SRC_BITMAP               =  $00010000 ;
  256.   BLTMODE_ATTRS_PRES               =  $00020000 ;
  257.   BBO_TARGWORLD                    =  $00000100 ;
  258.  
  259.  
  260. Type
  261.   BITBLTPARAMETERS = Record             { bbp }
  262.     rclTarg,
  263.     rclSrc: RECTL
  264.   End;
  265.   pBITBLTPARAMETERS = ^BITBLTPARAMETERS;
  266.  
  267.   BITBLTATTRS = Record                  { bba }
  268.     cSize,
  269.     lColor,
  270.     lBackColor: LongInt
  271.   End;
  272.   pBITBLTATTRS = ^BITBLTATTRS;
  273.  
  274. { LCIDs }
  275.  
  276.  
  277. Const
  278.   LCID_AVIO_1             = (-2 );
  279.   LCID_AVIO_2                      = (-3 );
  280.   LCID_AVIO_3                      = (-4 );
  281.  
  282.   LCID_RANGE_GPI                   = 1 ;
  283.   LCID_RANGE_AVIO                  = 2 ;
  284.   LCID_RANGE_BOTH                  = 3 ;
  285.   LCID_GRAPHICS_MIN                = 1;
  286.   LCID_GRAPHICS_MAX                = 254;
  287.  
  288. { ResetDC }
  289.  
  290.   RDC_RGBMODE                      =  $1 ;
  291.   RDC_SETOWNERTOSHELL              =  $2 ;
  292.  
  293. { SetRandomXform }
  294.  
  295.   SX_UNITY                         = 0 ;
  296.   SX_CAT_AFTER                     = 1 ;
  297.   SX_CAT_BEFORE                    = 2 ;
  298.   SX_OVERWRITE                     = 3 ;
  299.  
  300. { Transform accelerators                                                   }
  301. { These bits are only valid if the MATRIX_SIMPLE bit is set.               }
  302. { The X and Y negate flags are only meaningful if MATRIX_UNITS is set.     }
  303.  
  304.   MATRIX_SIMPLE                    =  $0001 ;               { two entries are zero      }
  305.   MATRIX_UNITS                     =  $0002 ;               { all entries are +1 or -1  }
  306.   MATRIX_XY_EXCHANGE               =  $0004 ;               { zeros are on the diagonal }
  307.   MATRIX_X_NEGATE                  =  $0008 ;               { X is hit by negative      }
  308.   MATRIX_Y_NEGATE                  =  $0010 ;               { Y is hit by negative      }
  309.   MATRIX_TRANSLATION               =  $0020 ;               { non-zero translation      }
  310.  
  311. { NotifyClipChange }
  312.  
  313.   NCC_CLEANDC                      =  $0002 ;               { clear DC dirty bit        }
  314.  
  315. { NotifyTransformChange }
  316.  
  317.  
  318. Type
  319.   NOTIFYTRANSFORMDATA = Record          { ntd }
  320.     usType: USHORT;
  321.     xform: XFORM
  322.   End;
  323.   pNOTIFYTRANSFORMDATA = ^NOTIFYTRANSFORMDATA;
  324.  
  325.  
  326. { ColorTable }
  327. Const
  328.   LCOL_SYSCOLORS          =  $0010 ;
  329.  
  330. { query device caps }
  331. Type
  332.   QCDARRAY