|
|
1.1 ! root 1: // SleepView.m ! 2: // ! 3: // You may freely copy, distribute, and reuse the code in this example. ! 4: // NeXT disclaims any warranty of any kind, expressed or implied, as to its ! 5: // fitness for any particular use. ! 6: ! 7: // This view goes in a little 4 pixel window and cause BackSpace to sleep ! 8: // whenever the cursor goes to a preselected corner. ! 9: ! 10: #import "Thinker.h" ! 11: #import "SleepView.h" ! 12: #import <libc.h> ! 13: #import <appkit/timer.h> ! 14: ! 15: @implementation SleepView ! 16: ! 17: - mouseEntered:(NXEvent *)theEvent ! 18: { ! 19: int looping = YES; ! 20: int doSaver = NO; ! 21: NXTrackingTimer myTimer; ! 22: ! 23: NXBeginTimer(&myTimer, 3.0, 5.0); ! 24: while (looping) ! 25: { ! 26: theEvent = [NXApp getNextEvent: NX_TIMERMASK|NX_MOUSEEXITEDMASK]; ! 27: ! 28: switch (theEvent->type) ! 29: { ! 30: case NX_TIMER: ! 31: doSaver = YES; ! 32: // now fall into MOUSEEXITED code ! 33: ! 34: case NX_MOUSEEXITED: ! 35: looping = NO; ! 36: break; ! 37: } ! 38: } ! 39: ! 40: NXEndTimer(&myTimer); ! 41: if (doSaver) [BSThinker() showFakeScreenSaver:self]; ! 42: return self; ! 43: } ! 44: ! 45: @end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.