home *** CD-ROM | disk | FTP | other *** search
- #include <exec/types.h>
- #include <exec/exec.h>
- #include <intuition/intuition.h>
- #include <dos/dos.h>
- #include <dos/filehandler.h>
- #include <workbench/startup.h>
- #include <libraries/gadtools.h>
- #include <workbench/icon.h>
- #include <devices/trackdisk.h>
- #include <dos/rdargs.h>
-
- /*Prototypes for system functions*/
- #include <proto/exec.h>
- #include <proto/intuition.h>
- #include <proto/dos.h>
- #include <proto/gadtools.h>
- #include <proto/icon.h>
- #include <proto/graphics.h>
-
- /*Other headers*/
- #include "Format.h"
- #include "gui.h"
- #include "string.h"
- #include "stdio.h"
-
- extern BOOL FFS = FALSE;
- extern BOOL QuickFmt = FALSE;
- extern BOOL Verify = TRUE;
- extern BOOL Icon = TRUE;
- extern struct Library *ibase = NULL;
- extern struct Library *gbase = NULL;
- extern struct Library *GadToolsBase = NULL;
- extern struct Library *IconBase = NULL;
- extern BPTR StdErr = NULL;
- extern LONG args[6] = { NULL,NULL,0,0,0,0 };
- //extern Rect box;
- extern struct WBStartup *WBenchMsg;
-
- /*Get input from the original window*/
- prepResult getPrepInput(void)
- {
- struct IntuiMessage *mesg;
- ULONG class;
- ULONG code;
- struct Gadget *gadget;
- struct TagItem tags[2];
-
- /*Setup tags that will be used to toggle the states of checkbox gadgets*/
- tags[0].ti_Tag=GTCB_Checked;
- tags[1].ti_Tag=TAG_DONE;
- tags[1].ti_Data=NULL;
-
- /*Loop until the user presses 'OK' or 'Cancel'*/
- for(;;)
- {
- /*Wait for input*/
- Wait(1<<PrepWnd->UserPort->mp_SigBit);
-
- /*Get the input*/
- mesg=GT_GetIMsg(PrepWnd->UserPort);
-
- /*Loop while there are messages to be processed*/
- while(mesg != NULL)
- {
- /*Get the message type, etc.*/
- class=mesg->Class;
- code=mesg->Code;
- gadget=(struct Gadget *)mesg->IAddress;
-
- /*Reply to the message*/
- GT_ReplyIMsg(mesg);
-
- /*Act on the message*/
- switch(class)
- {
- /*User clicked on close gadget. Treat it as a click on 'Cancel'*/
- case CLOSEWINDOW:
- return(eQuit);
-
- /*User pressed a gadget*/
- case GADGETUP:
- switch(gadget->GadgetID)
- {
- /*Checkbox gadgets*/
- /*(each toggles the appropriate status flag)*/
- case GD_FFSGadget:
- FFS=!FFS;
- break;
- case GD_IconGadget:
- Icon=!Icon;
- break;
- case GD_QuickFmtGadget:
- QuickFmt=!QuickFmt;
- break;
- case GD_VerifyGadget:
- Verify=!Verify;
- break;
-
- /*OK*/
- case GD_OKGadget:
- return(eOK);
-
- /*Cancel*/
- case GD_CancelGadget:
- return(eCancel);
- }
- break;
-
- /*Keypress (gadget equivalents)*/
- case VANILLAKEY:
- switch(code)
- {
- /*Disk name*/
- case 'n':
- case 'N':
- ActivateGadget(PrepGadgets[GD_NameGadget], PrepWnd,NULL);
- break;
-
- /*FFS*/
- case 'f':
- case 'F':
- tags[0].ti_Data=(FFS=!FFS);
- /*Toggle the checkmark state of the gadget*/
- GT_SetGadgetAttrsA(PrepGadgets[GD_FFSGadget], PrepWnd,NULL, tags);
- break;
-
- /*Verify*/
- case 'v':
- case 'V':
- tags[0].ti_Data=(Verify=!Verify);
- GT_SetGadgetAttrsA(PrepGadgets[GD_VerifyGadget], PrepWnd,NULL, tags);
- break;
-
- /*Quick Format*/
- case 'q':
- case 'Q':
- tags[0].ti_Data=(QuickFmt=!QuickFmt);
- GT_SetGadgetAttrsA(PrepGadgets[GD_QuickFmtGadget], PrepWnd,NULL, tags);
- break;
-
- /*Create icons*/
- case 'r':
- case 'R':
- tags[0].ti_Data=(Icon=!Icon);
- GT_SetGadgetAttrsA(PrepGadgets[GD_IconGadget], PrepWnd,NULL, tags);
- break;
-
- /*Cancel*/
- case 'c':
- case 'C':
- return(eCancel);
-
- /*OK*/
- case 'o':
- case 'O':
- return(eOK);
- }
- break;
- }
- /*Get the next message*/
- mesg=GT_GetIMsg(PrepWnd->UserPort);
- }
- }
- return(FALSE);
- }
-
-