home *** CD-ROM | disk | FTP | other *** search
- 18-Jun-88 14:46:46-MDT,2548;000000000000
- Return-Path: <u-lchoqu%sunset@cs.utah.edu>
- Received: from cs.utah.edu by SIMTEL20.ARPA with TCP; Sat, 18 Jun 88 14:46:43 MDT
- Received: by cs.utah.edu (5.54/utah-2.0-cs)
- id AA22703; Sat, 18 Jun 88 14:46:43 MDT
- Received: by sunset.utah.edu (5.54/utah-2.0-leaf)
- id AA24827; Sat, 18 Jun 88 14:46:41 MDT
- Date: Sat, 18 Jun 88 14:46:41 MDT
- From: u-lchoqu%sunset@cs.utah.edu (Lee Choquette)
- Message-Id: <8806182046.AA24827@sunset.utah.edu>
- To: rthum@simtel20.arpa
- Subject: Waiting.c
-
- /* Waiting.c */
- /* Shows time available to background tasks running under MultiFinder. */
-
- #include <Quickdraw.h>
- #include <EventMgr.h>
- #include <ResourceMgr.h>
- #include "simple.h"
-
- extern long Ticks : 0x16A;
- extern long yieldTime;
- extern Rect dragrect;
-
- typedef struct wait_data {
- Point windtop;
- int yield;
- int res1, res2, res3;
- } wait_data;
-
- long leaving_time;
- Rect whole;
- WindowPtr thewindow;
- Point top;
- wait_data **data;
-
- idle ()
- {
- long time_away, angle;
- time_away = Ticks - leaving_time;
- angle = time_away * 6L;
- if (angle > 360L) angle = 360L;
- SetPort (thewindow);
- EraseArc (&whole, 0, (int) angle - 350);
- PaintArc (&whole, 0, (int) angle);
- leaving_time = Ticks;
- }
-
- movewindow(x,y,windp,event)
- int x,y;
- WindowPtr windp;
- EventRecord *event;
- {
- DragWindow (windp, event->where, &dragrect);
- }
-
- got_about ()
- {
- Alert (1000, 0L);
- }
-
- got_quit ()
- {
- if (data != 0L) {
- top.h = thewindow -> portRect.left;
- top.v = thewindow -> portRect.top;
- SetPort (thewindow);
- LocalToGlobal (&top);
- HLock (data);
- (**data).windtop = top;
- (**data).yield = (int) yieldTime;
- HUnlock (data);
- ChangedResource (data);
- WriteResource (data);
- }
- ExitToShell();
- }
-
- get_data ()
- {
- data = (wait_data **) GetResource ('WAIT', 0);
- top.h = -1; top.v = -1; yieldTime = -1;
- if (data) {
- HLock (data);
- top = (**data).windtop;
- yieldTime = (long) (**data).yield;
- HUnlock (data);
- }
- if (!PtInRect (top, &dragrect)) {
- top.h = 2;
- top.v = 22;
- }
- if (yieldTime <= 0 || yieldTime > 1000)
- yieldTime = 1;
- }
-
- main ()
- {
- simpletools ("About Waiting...");
- menu (applestring, "About Waiting...", got_about);
- menu (applestring, "About Waiting...", itemenable);
- menu ("File", "Quit/Q", got_quit);
- SetRect (&whole, 1, 1, 11, 11);
- wprocid = 3;
- windmenu = 0;
- get_data ();
- thewindow = window ("Waiting",top.h,top.v,top.h+12,top.v+12,0L,0L,
- idle, movewindow);
- run (idle);
- leaving_time = Ticks;
- runsimpletools ();
- }
-