#ifndef __INC_POS_PSCREEN_DRAWINFO_H
#define __INC_POS_PSCREEN_DRAWINFO_H
/*******************************************************************
 Includes Release 24
 (C) Copyright 1995-1997 proDAD
     All Rights Reserved

 $AUT Holger Burkarth
 $DAT >>DrawInfo.h<<   14 Mar 1997    18:58:22 - (C) ProDAD
*******************************************************************/
#ifndef __INC_POS_PEXEC_LIST_H
#include <pExec/List.h>
#endif
#ifndef __INC_POS_PLAYER_RECT_H
#include <pLayer/Rect.h>
#endif



/*----------------------------------
-----------------------------------*/
struct pOS_DrawInfo
{
  UBYTE                 dri_Version;    /* 0 */
  UBYTE                 dri_Design;     /* 2 */
  UWORD                 dri_NumPens;    /* ==SCRPEN_MAX  */
  const UWORD          *dri_Pens;       /* (enum pOS_ScreenPens) pointer to pen array */
  UWORD                 dri_NumIObjs;   /* ==SCROBJ_MAX  */
  __CONST__
   struct pOS_IntuiObj  **dri_IObjs;      /* (enum pOS_ScreenIObjs) */

  struct pOS_TextFont   *dri_Font;       /* screen default font */
  struct pOS_Screen     *dri_Screen;     /* for graphics datas */
  struct pOS_GfxLibrary *dri_Base;
  struct pOS_Point      dri_Resolution;  /* Viewable Resolution */
  ULONG                 dri_Flags;       /* */
  UBYTE                 dri_StdWidth;
  UBYTE                 dri_StdHeight;
  __CONST__ CHAR      **dri_Names;      /* (enum pOS_ScreenINames) */
  UWORD                 dri_NumNames;   /* ==SCRNAM_MAX  */

  UBYTE                 dri_XAspect;
  UBYTE                 dri_YAspect;
  UWORD                 dri_NumColorPens; /* Anzahl der Pens in der ColorMap => Register */
/** SYSTEM-PRIVATE-DATAS **/
};



#define pOS_DRISTDFAC 16

#define pOS_DRIGETSTDWIDTH(dri,width) \
  ( (UWORD)(dri)->dri_StdWidth*(width)/pOS_DRISTDFAC )

#define pOS_DRIGETSTDHEIGHT(dri,height) \
  ( (UWORD)(dri)->dri_StdWidth*(height)/pOS_DRISTDFAC )


/*\
*** FixPoint arithmetic for Standard-Width/Height
***
*** Example:
***
*** Set the String-Gadget min. width:
***
***   STRGADTAG_MinStdWidth = pOS_DRISTDFAC * 5;
***                                           ^
***                               5 StdWidth => 5 Chars
***
***
*** The gadget-dispatcher used
***  PixelWidth = pOS_DRIGETSTDWIDTH( DrawInfo , STRGADTAG_MinStdWidth )
*** for calculate the pixel-width.
***
\*/






enum pOS_ScreenPens
{
  SCRPEN_Text=0,        /* text on background  */
  SCRPEN_Shine,         /* bright edge on 3D objects  */
  SCRPEN_Shadow,        /* dark edge on 3D objects */
  SCRPEN_Fill,          /* selected-gadget fill */
  SCRPEN_FillText,      /* text over FILLPEN */
  SCRPEN_Background,    /* always color 0 */
  SCRPEN_HighLightText, /* special color text, on background */
  SCRPEN_BarDetail,     /* text/detail in screen-bar/menus */
  SCRPEN_BarBlock,      /* screen-bar/menus fill */
  SCRPEN_BarTrim,       /* trim under screen-bar */
  SCRPEN_SelectAble,    /* Feld kann angewält werden */
  SCRPEN_IsSelected,    /* Feld das ausgewählt ist (schwarz) */
  SCRPEN_IsSelected2,   /* Feld das ausgewählt ist (~schwarz) für scrollers */
  SCRPEN_Border,        /* Umrandung (schwarz) */
  SCRPEN_SelectAbleTxt, /* Text auf einem Select-Feld*/
  SCRPEN_BubbleText,    /* Text im Bubble */
  SCRPEN_BubbleBorder,  /* Bubble Rahmen */
  SCRPEN_BubbleFill,    /* Bubble Inhalt */
  SCRPEN_DirNameSA,     /* SelectAble: Directory-Entry on background SCRPEN_Background */
  SCRPEN_FileNameSA,    /* SelectAble: Directory-Entry on background SCRPEN_Background */
  SCRPEN_DirNameIS,     /* IsSelect: Directory-Entry on background SCRPEN_Background */
  SCRPEN_FileNameIS,    /* IsSelect: Directory-Entry on background SCRPEN_Background */
  SCRPEN_Black,         /* always black */
  SCRPEN_White,         /* always white */
  SCRPEN_HalfShine,     /* bright edge on 3D objects */
  SCRPEN_HalfShadow,    /* dark edge on 3D objects */
  SCRPEN_ActiveWindow,
  SCRPEN_InactiveWindow,
  SCRPEN_WindowBackground,
  SCRPEN_ActiveWindowGround, /* z.B. Schieber Hintergrund bei aktivem Window */
  SCRPEN_GadgetGround,  /* Gadget-Hintergrund */
  SCRPEN_TxtBoxGround,  /* TextBox-Gadget-Hintergrund */
  SCRPEN_MenuGround,
  SCRPEN_LdBackground,    /* Load-Req-Background */
  SCRPEN_LdDirNameSA,     /* SelectAble: Directory-Entry on background SCRPEN_LdBackground */
  SCRPEN_LdFileNameSA,    /* SelectAble: Directory-Entry on background SCRPEN_LdBackground */
  SCRPEN_LdDirNameIS,     /* IsSelect: Directory-Entry on background SCRPEN_LdBackground */
  SCRPEN_LdFileNameIS,    /* IsSelect: Directory-Entry on background SCRPEN_LdBackground */
  SCRPEN_SvBackground,    /* Save-Req-Background */
  SCRPEN_SvDirNameSA,     /* SelectAble: Directory-Entry on background SCRPEN_SvBackground */
  SCRPEN_SvFileNameSA,    /* SelectAble: Directory-Entry on background SCRPEN_SvBackground */
  SCRPEN_SvDirNameIS,     /* IsSelect: Directory-Entry on background SCRPEN_SvBackground */
  SCRPEN_SvFileNameIS,    /* IsSelect: Directory-Entry on background SCRPEN_SvBackground */
  SCRPEN_GadgetFocus,     /* Highlight-Pen for Gadget-Focus */

  SCRPEN_MAX
};


enum pOS_ScreenIObjs
{
  SCROBJ_CloseImg=0,        /* Window-CloseImage */
  SCROBJ_ZipImg,            /* */
  SCROBJ_WDepthImg,         /* */
  SCROBJ_WSizeImg,          /* */
  SCROBJ_MenuHook,          /* */
  SCROBJ_SubMenuIdent,      /* */
  SCROBJ_CheckBox,          /* */
  SCROBJ_MX,                /* */


  SCROBJ_MAX
};

enum pOS_ScreenINames
{
  SCRNAM_IObjClass=0,           /* Image-Class for (enum pOS_ScreenIObjs)-Objects (iimage.class) */
  SCRNAM_BrdGadClass,           /* Gadget-Class for create the Border-Gadgets (sysgad.class) */
  SCRNAM_MenuClass,             /*  */
  SCRNAM_GGroupClass,           /* Gadget-Group */
  SCRNAM_GPropClass,            /*  */
  SCRNAM_GButtonClass,          /*  */
  SCRNAM_GTxtBoxClass,          /*  */
  SCRNAM_GStrClass,             /*  */
  SCRNAM_GCheckBoxClass,        /*  */
  SCRNAM_GLVClass,              /*  */
  SCRNAM_GPathClass,            /*  */
  SCRNAM_GFVClass,              /*  */
  SCRNAM_GPopupClass,           /*  */
  SCRNAM_GMXClass,              /*  */
  SCRNAM_GBarClass,             /*  */
  SCRNAM_IGfxClass,             /*  */
  SCRNAM_GGfxClass,             /*  */
  SCRNAM_GSwitchClass,          /*  */
  SCRNAM_GLVPopupClass,         /*  */
  SCRNAM_GClass,                /*  */


  SCRNAM_MAX
};


#endif
