#ifndef INTUITION_SCREENS_H
#define INTUITION_SCREENS_H TRUE
/*
** $Filename: intuition/screens.h $
** $Release: 2.04 Includes, V37.4 $
** $Revision: 36.36 $
** $Date: 91/10/07 $
**
** The Screen and NewScreen structures and attributes
**
** (C) Copyright 1985-1991 Commodore-Amiga, Inc.
** All Rights Reserved
*/

#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif

#ifndef GRAPHICS_GFX_H
#include <graphics/gfx.h>
#endif

#ifndef GRAPHICS_CLIP_H
#include <graphics/clip.h>
#endif

#ifndef GRAPHICS_VIEW_H
#include <graphics/view.h>
#endif

#ifndef GRAPHICS_RASTPORT_H
#include <graphics/rastport.h>
#endif

#ifndef GRAPHICS_LAYERS_H
#include <graphics/layers.h>
#endif

#ifndef UTILITY_TAGITEM_H
#include <utility/tagitem.h>
#endif










#define RI_VERSION (1) 
#define DRI_VERSION (1)

struct DrawInfo
{
 UWORD dri_Version; 
 UWORD dri_NumPens; 
 UWORD *dri_Pens; 

 struct TextFont *dri_Font; 
 UWORD dri_Depth; 

 struct { 
 UWORD X;
 UWORD Y;
 } dri_Resolution;

 ULONG dri_Flags; 
 ULONG dri_Reserved[7]; 
};

#define DRIF_NEWLOOK 0x00000001 


#define DETAILPEN (0x0000) 
#define BLOCKPEN (0x0001) 
#define TEXTPEN (0x0002) 
#define SHINEPEN (0x0003) 
#define SHADOWPEN (0x0004) 
#define FILLPEN (0x0005) 
#define FILLTEXTPEN (0x0006) 
#define BACKGROUNDPEN (0x0007) 
#define HIGHLIGHTTEXTPEN (0x0008) 

#define NUMDRIPENS (0x0009)





struct Screen
{
 struct Screen *NextScreen; 
 struct Window *FirstWindow; 

 WORD LeftEdge, TopEdge; 
 WORD Width, Height; 

 WORD MouseY, MouseX; 

 UWORD Flags; 

 UBYTE *Title; 
 UBYTE *DefaultTitle; 

 
 
 BYTE BarHeight, BarVBorder, BarHBorder, MenuVBorder, MenuHBorder;
 BYTE WBorTop, WBorLeft, WBorRight, WBorBottom;

 struct TextAttr *Font; 

 
 struct ViewPort ViewPort; 
 struct RastPort RastPort; 
 struct BitMap BitMap; 
 struct Layer_Info LayerInfo; 

 
 struct Gadget *FirstGadget;

 UBYTE DetailPen, BlockPen; 

 
 UWORD SaveColor0;

 
 struct Layer *BarLayer;

 UBYTE *ExtData;

 UBYTE *UserData; 

 
};




#define SCREENTYPE 0x000F 

#define WBENCHSCREEN 0x0001 
#define PUBLICSCREEN 0x0002 
#define CUSTOMSCREEN 0x000F 

#define SHOWTITLE 0x0010 

#define BEEPING 0x0020 

#define CUSTOMBITMAP 0x0040 

#define SCREENBEHIND 0x0080 
#define SCREENQUIET 0x0100 
#define SCREENHIRES 0x0200 

#define NS_EXTENDED 0x1000 


#define AUTOSCROLL 0x4000 

#define STDSCREENHEIGHT -1 
#define STDSCREENWIDTH -1 





#define SA_Dummy (TAG_USER + 32)

#define SA_Left (SA_Dummy + 0x0001)
#define SA_Top (SA_Dummy + 0x0002)
#define SA_Width (SA_Dummy + 0x0003)
#define SA_Height (SA_Dummy + 0x0004)
 
#define SA_Depth (SA_Dummy + 0x0005)
 
#define SA_DetailPen (SA_Dummy + 0x0006)
 
#define SA_BlockPen (SA_Dummy + 0x0007)
#define SA_Title (SA_Dummy + 0x0008)
 
#define SA_Colors (SA_Dummy + 0x0009)
 
#define SA_ErrorCode (SA_Dummy + 0x000A)
 
#define SA_Font (SA_Dummy + 0x000B)
 
#define SA_SysFont (SA_Dummy + 0x000C)
 
#define SA_Type (SA_Dummy + 0x000D)
 
#define SA_BitMap (SA_Dummy + 0x000E)
 
#define SA_PubName (SA_Dummy + 0x000F)
 
#define SA_PubSig (SA_Dummy + 0x0010)
#define SA_PubTask (SA_Dummy + 0x0011)
 
#define SA_DisplayID (SA_Dummy + 0x0012)
 
#define SA_DClip (SA_Dummy + 0x0013)
 
#define SA_Overscan (SA_Dummy + 0x0014)
 
#define SA_Obsolete1 (SA_Dummy + 0x0015)
 


#define SA_ShowTitle (SA_Dummy + 0x0016)
 
#define SA_Behind (SA_Dummy + 0x0017)
 
#define SA_Quiet (SA_Dummy + 0x0018)
 
#define SA_AutoScroll (SA_Dummy + 0x0019)
 
#define SA_Pens (SA_Dummy + 0x001A)
 
#define SA_FullPalette (SA_Dummy + 0x001B)
 


#ifndef NSTAG_EXT_VPMODE
#define NSTAG_EXT_VPMODE (TAG_USER | 1)
#endif



#define OSERR_NOMONITOR (1) 
#define OSERR_NOCHIPS (2) 
#define OSERR_NOMEM (3) 
#define OSERR_NOCHIPMEM (4) 
#define OSERR_PUBNOTUNIQUE (5) 
#define OSERR_UNKNOWNMODE (6) 





struct NewScreen
{
 WORD LeftEdge, TopEdge, Width, Height, Depth; 

 UBYTE DetailPen, BlockPen; 

 UWORD ViewModes; 

 UWORD Type; 

 struct TextAttr *Font; 

 UBYTE *DefaultTitle; 

 struct Gadget *Gadgets; 

 
 struct BitMap *CustomBitMap;
};


struct ExtNewScreen
{
 WORD LeftEdge, TopEdge, Width, Height, Depth;
 UBYTE DetailPen, BlockPen;
 UWORD ViewModes;
 UWORD Type;
 struct TextAttr *Font;
 UBYTE *DefaultTitle;
 struct Gadget *Gadgets;
 struct BitMap *CustomBitMap;

 struct TagItem *Extension;
 
};


#define OSCAN_TEXT (1) 
#define OSCAN_STANDARD (2) 
#define OSCAN_MAX (3) 
#define OSCAN_VIDEO (4) 






struct PubScreenNode {
 struct Node psn_Node; 
 struct Screen *psn_Screen;
 UWORD psn_Flags; 
 WORD psn_Size; 
 WORD psn_VisitorCount; 
 struct Task *psn_SigTask; 
 UBYTE psn_SigBit; 
};

#define PSNF_PRIVATE (0x0001)


#define MAXPUBSCREENNAME (139) 


#define SHANGHAI 0x0001 
#define POPPUBSCREEN 0x0002 



#ifndef INTUITION_IOBSOLETE_H
#include <intuition/iobsolete.h>
#endif

#endif
