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

 $AUT Holger Burkarth
 $DAT >>Window.h<<   26 Jan 1997    14:17:57 - (C) ProDAD
*******************************************************************/
#ifndef __INC_POS_PLAYER_REGION_H
#include <pLayer/Region.h>
#endif


/*----------------------------------
-----------------------------------*/
struct pOS_Window
{
  struct pOS_ExNode      win_Node;

  SLONG                  win_LeftEdge;
  SLONG                  win_TopEdge;          /* parameters of the screen */
  ULONG                  win_Width;
  ULONG                  win_Height;           /* parameters of the screen */

  SLONG                  win_MouseX;
  SLONG                  win_MouseY;           /* position relative to upper-left */

  const CHAR            *win_Title;            /* the title text for this window */
  struct pOS_RastPort   *win_RastPort;         /* */

  UBYTE                  win_Reserved1[32];

  ULONG                  win_UserData[2];
/*----------------------------------*/

  SLONG                  win_GZZMouseX;
  SLONG                  win_GZZMouseY;        /* inner-Window of WFLG_GIMMEZEROZERO */
  ULONG                  win_GZZWidth;
  ULONG                  win_GZZHeight;

  struct pOS_List        win_GadList;

  ULONG  win_MinWidth,win_MinHeight;
  ULONG  win_MaxWidth,win_MaxHeight;

  ULONG                  win_Flags;            /* (enum pOS_WindowFlags) */
  UBYTE                  win_MorFlags[16];

  UBYTE win_BorTop,win_BorLeft,win_BorRight,win_BorBottom;

  const CHAR            *win_ScreenTitle;      /* if non-null, Screen title when Window is active */

  struct pOS_Screen     *win_Screen;           /* this Window's Screen */
  struct pOS_Layer      *win_Layer;
  struct pOS_TextFont   *win_Font;
  struct pOS_MsgPort    *win_UserPort;
  ULONG                  win_IDCMP;
  UBYTE                  win_MorIDCMP[16];
  struct pOS_Rectangle   win_ZipRect;
  struct pOS_RastPort   *win_BorderRPort;      /* Wird nur bei GZZ verwendet */
  struct pOS_Layer      *win_BorderLayer;      /* Wird nur bei GZZ verwendet */
  struct pOS_ExList      win_OMenuList;

  struct pOS_IClassInfo *win_ICI;              /* Read only */
/**** SYSTEM-DATAS ****/
};



enum pOS_WindowFlags /* win_Flags, win_MorFlags */
{
  WINFLGF_SizeGadget=        0x000001, /* include sizing system-gadget? */
  WINFLGF_Dragbar=           0x000002, /* include dragging system-gadget? */
  WINFLGF_DepthGadget=       0x000004, /* include depth arrangement gadget? */
  WINFLGF_CloseGadget=       0x000008, /* include close-box system-gadget? */
  WINFLGF_SizeBRight=        0x000010, /* size gadget uses right border */
  WINFLGF_SizeBBottom=       0x000020, /* size gadget uses bottom border */
  WINFLGF_RefreshBits=       0x0000C0,
  WINFLGF_SmartRefresh=      0x000000,
  WINFLGF_SimpleRefresh=     0x000040,
  WINFLGF_SuperBitmap=       0x000080,
  WINFLGF_OtherRefresh=      0x0000C0,
  WINFLGF_Backdrop=          0x000100, /* this is a backdrop window */
  WINFLGF_ReportMouse=       0x000200, /* to hear about every mouse move */
  WINFLGF_GimmeZeroZero=     0x000400, /* a GimmeZeroZero window       */
  WINFLGF_Borderless=        0x000800, /* to get a Window sans border */
  WINFLGF_Activate=          0x001000, /* when Window opens, it's Active */
  WINFLGF_RMBTrap=           0x010000, /* Catch RMB events for your own */
  WINFLGF_NoCareRefresh=     0x020000, /* not to be bothered with REFRESH */

  WINFLGB_MORE=0x20,
  WINFLGB_DragM1=WINFLGB_MORE,  /* Window mit Inhalt verschieben */
  WINFLGB_SharedUserPort,       /* UserPort wird übergeben */
  WINFLGB_Visitor,              /* Window is PubScreen-Visitor */
  WINFLGB_WinMenu,              /* Menu an die Window-Pos binden */
  WINFLGB_OwnScreen,            /* Window has a own screen */
  WINFLGB_DisableDrop,          /* im Win ist kein Drop möglich */
  WINFLGB_DisableActive,        /* Window kann nicht aktiviert werden */
  WINFLGB_DisableDrag,          /* im Win ist kein Drag möglich */
  WINFLGB_DisSizeM1,            /* Disable Sizing mit Inhalt */
  WINFLGB_FreeBgFillGfxMap,     /* win_BgFillGfxMap wird beim CloseWindow freigegeben */
  WINFLGB_AlwaysDraw            /* die gesamte Win-Fläche ist Drag-Sensitiv  */
};




#endif
