#ifndef PATCHDATA_H
#define PATCHDATA_H

#include <graphics/view.h>
#include <graphics/videocontrol.h>
#include <graphics/displayinfo.h>
#include "MP.H"

#define CLI_NAMESIZE 256

struct PatchData
{
  struct Rectangle     ODClip;
  struct DefaultNode  *DNode;
  struct DimensionInfo DimInfo;
  struct DisplayInfo   DispInfo;


  struct Screen       *Screen;

  struct ScreenModeRequester *SReq;
  union
  {
    struct ColorSpec ColorSpec [257];
    ULONG            Colors32  [257*3+2];
  };
  
  WORD  Width,  Height,  Depth;
  BOOL  SetDepth;

  LONG  AutoScroll, 
        SetLook3D,  
        ModeID,
        OverscanType,
        Interleave,
        IsWorkbench,
        Behind,
        BlankBorder;
        
  BOOL  Changed,ModeChanged;
  BOOL  Promote;
       
  WORD  NullPens[1],
        *ScreenPens,
        DriPens[DRIPENS+1];   
       
  struct TagItem NewTags[32],
                 *Tag;
  ULONG TagNumber;

  struct TextAttr *StoredFont;              
  struct TextFont *TextFont;              

  ULONG  EHB_HAM;

  UBYTE   CLI_Name[CLI_NAMESIZE],
         *TaskName;
  UBYTE  *ScrTitle;
       
  struct  OpenNode *OpenNode;
 
  struct  BitMap *BitMap;
  struct  BitMap *HasCustomBM;
};

/**** ****/
void mpObtainPens(struct PatchData *pd);
BOOL SendMPMsg(ULONG Command, ULONG Code, APTR Data);
/**** ****/



/**** Debug info ****/
void    PrintTags(struct TagItem *tags);
void PrintWindowTags(struct TagItem *TagList);
void PrintNewWindowData(struct ExtNewWindow *nw);

UBYTE   *FindTagString(ULONG id);
void    PrintDefNode(struct DefaultNode *DN);
void PrintOverscanInfo(struct PatchData *pd);

void DoNothing(ULONG *L);

#endif /* PATCHDATA_H */
