#ifndef GRAPHICS_TEXT_H
#define GRAPHICS_TEXT_H
/*
** $Filename: graphics/text.h $
** $Release: 2.04 Includes, V37.4 $
** $Revision: 37.0 $
** $Date: 91/01/07 $
**
** graphics library text structures
**
** (C) Copyright 1985-1991 Commodore-Amiga, Inc.
** All Rights Reserved
*/

#ifndef EXEC_PORTS_H
#include "exec/ports.h"
#endif 

#ifndef GRAPHICS_GFX_H
#include "graphics/gfx.h"
#endif 

#ifndef UTILITY_TAGITEM_H
#include "utility/tagitem.h"
#endif 


#define FS_NORMAL 0 
#define FSB_UNDERLINED 0 
#define FSF_UNDERLINED 0x01
#define FSB_BOLD 1 
#define FSF_BOLD 0x02
#define FSB_ITALIC 2 
#define FSF_ITALIC 0x04
#define FSB_EXTENDED 3 
#define FSF_EXTENDED 0x08

#define FSB_COLORFONT 6 
#define FSF_COLORFONT 0x40
#define FSB_TAGGED 7 
#define FSF_TAGGED 0x80


#define FPB_ROMFONT 0 
#define FPF_ROMFONT 0x01
#define FPB_DISKFONT 1 
#define FPF_DISKFONT 0x02
#define FPB_REVPATH 2 
#define FPF_REVPATH 0x04
#define FPB_TALLDOT 3 
#define FPF_TALLDOT 0x08
#define FPB_WIDEDOT 4 
#define FPF_WIDEDOT 0x10
#define FPB_PROPORTIONAL 5 
#define FPF_PROPORTIONAL 0x20
#define FPB_DESIGNED 6 
 
 
 
 
#define FPF_DESIGNED 0x40
 
#define FPB_REMOVED 7 
#define FPF_REMOVED (1<<7)


struct TextAttr {
 STRPTR ta_Name; 
 UWORD ta_YSize; 
 UBYTE ta_Style; 
 UBYTE ta_Flags; 
};

struct TTextAttr {
 STRPTR tta_Name; 
 UWORD tta_YSize; 
 UBYTE tta_Style; 
 UBYTE tta_Flags; 
 struct TagItem *tta_Tags; 
};



#define TA_DeviceDPI (1|TAG_USER) 
 

#define MAXFONTMATCHWEIGHT 32767 



struct TextFont {
 struct Message tf_Message; 
 
 UWORD tf_YSize; 
 UBYTE tf_Style; 
 UBYTE tf_Flags; 
 UWORD tf_XSize; 
 UWORD tf_Baseline; 
 UWORD tf_BoldSmear; 

 UWORD tf_Accessors; 

 UBYTE tf_LoChar; 
 UBYTE tf_HiChar; 
 APTR tf_CharData; 

 UWORD tf_Modulo; 
 APTR tf_CharLoc; 
 
 APTR tf_CharSpace; 
 APTR tf_CharKern; 
};


#define tf_Extension tf_Message.mn_ReplyPort


#define TE0B_NOREMFONT 0 
#define TE0F_NOREMFONT 0x01

struct TextFontExtension { 
 UWORD tfe_MatchWord; 
 UBYTE tfe_Flags0; 
 UBYTE tfe_Flags1; 
 struct TextFont *tfe_BackPtr; 
 struct MsgPort *tfe_OrigReplyPort; 
 struct TagItem *tfe_Tags; 
 UWORD *tfe_OFontPatchS; 
 UWORD *tfe_OFontPatchK; 
 
};



#define CT_COLORMASK 0x000F 
#define CT_COLORFONT 0x0001 
#define CT_GREYFONT 0x0002 
 
#define CT_ANTIALIAS 0x0004 

#define CTB_MAPCOLOR 0 
#define CTF_MAPCOLOR 0x0001 


struct ColorFontColors {
 UWORD cfc_Reserved; 
 UWORD cfc_Count; 
 UWORD *cfc_ColorTable; 
};


struct ColorTextFont {
 struct TextFont ctf_TF;
 UWORD ctf_Flags; 
 UBYTE ctf_Depth; 
 UBYTE ctf_FgColor; 
 UBYTE ctf_Low; 
 UBYTE ctf_High; 
 UBYTE ctf_PlanePick; 
 UBYTE ctf_PlaneOnOff; 
 struct ColorFontColors *ctf_ColorFontColors; 
 APTR ctf_CharData[8]; 
};


struct TextExtent {
 UWORD te_Width; 
 UWORD te_Height; 
 struct Rectangle te_Extent; 
};

#endif 
