home *** CD-ROM | disk | FTP | other *** search
/ AMIGA PD 1 / AMIGA-PD-1.iso / Programme_zum_Heft / Programmieren / Kurztests / PascalPCQ / Include / Graphics / Text.i < prev    next >
Text File  |  1990-08-28  |  3KB  |  113 lines

  1. {
  2.     Text.i for PCQ Pascal
  3. }
  4.  
  5. {$I "Include:Exec/Ports.i"}
  6.  
  7. const
  8.  
  9. {------ Font Styles ------------------------------------------------}
  10.  
  11.     FS_NORMAL        = 0;    { normal text (no style bits set) }
  12.     FSB_EXTENDED    = 3;    { extended face (wider than normal) }
  13.     FSF_EXTENDED    = 8;
  14.     FSB_ITALIC        = 2;    { italic (slanted 1:2 right) }
  15.     FSF_ITALIC        = 4;
  16.     FSB_BOLD        = 1;    { bold face text (ORed w/ shifted) }
  17.     FSF_BOLD        = 2;
  18.     FSB_UNDERLINED    = 0;    { underlined (under baseline) }
  19.     FSF_UNDERLINED    = 1;
  20.  
  21. {------ Font Flags -------------------------------------------------}
  22.     FPB_ROMFONT        = 0;    { font is in rom }
  23.     FPF_ROMFONT        = 1;
  24.     FPB_DISKFONT    = 1;    { font is from diskfont.library }
  25.     FPF_DISKFONT    = 2;
  26.     FPB_REVPATH        = 2;    { designed path is reversed (e.g. left) }
  27.     FPF_REVPATH        = 4;
  28.     FPB_TALLDOT        = 3;    { designed for hires non-interlaced }
  29.     FPF_TALLDOT        = 8;
  30.     FPB_WIDEDOT        = 4;    { designed for lores interlaced }
  31.     FPF_WIDEDOT        = 16;
  32.     FPB_PROPORTIONAL    = 5;    { character sizes can vary from nominal }
  33.     FPF_PROPORTIONAL    = 32;
  34.     FPB_DESIGNED    = 6;    { size is "designed", not constructed }
  35.     FPF_DESIGNED    = 64;
  36.     FPB_REMOVED        = 7;    { the font has been removed }
  37.     FPF_REMOVED        = 128;
  38.  
  39. {***** TextAttr node, matches text attributes in RastPort *********}
  40.  
  41. type
  42.  
  43.     TextAttr = record
  44.     ta_Name    : String;    { name of the font }
  45.     ta_YSize : Short;    { height of the font }
  46.     ta_Style : Byte;    { intrinsic font style }
  47.     ta_Flags : Byte;    { font preferences and flags }
  48.     end;
  49.     TextAttrPtr = ^TextAttr;
  50.  
  51. {***** TextFonts node *********************************************}
  52.  
  53.     TextFont = record
  54.     tf_Message    : Message;    { reply message for font removal }
  55.                     { font name in LN \    used in this }
  56.     tf_YSize    : Short;    { font height     |    order to best }
  57.     tf_Style    : Byte;        { font style      |    match a font }
  58.     tf_Flags    : Byte;        { preferences and flags    /    request. }
  59.     tf_XSize    : Short;    { nominal font width }
  60.     tf_Baseline    : Short; { distance from the top of char to baseline }
  61.     tf_BoldSmear    : Short;    { smear to affect a bold enhancement }
  62.  
  63.     tf_Accessors    : Short;    { access count }
  64.  
  65.     tf_LoChar    : Byte;        { the first character described here }
  66.     tf_HiChar    : Byte;        { the last character described here }
  67.     tf_CharData    : Address;    { the bit character data }
  68.  
  69.     tf_Modulo    : Short; { the row modulo for the strike font data }
  70.     tf_CharLoc    : Address; { ptr to location data for the strike font }
  71.                     { 2 words: bit offset then size }
  72.     tf_CharSpace    : Address; { ptr to words of proportional spacing data }
  73.     tf_CharKern    : Address;    { ptr to words of kerning data }
  74.     end;
  75.     TextFontPtr = ^TextFont;
  76.  
  77. Procedure AddFont(textFont : TextFontPtr);
  78.     External;
  79.  
  80. Procedure AskFont(rp : Address; textAttr : TextAttrPtr);
  81.     External;    { rp is a RastPortPtr }
  82.  
  83. Function AskSoftStyle(rp : Address) : Integer;
  84.     External;    { rp is a RastPortPtr }
  85.  
  86. Procedure ClearEOL(rp : Address);
  87.     External;
  88.  
  89. Procedure ClearScreen(rp : Address);
  90.     External;
  91.  
  92. Procedure CloseFont(font : TextFontPtr);
  93.     External;
  94.  
  95. Function OpenFont(textAttr : TextAttrPtr) : TextFontPtr;
  96.     External;
  97.  
  98. Procedure RemFont(textFont : TextFontPtr);
  99.     External;
  100.  
  101. Procedure SetFont(rp : Address; font : TextFontPtr);
  102.     External;    { rp is a RastPortPtr }
  103.  
  104. Function SetSoftStyle(rp : Address; style, enable : Integer) : Integer;
  105.     External;
  106.  
  107. Procedure GText(rp : Address; str : String; count : Short);
  108.     External;
  109.  
  110. Function TextLength(rp : Address; str : String; count : Short) : Short;
  111.     External;
  112.  
  113.