#include #include #include #include #include #include #include struct FileList { char fl_filename[31]; int fl_filetype; }; /* Image-Ed Image generation */ /* Start of Image data */ USHORT MoveDownUpImageData[]={ /* Plane 0 */ 0xffe0, 0x8020, 0x8e20, 0x8e20, 0x8e20, 0x8e20, 0xbfa0, 0x9f20, 0x8e20, 0x8420, 0x8020, 0xffe0, 0x0000 }; /* End of Image data */ struct Image MoveDownUpImage={ 0,0, /* LeftEdge, TopEdge */ 12,13,1, /* Width, Height, Depth */ &MoveDownUpImageData[0], /* ImageData */ 0x1,0x0, /* PlanePick, PlaneOnOff */ NULL /* Next Image */ }; /* Start of Image data */ USHORT MoveUpUpImageData[]={ /* Plane 0 */ 0xffe0, 0x8020, 0x8420, 0x8e20, 0x9f20, 0xbfa0, 0x8e20, 0x8e20, 0x8e20, 0x8e20, 0x8020, 0xffe0, 0x0000 }; /* End of Image data */ struct Image MoveUpUpImage={ 0,0, /* LeftEdge, TopEdge */ 12,13,1, /* Width, Height, Depth */ &MoveUpUpImageData[0], /* ImageData */ 0x1,0x0, /* PlanePick, PlaneOnOff */ NULL /* Next Image */ }; /* Start of Image data */ USHORT MoveDownDownImageData[]={ /* Plane 0 */ 0xffe0, 0xffe0, 0xf1e0, 0xf1e0, 0xf1e0, 0xf1e0, 0xc060, 0xe0e0, 0xf1e0, 0xfbe0, 0xffe0, 0xffe0, 0x0000 }; /* End of Image data */ struct Image MoveDownDownImage={ 0,0, /* LeftEdge, TopEdge */ 12,13,1, /* Width, Height, Depth */ &MoveDownDownImageData[0], /* ImageData */ 0x1,0x0, /* PlanePick, PlaneOnOff */ NULL /* Next Image */ }; /* Start of Image data */ USHORT MoveUpDownImageData[]={ /* Plane 0 */ 0xffe0, 0xffe0, 0xfbe0, 0xf1e0, 0xe0e0, 0xc060, 0xf1e0, 0xf1e0, 0xf1e0, 0xf1e0, 0xffe0, 0xffe0, 0x0000 }; /* End of Image data */ struct Image MoveUpDownImage={ 0,0, /* LeftEdge, TopEdge */ 12,13,1, /* Width, Height, Depth */ &MoveUpDownImageData[0], /* ImageData */ 0x1,0x0, /* PlanePick, PlaneOnOff */ NULL /* Next Image */ }; /* End of Image-Ed Image generation */ #define MOVEUP 10 #define MOVEDOWN 11 #define UPDOWN 12 #define PATH 13 #define FILE 14 #define PARENT 15 #define OKAY 16 #define CANCEL 17 struct Gadget MoveUpGadget={ NULL,250,25,12,13,GADGHIMAGE|GADGIMAGE,RELVERIFY|GADGIMMEDIATE,BOOLGADGET, (APTR)&MoveUpUpImage,(APTR)&MoveUpDownImage,NULL,NULL,NULL,MOVEUP,NULL}; struct Gadget MoveDownGadget={ &MoveUpGadget,250,113,12,13,GADGHIMAGE|GADGIMAGE,RELVERIFY|GADGIMMEDIATE, BOOLGADGET,(APTR)&MoveDownUpImage,(APTR)&MoveDownDownImage,NULL,NULL,NULL, MOVEDOWN,NULL}; struct PropInfo UDInfo={ AUTOKNOB|FREEVERT,0,0,0,0xffff}; struct Image UDImage; struct Gadget UDGadget={ &MoveDownGadget,250,38,11,74,GADGHNONE|GADGIMAGE, RELVERIFY|GADGIMMEDIATE,PROPGADGET,(APTR)&UDImage, NULL,NULL,NULL,(APTR)&UDInfo,UPDOWN,NULL}; short PathXYBorder[]={ -2,-1,253,-1,253,10,-2,10,-2,-1}; struct Border PathBorder={ -1,-1,1,0,JAM1,5,PathXYBorder,NULL}; char pathdobuffer[256],pathundobuffer[256]; struct StringInfo PathInfo={ pathdobuffer,pathundobuffer,0,256,0}; struct Gadget PathGadget={ &UDGadget,8,14,250,9,GADGHCOMP,TOGGLESELECT|RELVERIFY,STRGADGET, (APTR)&PathBorder,NULL,NULL,NULL,(APTR)&PathInfo,PATH,NULL}; char filedobuffer[31],fileundobuffer[31]; struct StringInfo FileInfo={ filedobuffer,fileundobuffer,0,31,0}; struct Gadget FileSGadget={ &PathGadget,8,128,250,9,GADGHCOMP,TOGGLESELECT|RELVERIFY,STRGADGET, (APTR)&PathBorder,NULL,NULL,NULL,(APTR)&FileInfo,FILE,NULL}; short ParentXYBorder[]={ 0,0,54,0,54,10,0,10,0,0}; struct Border ParentBorder={ -1,-1,1,0,JAM1,5,ParentXYBorder,NULL}; struct IntuiText ParentText={ 1,0,JAM2,3,1,NULL,(UBYTE *)"PARENT",NULL}; struct Gadget ParentGadget={ &FileSGadget,106,140,53,9,GADGHCOMP,RELVERIFY,BOOLGADGET, (APTR)&ParentBorder,NULL,(APTR)&ParentText,NULL,NULL,PARENT,NULL}; struct IntuiText OkayText={ 1,0,JAM2,11,1,NULL,(UBYTE *)"OKAY",NULL}; struct Gadget OkayGadget={ &ParentGadget,6,140,53,9,GADGHCOMP,RELVERIFY,BOOLGADGET, (APTR)&ParentBorder,NULL,(APTR)&OkayText,NULL,NULL,OKAY,NULL}; struct IntuiText CancelText={ 1,0,JAM2,3,1,NULL,(UBYTE *)"CANCEL",NULL}; struct Gadget CancelGadget={ &OkayGadget,207,140,53,9,GADGHCOMP,RELVERIFY,BOOLGADGET, (APTR)&ParentBorder,NULL,(APTR)&CancelText,NULL,NULL,CANCEL,NULL}; struct IntuiText FileGadgetText[10]={ {1,0,JAM2,1,1,NULL,(UBYTE *)"",NULL}, {1,0,JAM2,1,1,NULL,(UBYTE *)"",NULL}, {1,0,JAM2,1,1,NULL,(UBYTE *)"",NULL}, {1,0,JAM2,1,1,NULL,(UBYTE *)"",NULL}, {1,0,JAM2,1,1,NULL,(UBYTE *)"",NULL}, {1,0,JAM2,1,1,NULL,(UBYTE *)"",NULL}, {1,0,JAM2,1,1,NULL,(UBYTE *)"",NULL}, {1,0,JAM2,1,1,NULL,(UBYTE *)"",NULL}, {1,0,JAM2,1,1,NULL,(UBYTE *)"",NULL}, {1,0,JAM2,1,1,NULL,(UBYTE *)"",NULL}}; struct Gadget FileGadget[10]={ {&FileGadget[1],5,25,242,10,GADGHCOMP,RELVERIFY,BOOLGADGET, NULL,NULL,(APTR)&FileGadgetText[0],NULL,NULL,0,NULL}, {&FileGadget[2],5,35,242,10,GADGHCOMP,RELVERIFY,BOOLGADGET, NULL,NULL,(APTR)&FileGadgetText[1],NULL,NULL,1,NULL}, {&FileGadget[3],5,45,242,10,GADGHCOMP,RELVERIFY,BOOLGADGET, NULL,NULL,(APTR)&FileGadgetText[2],NULL,NULL,2,NULL}, {&FileGadget[4],5,55,242,10,GADGHCOMP,RELVERIFY,BOOLGADGET, NULL,NULL,(APTR)&FileGadgetText[3],NULL,NULL,3,NULL}, {&FileGadget[5],5,65,242,10,GADGHCOMP,RELVERIFY,BOOLGADGET, NULL,NULL,(APTR)&FileGadgetText[4],NULL,NULL,4,NULL}, {&FileGadget[6],5,75,242,10,GADGHCOMP,RELVERIFY,BOOLGADGET, NULL,NULL,(APTR)&FileGadgetText[5],NULL,NULL,5,NULL}, {&FileGadget[7],5,85,242,10,GADGHCOMP,RELVERIFY,BOOLGADGET, NULL,NULL,(APTR)&FileGadgetText[6],NULL,NULL,6,NULL}, {&FileGadget[8],5,95,242,10,GADGHCOMP,RELVERIFY,BOOLGADGET, NULL,NULL,(APTR)&FileGadgetText[7],NULL,NULL,7,NULL}, {&FileGadget[9],5,105,242,10,GADGHCOMP,RELVERIFY,BOOLGADGET, NULL,NULL,(APTR)&FileGadgetText[8],NULL,NULL,8,NULL}, {&CancelGadget,5,115,242,10,GADGHCOMP,RELVERIFY,BOOLGADGET, NULL,NULL,(APTR)&FileGadgetText[9],NULL,NULL,9,NULL}}; struct NewWindow filewin={ 10,10,266,152,0,1,CLOSEWINDOW|GADGETUP|GADGETDOWN|MOUSEBUTTONS, WINDOWCLOSE|ACTIVATE|WINDOWDRAG|RMBTRAP|SMART_REFRESH, &FileGadget[0],NULL,"File Requester",NULL,NULL,0,0,0,0,CUSTOMSCREEN}; struct Window *Window; struct IntuitionBase *IntuitionBase; struct GfxBase *GfxBase; struct FileList files[1000]; int filecount,oldoffset,offset; struct IntuiMessage *FMsg; USHORT vertpot; char filename[300]; struct DeviceList *devlist; struct RootNode *rootnode; struct DosInfo *dosinfo; struct DosBase *DosBase; char *devname; BOOL deviceslisted=FALSE;