#ifndef INTUITION_INTUITIONBASE_H
#define INTUITION_INTUITIONBASE_H 1
#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif
#ifndef EXEC_LIBRARIES_H
#include <exec/libraries.h>
#endif
#ifndef INTUITION_INTUITION_H
#include <intuition/intuition.h>
#endif
#ifndef EXEC_INTERRUPTS_H
#include <exec/interrupts.h>
#endif
#ifdef INTUITIONPRIVATE
#define DMODECOUNT 0x0002L
#define HIRESPICK 0x0000L
#define LOWRESPICK 0x0001L
#define EVENTMAX 10L
#define RESCOUNT 2L
#define HIRESGADGET 0L
#define LOWRESGADGET 1L
#define GADGETCOUNT 8L
#define UPFRONTGADGET 0L
#define DOWNBACKGADGET 1L
#define SIZEGADGET 2L
#define CLOSEGADGET 3L
#define DRAGGADGET 4L
#define SUPFRONTGADGET 5L
#define SDOWNBACKGADGET 6L
#define SDRAGGADGET 7L
#define ISTATELOCK 0L
#define LAYERINFOLOCK 1L
#define GADGETSLOCK 2L
#define LAYERROMLOCK 3L
#define VIEWLOCK 4L
#define IBASELOCK 5L
#define RPLOCK 6L
#define NUMILOCKS 7L
struct FatIntuiMessage {
struct IntuiMessage;
ULONG PrevKeys;
};
struct IBox {
SHORT Left;
SHORT Top;
SHORT Width;
SHORT Height;
};
struct Point {
SHORT X;
SHORT Y;
};
struct PenPair {
UBYTE DetailPen;
UBYTE BlockPen;
};
struct GListEnv {
struct Screen *ge_Screen;
struct Window *ge_Window;
struct Requester *ge_Requester;
struct RastPort *ge_RastPort;
struct Layer *ge_Layer;
struct Layer *ge_GZZLayer;
struct PenPair ge_Pens;
struct IBox ge_Domain;
struct IBox ge_GZZdims;
};
struct GadgetInfo {
struct GListEnv *gi_Environ;
struct Gadget *gi_Gadget;
struct IBox gi_Box;
struct IBox gi_Container;
struct Layer *gi_Layer;
struct IBox gi_NewKnob;
};
#endif
struct IntuitionBase
{
struct Library LibNode;
struct View ViewLord;
struct Window *ActiveWindow;
struct Screen *ActiveScreen;
struct Screen *FirstScreen;
ULONG Flags;
WORD MouseY, MouseX;
ULONG Seconds;
ULONG Micros;
#ifdef INTUITIONPRIVATE
WORD MinXMouse, MaxXMouse;
WORD MinYMouse, MaxYMouse;
ULONG StartSecs, StartMicros;
APTR SysBase;
struct GfxBase *GfxBase;
APTR LayersBase;
APTR ConsoleDevice;
USHORT *APointer;
BYTE APtrHeight;
BYTE APtrWidth;
BYTE AXOffset, AYOffset;
USHORT MenuDrawn;
USHORT MenuSelected;
USHORT OptionList;
struct RastPort MenuRPort;
struct TmpRas MenuTmpRas;
struct ClipRect ItemCRect;
struct ClipRect SubCRect;
struct BitMap IBitMap;
struct BitMap SBitMap;
struct IOStdReq InputRequest;
struct Interrupt InputInterrupt;
struct Remember *EventKey;
struct InputEvent *IEvents;
#define NUM_IEVENTS 4
SHORT EventCount;
struct InputEvent IEBuffer[NUM_IEVENTS];
struct Gadget *ActiveGadget;
struct PropInfo *ActivePInfo;
struct Image *ActiveImage;
struct GListEnv GadgetEnv;
struct GadgetInfo GadgetInfo;
struct Point KnobOffset;
struct Window *getOKWindow;
struct IntuiMessage *getOKMessage;
USHORT setWExcept, GadgetReturn, StateReturn;
struct RastPort *RP;
struct TmpRas ITmpRas;
struct Region *OldClipRegion;
struct Point OldScroll;
struct IBox IFrame;
SHORT hthick, vthick;
VOID (*frameChange)();
VOID (*sizeDrag)();
struct Point FirstPt;
struct Point OldPt;
struct Gadget *SysGadgets[RESCOUNT][GADGETCOUNT];
struct Image *CheckImage[RESCOUNT], *AmigaIcon[RESCOUNT];
#ifdef OLDPATTERN
USHORT apattern[3], bpattern[4];
#else
USHORT apattern[8], bpattern[4];
#endif
USHORT *IPointer;
BYTE IPtrHeight;
BYTE IPtrWidth;
BYTE IXOffset, IYOffset;
LONG DoubleSeconds, DoubleMicros;
BYTE WBorLeft[DMODECOUNT];
BYTE WBorTop[DMODECOUNT];
BYTE WBorRight[DMODECOUNT];
BYTE WBorBottom[DMODECOUNT];
BYTE BarVBorder[DMODECOUNT];
BYTE BarHBorder[DMODECOUNT];
BYTE MenuVBorder[DMODECOUNT];
BYTE MenuHBorder[DMODECOUNT];
USHORT color0;
USHORT color1;
USHORT color2;
USHORT color3;
USHORT color17;
USHORT color18;
USHORT color19;
struct TextAttr SysFont;
struct Preferences *Preferences;
struct DistantEcho *Echoes;
WORD ViewInitX, ViewInitY;
SHORT CursorDX, CursorDY;
struct KeyMap *KeyMap;
SHORT MouseYMinimum;
SHORT ErrorX, ErrorY;
struct timerequest IOExcess;
SHORT HoldMinYMouse;
struct MsgPort *WBPort, *iqd_FNKUHDPort;
struct IntuiMessage WBMessage;
struct Screen *HitScreen;
struct SimpleSprite *SimpleSprite;
struct SimpleSprite *AttachedSSprite;
BOOL GotSprite1;
struct List SemaphoreList;
struct SignalSemaphore ISemaphore[NUMILOCKS];
WORD MaxDisplayHeight;
WORD MaxDisplayRow;
WORD MaxDisplayWidth;
ULONG Reserved[7];
#endif
};
#endif
