
#include <exec/nodes.h>
#include <libraries/iffparse.h>

#define ID_SCRN     MAKE_ID('S','C','R','N')

    /* Id for inside SRES : Screen Resources */

#define ID_PUBN     MAKE_ID('P','U','B','N')
#define ID_TAGS     MAKE_ID('T','A','G','S')
#define ID_PENS     MAKE_ID('P','E','N','S')
#define ID_CLR2     MAKE_ID('C','L','R','S')
#define ID_CLR4     MAKE_ID('C','L','R','N')
#define ID_FONT     MAKE_ID('F','O','N','T')

#define ID_COPT     MAKE_ID('C','O','P','T')
#define ID_LOPT     MAKE_ID('L','O','P','T')
#define ID_DIRS     MAKE_ID('D','I','R','S')
#define ID_MODS     MAKE_ID('M','O','D','S')
#define ID_PROJ     MAKE_ID('P','R','O','J')
#define ID_PREF     MAKE_ID('P','R','E','F')
#define ID_WPOS     MAKE_ID('W','P','O','S')

struct Resource {
    struct Node node;
    void *idata;
    void *fdata;
    void *edata;
};

#define RSCREEN     0x001

struct ExtScr {
    struct TextFont *Font;
    struct VisualInfo *VisualInfo;
    char *PubName;
};

struct RScreen {
    struct Node res;
    struct TagItem *idata;
    struct Screen *fdata;
    struct ExtScr *edata;
};

struct ExtWin {
    struct TextFont *Font;
};

struct RWindow {
    struct Node res;
    struct TagItem *idata;
    struct Window *fdata;
    struct ExtWin *edata;
};

struct ExtMenu {
    struct TextFont *Font;
};

struct RMenu {
    struct Node res;
    struct NewMenu *idata;
    struct Menu *fdata;
    struct ExtMenu *edata;
};

struct SuperGadg {
    long type;
    struct NewGadget *ng;
    struct TagItem *ti;
};

struct ExtGadg {
    struct TextFont *Font;
};

struct RGadget {
    struct Node res;
    struct SuperGadg *idata;
    struct Gadget *fdata;
    struct ExtGadg *edata;
};

