home *** CD-ROM | disk | FTP | other *** search
/ OpenStep 4.2J (Developer) / os42jdev.iso / NextDeveloper / OpenStepConversion / IntermediateFrameworks3 / AppKit.framework / Headers / NSFont.h < prev    next >
Text File  |  1994-09-29  |  4KB  |  116 lines

  1. /*
  2.     Font.h
  3.     Application Kit, Release 2.1J
  4.     Copyright (c) 1988, 1989, 1990, NeXT, Inc.  All rights reserved. 
  5. */
  6.  
  7. #import <Foundation/Foundation.h>
  8. #import "NSFontManager.h"
  9.  
  10. extern const float *NSFontIdentityMatrix;
  11.  
  12. /* 
  13.  * Figure is also known as non-breaking space.
  14.  * NX_EMSPACE, NX_ENSPACE and NX_THINSPACE have been removed as part of
  15.  * the switch to the NextStep encoding.
  16.  */
  17.  
  18. #define NSFontFigureSpace    ((unsigned short)0x80)
  19.  
  20. typedef unsigned int NSGlyph;
  21.  
  22. @interface NSFont : NSObject
  23. {
  24.     NSString *              name;
  25.     float               size;
  26.     int                 style;
  27.     float              *matrix;
  28.     int                 fontNum;
  29.     struct _NSFaceInfo *faceInfo;
  30.     id                  otherFont;
  31.     struct _fFlags {
  32. #ifdef __BIG_ENDIAN__
  33.       /* the following two instance variables are no longer part of the API */
  34.     unsigned int        usedByWS:1;
  35.     unsigned int        usedByPrinter:1;
  36.     unsigned int        isScreenFont:1;
  37.     unsigned int        _systemFontType:4;
  38.     unsigned int        _RESERVED:6;
  39.     unsigned int        _matrixIsIdentity:1;
  40.     unsigned int        _matrixIsFlipped:1;
  41.     unsigned int        _hasStyle:1;
  42. #else
  43.     unsigned int        _hasStyle:1;
  44.     unsigned int        _matrixIsFlipped:1;
  45.     unsigned int        _matrixIsIdentity:1;
  46.     unsigned int        _RESERVED:6;
  47.     unsigned int        _systemFontType:4;
  48.     unsigned int        isScreenFont:1;
  49.       /* the following two instance variables are no longer part of the API */
  50.     unsigned int        usedByPrinter:1;
  51.     unsigned int        usedByWS:1;
  52. #endif
  53.     }                   fFlags;
  54.     unsigned short      _reservedFont2;
  55.     unsigned int        _reservedFont3;
  56. }
  57.  
  58. + (NSFont *)fontWithName:(NSString *)fontName size:(float)fontSize;
  59. + (NSFont *)fontWithName:(NSString *)fontName matrix:(const float *)fontMatrix;
  60. + useFont:(NSString *)fontName;
  61.  
  62. + (NSFont *)userFontOfSize:(float)fontSize;
  63. + (NSFont *)userFixedPitchFontOfSize:(float)fontSize;
  64. + (NSFont *)systemFontOfSize:(float)fontSize;
  65. + (NSFont *)boldSystemFontOfSize:(float)fontSize;
  66. + (void)setUserFont:(NSFont *)aFont;
  67. + (void)setUserFixedPitchFont:(NSFont *)aFont;
  68.  
  69. - (float)pointSize;
  70. - (NSString *)fontName;
  71. - (NSString *)familyName;
  72. - (NSString *)displayName;
  73.  
  74. - (const float *)matrix;
  75. - set;
  76. - (float)widthOfString:(NSString *)string;
  77. - (NSFont *)screenFont;
  78. - (NSFont *)printerFont;
  79.  
  80. - (BOOL)isBaseFont;
  81.  
  82. /* The "widths" method returns a pointer to an array of 256 widths.  They are unscaled but are pre-divided by 1000.  All other methods return scaled numbers.  If the font was created with a matrix, the matrix is applied automatically; otherwise the coordinates are multiplied by size.
  83. */
  84.  
  85. - (float *)widths;
  86. - (NSRect)boundingRectForFont;
  87. - (NSRect)boundingRectForGlyph:(NSGlyph)aGlyph;
  88. - (NSSize)advancementForGlyph:(NSGlyph)ag;
  89. - (NSPoint)positionOfGlyph:(NSGlyph)curGlyph precededByGlyph:(NSGlyph)prevGlyph isNominal:(BOOL *)nominal;
  90. - (NSDictionary *)afmDictionary;
  91. - (NSString *)afmFileContents;
  92. - (BOOL)glyphIsEncoded:(NSGlyph)aGlyph;
  93.  
  94. @end
  95.  
  96. /* These are the strings that are available in the "afmDictionary".  For other things, use "afmFileContents".  The floating point values (e.g., ascender, cap height) can be converted to floating point via NSString's "floatValue" method.
  97. */
  98. extern NSString *NSAFMFamilyName;
  99. extern NSString *NSAFMFontName;
  100. extern NSString *NSAFMFormatVersion;
  101. extern NSString *NSAFMFullName;
  102. extern NSString *NSAFMNotice;
  103. extern NSString *NSAFMVersion;
  104. extern NSString *NSAFMWeight;
  105. extern NSString *NSAFMEncodingScheme;
  106. extern NSString *NSAFMCharacterSet;
  107.  
  108. extern NSString *NSAFMCapHeight;
  109. extern NSString *NSAFMXHeight;
  110. extern NSString *NSAFMAscender;
  111. extern NSString *NSAFMDescender;
  112. extern NSString *NSAFMUnderlinePosition;
  113. extern NSString *NSAFMUnderlineThickness;
  114. extern NSString *NSAFMItalicAngle;
  115. extern NSString *NSAFMMappingScheme;
  116.