home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ddkx86v1.zip / DDKX86 / H / PMFONT.H < prev    next >
Text File  |  1995-04-14  |  8KB  |  239 lines

  1. /*DDK*************************************************************************/
  2. /*                                                                           */
  3. /* COPYRIGHT    Copyright (C) 1995 IBM Corporation                           */
  4. /*                                                                           */
  5. /*    The following IBM OS/2 WARP source code is provided to you solely for  */
  6. /*    the purpose of assisting you in your development of OS/2 WARP device   */
  7. /*    drivers. You may use this code in accordance with the IBM License      */
  8. /*    Agreement provided in the IBM Device Driver Source Kit for OS/2. This  */
  9. /*    Copyright statement may not be removed.                                */
  10. /*                                                                           */
  11. /*****************************************************************************/
  12. /****************************** Module Header ******************************\
  13. *
  14. * Module Name: PMFONT.H
  15. *
  16. * OS/2 Presentation Manager type declarations for Fonts.
  17. *
  18. *
  19. * ===========================================================================
  20. *
  21. * Comments at the end of each typedef line give the name tags used in
  22. * the assembler include version of this file.
  23. *
  24. *
  25. #ifndef __IBMC__
  26.    * The public version of this file (as shipped with the OS/2 Toolkit
  27.    * product) excludes all non 32-bit material marked in this file
  28.    * as well as any areas specifically marked with __IBMC__ conditional
  29.    * sections - including this paragraph. The H2IBMH rexx command file
  30.    * removes these sections.
  31. #endif
  32. \***************************************************************************/
  33.  
  34. /* XLATOFF */
  35. #ifdef __IBMC__
  36.    #pragma checkout( suspend )
  37.       #ifndef __CHKHDR__
  38.          #pragma checkout( suspend )
  39.       #endif
  40.    #pragma checkout( resume )
  41. #endif
  42. /* XLATON */
  43.  
  44. /* XLATOFF */
  45. #ifndef PMFONT_INCLUDED
  46.    /* XLATON */
  47.    #define PMFONT_INCLUDED
  48.  
  49.    typedef struct _FOCAMETRICS {  /* foca */
  50.       ULONG   ulIdentity;
  51.       ULONG   ulSize;
  52.       CHAR    szFamilyname[32];
  53.       CHAR    szFacename[32];
  54.       SHORT   usRegistryId;
  55.       SHORT   usCodePage;
  56.       SHORT   yEmHeight;
  57.       SHORT   yXHeight;
  58.       SHORT   yMaxAscender;
  59.       SHORT   yMaxDescender;
  60.       SHORT   yLowerCaseAscent;
  61.       SHORT   yLowerCaseDescent;
  62.       SHORT   yInternalLeading;
  63.       SHORT   yExternalLeading;
  64.       SHORT   xAveCharWidth;
  65.       SHORT   xMaxCharInc;
  66.       SHORT   xEmInc;
  67.       SHORT   yMaxBaselineExt;
  68.       SHORT   sCharSlope;
  69.       SHORT   sInlineDir;
  70.       SHORT   sCharRot;
  71.       USHORT  usWeightClass;
  72.       USHORT  usWidthClass;
  73.       SHORT   xDeviceRes;
  74.       SHORT   yDeviceRes;
  75.       SHORT   usFirstChar;
  76.       SHORT   usLastChar;
  77.       SHORT   usDefaultChar;
  78.       SHORT   usBreakChar;
  79.       SHORT   usNominalPointSize;
  80.       SHORT   usMinimumPointSize;
  81.       SHORT   usMaximumPointSize;
  82.       SHORT   fsTypeFlags;
  83.       SHORT   fsDefn;
  84.       SHORT   fsSelectionFlags;
  85.       SHORT   fsCapabilities;
  86.       SHORT   ySubscriptXSize;
  87.       SHORT   ySubscriptYSize;
  88.       SHORT   ySubscriptXOffset;
  89.       SHORT   ySubscriptYOffset;
  90.       SHORT   ySuperscriptXSize;
  91.       SHORT   ySuperscriptYSize;
  92.       SHORT   ySuperscriptXOffset;
  93.       SHORT   ySuperscriptYOffset;
  94.       SHORT   yUnderscoreSize;
  95.       SHORT   yUnderscorePosition;
  96.       SHORT   yStrikeoutSize;
  97.       SHORT   yStrikeoutPosition;
  98.       SHORT   usKerningPairs;
  99.       SHORT   sFamilyClass;
  100.       PSZ      pszDeviceNameOffset;
  101.    } FOCAMETRICS;
  102.    typedef FOCAMETRICS FAR *PFOCAMETRICS;
  103.  
  104.    typedef struct _FONTFILEMETRICS {  /* ffm */
  105.       ULONG   ulIdentity;
  106.       ULONG   ulSize;
  107.       CHAR    szFamilyname[32];
  108.       CHAR    szFacename[32];
  109.       SHORT   usRegistryId;
  110.       SHORT   usCodePage;
  111.       SHORT   yEmHeight;
  112.       SHORT   yXHeight;
  113.       SHORT   yMaxAscender;
  114.       SHORT   yMaxDescender;
  115.       SHORT   yLowerCaseAscent;
  116.       SHORT   yLowerCaseDescent;
  117.       SHORT   yInternalLeading;
  118.       SHORT   yExternalLeading;
  119.       SHORT   xAveCharWidth;
  120.       SHORT   xMaxCharInc;
  121.       SHORT   xEmInc;
  122.       SHORT   yMaxBaselineExt;
  123.       SHORT   sCharSlope;
  124.       SHORT   sInlineDir;
  125.       SHORT   sCharRot;
  126.       USHORT  usWeightClass;
  127.       USHORT  usWidthClass;
  128.       SHORT   xDeviceRes;
  129.       SHORT   yDeviceRes;
  130.       SHORT   usFirstChar;
  131.       SHORT   usLastChar;
  132.       SHORT   usDefaultChar;
  133.       SHORT   usBreakChar;
  134.       SHORT   usNominalPointSize;
  135.       SHORT   usMinimumPointSize;
  136.       SHORT   usMaximumPointSize;
  137.       SHORT   fsTypeFlags;
  138.       SHORT   fsDefn;
  139.       SHORT   fsSelectionFlags;
  140.       SHORT   fsCapabilities;
  141.       SHORT   ySubscriptXSize;
  142.       SHORT   ySubscriptYSize;
  143.       SHORT   ySubscriptXOffset;
  144.       SHORT   ySubscriptYOffset;
  145.       SHORT   ySuperscriptXSize;
  146.       SHORT   ySuperscriptYSize;
  147.       SHORT   ySuperscriptXOffset;
  148.       SHORT   ySuperscriptYOffset;
  149.       SHORT   yUnderscoreSize;
  150.       SHORT   yUnderscorePosition;
  151.       SHORT   yStrikeoutSize;
  152.       SHORT   yStrikeoutPosition;
  153.       SHORT   usKerningPairs;
  154.       SHORT   sFamilyClass;
  155.       ULONG   ulReserved;
  156.       PANOSE  panose;
  157.    } FONTFILEMETRICS;
  158.    typedef FONTFILEMETRICS FAR *PFONTFILEMETRICS;
  159.  
  160.    typedef struct _FONTDEFINITIONHEADER {  /* fdh */
  161.       ULONG   ulIdentity;
  162.       ULONG   ulSize;
  163.       SHORT   fsFontdef;
  164.       SHORT   fsChardef;
  165.       SHORT   usCellSize;
  166.       SHORT   xCellWidth;
  167.       SHORT   yCellHeight;
  168.       SHORT   xCellIncrement;
  169.       SHORT   xCellA;
  170.       SHORT   xCellB;
  171.       SHORT   xCellC;
  172.       SHORT   pCellBaseOffset;
  173.    } FONTDEFINITIONHEADER;
  174.    typedef FONTDEFINITIONHEADER FAR *PFONTDEFINITIONHEADER;
  175.  
  176.    #define FONTDEFFONT1     0x0047  /* set width, height, inc. & base offset */
  177.    #define FONTDEFFONT2     0x0042  /* set height & base offset            */
  178.    #define FONTDEFFONT3     0x0042  /* set height & base offset            */
  179.    #define FONTDEFCHAR1     0x0081  /* set char offset and width           */
  180.    #define FONTDEFCHAR2     0x0081  /* set char offset and width           */
  181.    #define FONTDEFCHAR3     0x00b8  /* set char offset, A, B, and C space  */
  182.    #define SPACE_UNDEF      0x8000  /* space undefined = take default      */
  183.  
  184.    typedef struct _FONTSIGNATURE {  /* fs */
  185.       ULONG   ulIdentity;
  186.       ULONG   ulSize;
  187.       CHAR    achSignature[12];
  188.    } FONTSIGNATURE;
  189.    typedef FONTSIGNATURE FAR *PFONTSIGNATURE;
  190.  
  191.    typedef struct _ADDITIONALMETRICS {  /* am */
  192.       ULONG   ulIdentity;
  193.       ULONG   ulSize;
  194.       PANOSE  panose;
  195.    } ADDITIONALMETRICS;
  196.    typedef ADDITIONALMETRICS FAR *PADDITIONALMETRICS;
  197.  
  198.    typedef struct _FOCAFONT {  /* ff */
  199.       FONTSIGNATURE     fsSignature;
  200.       FOCAMETRICS       fmMetrics;
  201.       FONTDEFINITIONHEADER fdDefinitions;
  202.    } FOCAFONT;
  203.    typedef FOCAFONT FAR *PFOCAFONT;
  204.  
  205.    #define FONT_SIGNATURE          0xfffffffe /* Identity header start    */
  206.    #define FONT_METRICS            0x00000001 /* Identity metrics         */
  207.    #define FONT_DEFINITION         0x00000002 /* Identity definition      */
  208.    #define FONT_KERNPAIRS          0x00000003 /* Identity Kern Pairs      */
  209.    #define FONT_ADDITIONALMETRICS  0x00000004 /* Identity Additional Metrics */
  210.    #define FONT_ENDRECORD          0xffffffff /* Identity record end      */
  211.  
  212.    /* Options for QueryFonts */
  213.  
  214.    #define QUERY_PUBLIC_FONTS      0x0001
  215.    #define QUERY_PRIVATE_FONTS     0x0002
  216.  
  217.    #define CDEF_GENERIC            0x0001
  218.    #define CDEF_BOLD               0x0002
  219.    #define CDEF_ITALIC             0x0004
  220.    #define CDEF_UNDERSCORE         0x0008
  221.    #define CDEF_STRIKEOUT          0x0010
  222.    #define CDEF_OUTLINE            0x0020
  223.  
  224.    /* XLATOFF */
  225. #endif /* PMFONT_INCLUDED */
  226. /* XLATON */
  227.  
  228. /* XLATOFF */
  229. #ifdef __IBMC__
  230.    #pragma checkout( suspend )
  231.       #ifndef __CHKHDR__
  232.          #pragma checkout( resume )
  233.       #endif
  234.    #pragma checkout( resume )
  235. #endif
  236. /* XLATON */
  237.  
  238. /**************************** end of file **********************************/
  239.