home *** CD-ROM | disk | FTP | other *** search
- /************************************************************************
- Cycle Time Requester 1 August 87
- ************************************************************************/
- #include <exec/types.h>
- #include <intuition/intuition.h>
-
- #include "shm_defines"
-
- extern struct TextAttr Fnt;
-
- /************************************************************************
- Cycle Time Definitions
- ************************************************************************/
- char cycle_time_str[4];
-
- struct IntuiText cycle_time_val_txt =
- {1, 3, JAM2, 10, 14, &Fnt, (UBYTE *)cycle_time_str, NL};
- struct IntuiText cycle_time_secs_txt =
- {1, 0, JAM1, 52, 28, &Fnt, (UBYTE *)"Seconds per colour step", NL};
- struct IntuiText cycle_time_txt =
- {1, 0, JAM1, 80, 4, &Fnt, (UBYTE *)"CYCLE TIME",
- &cycle_time_secs_txt};
- struct IntuiText cycle_time_ok_txt =
- {1, 0, JAM1, 2, 2, &Fnt, (UBYTE *)"OK", NL};
-
-
- struct Image cycle_time_ok_img = {0,0, 20,11, 1, NL, 0, 2, NL};
-
- struct Image cycle_time_img;
- struct PropInfo cycle_time_prop;
-
- struct Gadget cycle_time_gad =
- {
- NL,
- 6, 14, 210, 11,
- GADGHCOMP,
- GADGIMMEDIATE | RELVERIFY,
- PROPGADGET | REQGADGET,
- (APTR)&cycle_time_img, NL,
- &cycle_time_val_txt,
- NL,
- (APTR)&cycle_time_prop,
- 1, NL
- };
-
- struct Gadget cycle_time_ok_gad =
- {
- &cycle_time_gad,
- 222, 14, 20, 11,
- GADGHBOX | GADGIMAGE,
- RELVERIFY | ENDGADGET,
- BOOLGADGET | REQGADGET,
- (APTR)&cycle_time_ok_img, NL,
- &cycle_time_ok_txt,
- NL, NL, 2, NL
- };
-
- struct Requester cycle_time_req;
-
- #define SPX 250
- #define SPY 40
-
- SHORT cycle_time_border_coords[] =
- {0,0, SPX-1,0, SPX-1,SPY-1, 0,SPY-1, 0,0};
-
- struct Border cycle_time_border =
- {
- 0,0,
- 1,0, JAM1,
- 5, &cycle_time_border_coords[0],
- NL
- };
-
- /************************************************************************
- Cycle Time Function
- ************************************************************************/
- int cycle_time(cW,ticks)
- struct Window *cW;
- int ticks;
- {
- struct IntuiMessage *message;
- struct Gadget *gad;
- BOOL loop;
- int class,ticks_c;
-
- ModifyIDCMP(cW,GADGETUP | GADGETDOWN | REQCLEAR | MOUSEMOVE);
-
- /* Remember to set REPORTMOUSE flag in window structure
- for MOUSEMOVE to work */
- cycle_time_prop.Flags = FREEHORIZ | AUTOKNOB;
- cycle_time_prop.HorizBody = 0x1000;
- sprintf(cycle_time_str,"%3.1f\0",ticks/10.0);
-
- InitRequester(&cycle_time_req);
- cycle_time_req.LeftEdge = 250;
- cycle_time_req.TopEdge = 25;
- cycle_time_req.Width = SPX;
- cycle_time_req.Height = SPY;
- cycle_time_req.ReqGadget = &cycle_time_ok_gad;
- cycle_time_req.ReqText = &cycle_time_txt;
- cycle_time_req.BackFill = 3;
- cycle_time_req.ReqBorder = &cycle_time_border;
- Request(&cycle_time_req,cW);
-
- cycle_time_prop.HorizPot = (int)(65535*ticks)/10;
- RefreshGadgets(&cycle_time_ok_gad,cW,NL);
-
- loop = TRUE;
-
- while (loop)
- {
- Wait(1 << cW->UserPort->mp_SigBit); /* Be good and go to sleep till
- Intuition sends a message */
-
- while (message = (struct IntuiMessage *) GetMsg(cW->UserPort))
- {
- class = message->Class; /* Process all outstanding Messages */
- ReplyMsg(message);
- if (class == REQCLEAR) loop = FALSE; /* OK selected */
- if (class == GADGETDOWN)
- gad = (struct Gadget *) message->IAddress;
- }
-
- /* MOUSEMOVE events are not acknowledged specifically, but by
- generating a message cause the following code to update the
- slider */
-
- if (gad->GadgetID == 1)
- {
- ticks_c = (cycle_time_prop.HorizPot*10)/65535;
- if (ticks != ticks_c)
- {
- /* Update slider only if the value has changed */
- ticks = ticks_c;
- sprintf(cycle_time_str,"%3.1f\0",ticks/10.0);
- RefreshGList(&cycle_time_gad,cW,&cycle_time_req,1);
- }
- }
- }
- ModifyIDCMP(cW,MENUPICK | REQCLEAR | INTUITICKS);
- return(ticks);
- }
-