/*
 * Source generated by GenGui V1.0
 * which is (c)1994 by Matthias Meixner
 */

#ifndef _GUI_LAYOUT
#define _GUI_LAYOUT

#include <exec/types.h>
#include <libraries/gadtools.h>
#include <proto/gadtools.h>

#include <intuition/gadgetclass.h>
#define GL_VBOX -1
#define GL_HBOX -2
#define CUSTOM_KIND -3

#define MODE_NEW     0
#define MODE_RESIZE  1
#define MODE_REFRESH 2
#define MODE_FREE    3
#define MODE_BACKUP  4
#define MODE_RESTORE 5

#define BOXFLG_CUSTOM   1
#define BOXFLG_STRING   2
#define BOXFLG_INTEGER  4
#define BOXFLG_DISABLED 8
#define BOXFLG_BACKUP  16
#define BOXFLG_INITED  (1<<15)

#define GetString(g) (((struct StringInfo * )g->SpecialInfo)->Buffer)
#define GetNumber(g) (((struct StringInfo * )g->SpecialInfo)->LongInt)
#define GetInfo(g) ((struct GadInfo *)((g)->UserData))
#define GetUserData(g) (GetInfo(g)->UserData)

struct GadDim {
   int Kind;
   USHORT Rx,Ry,Cx,Cy,Px,Py,SRx,SRy,SPx,SPy;
   USHORT Flags;
};

struct Box {
   struct GadDim Dim;
   struct Box **Entry;
};

struct WinInfo {
   struct Box *Box;
   struct Gadget **Gadgets;
   struct Gadget *Prev;
   struct Window *Window;
   struct Gadget *GList;
   int FontX,FontY;
   struct TextAttr TextAttr;
   APTR Visual;
   char Mode,Render;
   USHORT MinX,MinY;
};

struct GadInfo {
   struct GadDim dim;
   int XSpace,YSpace,GadNum;
   int (*CustomFunc)(struct WinInfo *WInfo,
                     struct NewGadget *NewGad,
                     struct GadInfo *GadInfo,
                     int Left, int Top, int Width, int Height);
   struct TextAttr *TextAttr;
   char *Text;
   int GadgetID;
   ULONG Flags,UserData;
   int(*HookFunc)(struct IntuiMessage *);
   ULONG *Tags;
   ULONG *SaveTags;
   ULONG Code;
   struct Gadget *ThisGad;
};

int RenderGui(struct Window *win, struct WinInfo *winfo);
int ResizeGui(struct WinInfo *winfo);
int RefreshGui(struct WinInfo *winfo);
void FreeGui(struct WinInfo *winfo);
void StopGui(struct WinInfo *winfo);
int SubGui(struct WinInfo *, struct WinInfo *,int ,int ,int , int );

void ClearWindow(struct Window *);
struct IntuiMessage *Gui_GetIMsg(struct MsgPort *userport,struct IntuiMessage *);

BOOL Gui_SetGadgetAttrs(struct Gadget *,struct Window *,
                        struct Requester *, ULONG ,...);
BOOL Gui_SetGadgetAttrsA(struct Gadget *,struct Window *,
                        struct Requester *, ULONG *);
#endif

char *labels[]={"--->","<---",NULL};
#define LPATH       1
#define LARC        2
#define L_FILE       3
#define LVSCROLLER  4
#define LHSCROLLER  5
#define DIR_ID      6
#define PARENT_ID   7
#define GET_ID      8
#define LISTVIEW_ID 9
#define RPATH       10
#define RARC        11
#define R_FILE       12
#define RVSCROLLER  13
#define RHSCROLLER  14
#define COPY_ID     15
#define RENA_ID     16
#define DEL_ID      17
#define NOTE_ID     18
#define PROT_ID     19
#define PACK_ID     20
#define OPT_ID      21
struct Gadget *TestPro_Gadgets[21];

struct Box TestPro3={
   GL_VBOX,1,0,0,1,0+0,4+3,0,0,0,0,0,NULL
};

#define TestPro_LPATH 0

ULONG TestProTags4[]={
   GTST_MaxChars,256 ,TAG_DONE
};

struct GadInfo TestPro4={
   STRING_KIND,1,0,0,1,0+0,4+3,0,0,0,0,BOXFLG_STRING,
   3,3,0,NULL,NULL,
   "Path:" ,LPATH,PLACETEXT_ABOVE ,0,NULL,TestProTags4
};

#define TestPro_LARC 1

ULONG TestProTags5[]={
   GTST_MaxChars,256 ,TAG_DONE
};

struct GadInfo TestPro5={
   STRING_KIND,1,0,0,1,0+0,4+3,0,0,0,0,BOXFLG_STRING,
   3,3,1,NULL,NULL,
   "",LARC,0,0,NULL,TestProTags5
};

#define TestPro_L_FILE 2

ULONG TestProTags7[]={
   TAG_DONE
};

struct GadInfo TestPro7={
   BUTTON_KIND,1,1,0,0,0+0,0+0,0,0,0,0,0,
   3,3,2,NULL,NULL,
   "",L_FILE,0,0,NULL,TestProTags7
};

#define TestPro_LVSCROLLER 3

ULONG TestProTags8[]={
   PGA_Freedom,LORIENT_VERT ,GTSC_Arrows,16 ,TAG_DONE
};

struct GadInfo TestPro8={
   SCROLLER_KIND,0,1,1,0,8+3,0+0,0,0,0,0,0,
   3,3,3,NULL,NULL,
   "",LVSCROLLER,0,0,NULL,TestProTags8
};

struct Box *TestProV6[]={
   (struct Box *)&TestPro7,
   (struct Box *)&TestPro8,
   NULL
};

struct Box TestPro6={
   GL_HBOX,1,1,0,0,0+0,0+0,0,0,0,0,0,TestProV6
};

#define TestPro_LHSCROLLER 4

ULONG TestProTags9[]={
   PGA_Freedom,LORIENT_HORIZ ,GTSC_Arrows,16 ,TAG_DONE
};

struct GadInfo TestPro9={
   SCROLLER_KIND,1,0,0,1,0+0,4+3,0,0,0,0,0,
   3,3,4,NULL,NULL,
   "",LHSCROLLER,0,0,NULL,TestProTags9
};

struct Box *TestProV2[]={
   &TestPro3,
   (struct Box *)&TestPro4,
   (struct Box *)&TestPro5,
   &TestPro6,
   (struct Box *)&TestPro9,
   NULL
};

struct Box TestPro2={
   GL_VBOX,1,1,0,0,0+0,0+0,0,0,0,0,0,TestProV2
};

#define TestPro_DIR_ID 5

ULONG TestProTags11[]={
   GTCY_Labels,(ULONG)labels ,TAG_DONE
};

struct GadInfo TestPro11={
   CYCLE_KIND,1,0,0,1,0+0,4+3,0,0,0,0,0,
   3,3,5,NULL,NULL,
   "",DIR_ID,0,0,NULL,TestProTags11
};

#define TestPro_PARENT_ID 6

ULONG TestProTags12[]={
   TAG_DONE
};

struct GadInfo TestPro12={
   BUTTON_KIND,1,0,0,1,0+0,4+3,0,0,0,0,0,
   3,3,6,NULL,NULL,
   "Parent" ,PARENT_ID,0,0,NULL,TestProTags12
};

#define TestPro_GET_ID 7

ULONG TestProTags13[]={
   TAG_DONE
};

struct GadInfo TestPro13={
   BUTTON_KIND,1,0,0,1,0+0,4+3,0,0,0,0,0,
   3,3,7,NULL,NULL,
   "Get" ,GET_ID,0,0,NULL,TestProTags13
};

#define TestPro_LISTVIEW_ID 8

ULONG TestProTags14[]={
   TAG_DONE
};

struct GadInfo TestPro14={
   BUTTON_KIND,1,1,0,0,0+0,0+0,0,0,0,0,0,
   3,3,8,NULL,NULL,
   "Listview" ,LISTVIEW_ID,0,0,NULL,TestProTags14
};

struct Box *TestProV10[]={
   (struct Box *)&TestPro11,
   (struct Box *)&TestPro12,
   (struct Box *)&TestPro13,
   (struct Box *)&TestPro14,
   NULL
};

struct Box TestPro10={
   GL_VBOX,0,1,12,0,0+3,0+0,0,0,0,0,0,TestProV10
};

struct Box TestPro16={
   GL_VBOX,1,0,0,1,0+0,4+3,0,0,0,0,0,NULL
};

#define TestPro_RPATH 9

ULONG TestProTags17[]={
   GTST_MaxChars,256 ,TAG_DONE
};

struct GadInfo TestPro17={
   STRING_KIND,1,0,0,1,0+0,4+3,0,0,0,0,BOXFLG_STRING,
   3,3,9,NULL,NULL,
   "Path:" ,RPATH,PLACETEXT_ABOVE ,0,NULL,TestProTags17
};

#define TestPro_RARC 10

ULONG TestProTags18[]={
   GTST_MaxChars,256 ,TAG_DONE
};

struct GadInfo TestPro18={
   STRING_KIND,1,0,0,1,0+0,4+3,0,0,0,0,BOXFLG_STRING,
   3,3,10,NULL,NULL,
   "",RARC,0,0,NULL,TestProTags18
};

#define TestPro_R_FILE 11

ULONG TestProTags20[]={
   TAG_DONE
};

struct GadInfo TestPro20={
   BUTTON_KIND,1,1,0,0,0+0,0+0,0,0,0,0,0,
   3,3,11,NULL,NULL,
   "",R_FILE,0,0,NULL,TestProTags20
};

#define TestPro_RVSCROLLER 12

ULONG TestProTags21[]={
   PGA_Freedom,LORIENT_VERT ,GTSC_Arrows,16 ,TAG_DONE
};

struct GadInfo TestPro21={
   SCROLLER_KIND,0,1,1,0,8+3,0+0,0,0,0,0,0,
   3,3,12,NULL,NULL,
   "",RVSCROLLER,0,0,NULL,TestProTags21
};

struct Box *TestProV19[]={
   (struct Box *)&TestPro20,
   (struct Box *)&TestPro21,
   NULL
};

struct Box TestPro19={
   GL_HBOX,1,1,0,0,0+0,0+0,0,0,0,0,0,TestProV19
};

#define TestPro_RHSCROLLER 13

ULONG TestProTags22[]={
   PGA_Freedom,LORIENT_HORIZ ,GTSC_Arrows,16 ,TAG_DONE
};

struct GadInfo TestPro22={
   SCROLLER_KIND,1,0,0,1,0+0,4+3,0,0,0,0,0,
   3,3,13,NULL,NULL,
   "",RHSCROLLER,0,0,NULL,TestProTags22
};

struct Box *TestProV15[]={
   &TestPro16,
   (struct Box *)&TestPro17,
   (struct Box *)&TestPro18,
   &TestPro19,
   (struct Box *)&TestPro22,
   NULL
};

struct Box TestPro15={
   GL_VBOX,1,1,0,0,0+0,0+0,0,0,0,0,0,TestProV15
};

struct Box *TestProV1[]={
   &TestPro2,
   &TestPro10,
   &TestPro15,
   NULL
};

struct Box TestPro1={
   GL_HBOX,1,1,0,0,0+0,0+0,0,0,0,0,0,TestProV1
};

#define TestPro_COPY_ID 14

ULONG TestProTags24[]={
   TAG_DONE
};

struct GadInfo TestPro24={
   BUTTON_KIND,1,0,0,1,0+0,4+3,0,0,0,0,0,
   3,3,14,NULL,NULL,
   "Copy" ,COPY_ID,0,0,NULL,TestProTags24
};

#define TestPro_RENA_ID 15

ULONG TestProTags25[]={
   TAG_DONE
};

struct GadInfo TestPro25={
   BUTTON_KIND,1,0,0,1,0+0,4+3,0,0,0,0,0,
   3,3,15,NULL,NULL,
   "Rename" ,RENA_ID,0,0,NULL,TestProTags25
};

#define TestPro_DEL_ID 16

ULONG TestProTags26[]={
   TAG_DONE
};

struct GadInfo TestPro26={
   BUTTON_KIND,1,0,0,1,0+0,4+3,0,0,0,0,0,
   3,3,16,NULL,NULL,
   "Delete" ,DEL_ID,0,0,NULL,TestProTags26
};

#define TestPro_NOTE_ID 17

ULONG TestProTags27[]={
   TAG_DONE
};

struct GadInfo TestPro27={
   BUTTON_KIND,1,0,0,1,0+0,4+3,0,0,0,0,0,
   3,3,17,NULL,NULL,
   "Filenote" ,NOTE_ID,0,0,NULL,TestProTags27
};

#define TestPro_PROT_ID 18

ULONG TestProTags28[]={
   TAG_DONE
};

struct GadInfo TestPro28={
   BUTTON_KIND,1,0,0,1,0+0,4+3,0,0,0,0,0,
   3,3,18,NULL,NULL,
   "Protect" ,PROT_ID,0,0,NULL,TestProTags28
};

#define TestPro_PACK_ID 19

ULONG TestProTags29[]={
   TAG_DONE
};

struct GadInfo TestPro29={
   BUTTON_KIND,1,0,0,1,0+0,4+3,0,0,0,0,0,
   3,3,19,NULL,NULL,
   "Pack" ,PACK_ID,0,0,NULL,TestProTags29
};

#define TestPro_OPT_ID 20

ULONG TestProTags30[]={
   TAG_DONE
};

struct GadInfo TestPro30={
   BUTTON_KIND,1,0,0,1,0+0,4+3,0,0,0,0,0,
   3,3,20,NULL,NULL,
   "Options" ,OPT_ID,0,0,NULL,TestProTags30
};

struct Box *TestProV23[]={
   (struct Box *)&TestPro24,
   (struct Box *)&TestPro25,
   (struct Box *)&TestPro26,
   (struct Box *)&TestPro27,
   (struct Box *)&TestPro28,
   (struct Box *)&TestPro29,
   (struct Box *)&TestPro30,
   NULL
};

struct Box TestPro23={
   GL_HBOX,1,0,0,1,0+0,4+3,0,0,0,0,0,TestProV23
};

struct Box *TestProV0[]={
   &TestPro1,
   &TestPro23,
   NULL
};

struct Box TestPro0={
   GL_VBOX,1,1,0,0,0+0,0+0,0,0,0,0,0,TestProV0
};

struct WinInfo TestPro = {
   &TestPro0,TestPro_Gadgets
};

