#ifndef GRAPHICS_TEXT_H
#define GRAPHICS_TEXT_H

/*******************************************************************
 pOS / Amiga adapt
*******************************************************************/

#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif
#ifndef __INC_POS_PGFX_TEXT_H
#include <pGFX/Text.h>
#endif
#ifndef EXEC_PORTS_H
#include <exec/ports.h>
#endif  /* EXEC_PORTS_H */
#ifndef GRAPHICS_GFX_H
#include <graphics/gfx.h>
#endif  /* GRAPHICS_GFX_H */
#ifndef UTILITY_TAGITEM_H
#include <utility/tagitem.h>
#endif  /* UTILITY_TAGITEM_H */

/*------ Font Styles ------------------------------------------------*/
#define FS_NORMAL       FNTSTY_Normal
#define FSB_UNDERLINED  FNTSTYB_Underline
#define FSF_UNDERLINED  FNTSTYF_Underline
#define FSB_BOLD        FNTSTYB_Bold
#define FSF_BOLD        FNTSTYF_Bold
#define FSB_ITALIC      FNTSTYB_Italic
#define FSF_ITALIC      FNTSTYF_Italic
#define FSB_EXTENDED    FNTSTYB_Extended
#define FSF_EXTENDED    FNTSTYF_Extended

#define FSB_COLORFONT   FNTSTYB_Colorfont
#define FSF_COLORFONT   FNTSTYF_Colorfont

/*------ Font Flags -------------------------------------------------*/
#define FPB_ROMFONT     FNTFLGB_RomFont
#define FPF_ROMFONT     FNTFLGF_RomFont
#define FPB_DISKFONT    FNTFLGB_DiskFont
#define FPF_DISKFONT    FNTFLGF_DiskFont
#define FPB_REVPATH     FNTFLGB_RevPath
#define FPF_REVPATH     FNTFLGF_RevPath
#define FPB_TALLDOT     FNTFLGB_TallDot
#define FPF_TALLDOT     FNTFLGF_TallDot
#define FPB_WIDEDOT     FNTFLGB_WideDot
#define FPF_WIDEDOT     FNTFLGF_WideDot
#define FPB_PROPORTIONAL FNTFLGB_Proportional
#define FPF_PROPORTIONAL FNTFLGF_Proportional
#define FPB_DESIGNED    FNTFLGB_Designed
#define FPF_DESIGNED    FNTFLGF_Designed

struct TextAttr
{
  UBYTE          *ta_Name;
  UWORD           ta_YSize;
  UWORD           ta_Style;
  UWORD           ta_Flags;
  struct TagItem *ta_Tags;
};


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


#define TA_DeviceDPI (1|TAG_USER)
#define MAXFONTMATCHWEIGHT 32767

struct TextFont
{
  struct {
    struct Node   mn_Node;
  } tf_Message;
  UWORD           tf_YSize;
  UWORD           tf_Style;
  UWORD           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;
/* ... */
};

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

#ifdef __IGNORE_NOT_SUPPORTED__
 #define        FSB_TAGGED       0
 #define        FSF_TAGGED       0
#else
 #define        FSB_TAGGED       _PxA_IGNORE
 #define        FSF_TAGGED       _PxA_IGNORE
#endif /* __IGNORE_NOT_SUPPORTED__ */

#endif  /* GRAPHICS_TEXT_H */
