This is ScreenDim.m in view mode; [Download] [Up]
/* * Filename: ScreenDim.m * Created : Tue Sep 24 22:20:57 1991 * Author : Vince DeMarco * <vince@whatnxt.cuc.ab.ca> */ /* Generated by Interface Builder */ #import <stdio.h> #import <stdlib.h> #import <libc.h> #import <cthreads.h> #import "ScreenDim.h" #import "EyeView.h" #import "Passwd.h" #import "nppow.h" #import "spotlight.h" #import "black.h" #import <appkit/Application.h> #import <appkit/Control.h> #import <appkit/Menu.h> #import <appkit/defaults.h> #import <nextdev/evsio.h> static void idleTimerProc(DPSTimedEntry teNumber, double now, char *userData) { [(id) userData idle]; return; } @implementation ScreenDim - init { self = [super init]; dimtime = atoi(NXGetDefaultValue([NXApp appName],"DimTime")); savetype = atoi(NXGetDefaultValue([NXApp appName],"DimType")); passwdlck= atoi(NXGetDefaultValue([NXApp appName],"PasswdLock")); passwd = [[Passwd alloc] init]; evsfd = open ( "/dev/evs0", O_RDONLY ); timedEntry = DPSAddTimedEntry(60.0, (DPSTimedEntryProc)idleTimerProc,(void *)self, NX_MODALRESPTHRESHOLD); PS_spotlight_init(); return(self); } - free { close(evsfd); DPSRemoveTimedEntry(timedEntry); [passwd free]; return [super free]; } - setEyes:anObject { eyes = anObject; return self; } - setDimTime:(int)dimTime { dimtime = dimTime; idleTime = 0; return self; } - (int)dimTime { return dimtime; } - setSaveType:(int)value { savetype = value; return self; } - (int)saveType { return savetype; } - setpasswdOn:(int)value { passwdlck = value; return self; } - (int)passwd { return passwdlck; } - dimScreen:sender { if (isLocked == YES){ return self; } idleTime = 0; isLocked = YES; [eyes stopTimer]; DPSRemoveTimedEntry(timedEntry); close(evsfd); idleTime = 0 ; [self disableMainMenu]; if (savetype == BLACKOUT ){ PS_black(); }else{ PS_spotlight(); } if (passwdlck){ [passwd requestPasswd:sender]; } evsfd = open("/dev/evs0", O_RDONLY ); [eyes startTimer]; timedEntry = DPSAddTimedEntry(60.0,(DPSTimedEntryProc)idleTimerProc,(void *)self, NX_MODALRESPTHRESHOLD ) ; isLocked = NO; if (!passwdlck){ [self enableMainMenu]; } return self; } - idle { int currentDimTime; if (isLocked == YES){ return self; } ioctl(evsfd, EVSIOGADT, ¤tDimTime ); /* Get current autodim time */ if ( currentDimTime == lastDimTime ){ /* If this value changes, you know that a * user event has been generated since the last time * EVSIOGADT was called */ idleTime++; }else{ idleTime = 0; } if ( idleTime >= dimtime){ isLocked = YES; [eyes stopTimer]; DPSRemoveTimedEntry(timedEntry); close(evsfd); idleTime = 0; [NXApp unhide:self]; [self disableMainMenu]; if (passwdlck){ /* It would be more secure not to do this */ [passwd orderWindowOut]; /* But this is being done for looks only */ [NXApp unhide:self]; /* This is just incase the user decides to try to * Switch to another application while the cross * over is occuring */ } if (savetype == BLACKOUT ){ PS_black(); }else{ PS_spotlight(); } if (passwdlck){ [passwd requestPasswd:self]; } evsfd = open ("/dev/evs0", O_RDONLY ); [eyes startTimer]; timedEntry = DPSAddTimedEntry(60.0,(DPSTimedEntryProc)idleTimerProc,(void *)self, NX_MODALRESPTHRESHOLD ) ; isLocked = NO; if (!passwdlck){ [self enableMainMenu]; [NXApp hide:self]; } } lastDimTime = currentDimTime; return self; } - disableMainMenu { id matrix = [[NXApp mainMenu] itemList]; [matrix setEnabled:NO]; return self; } - enableMainMenu { id matrix = [[NXApp mainMenu] itemList]; [matrix setEnabled:YES]; return self; } - printerOff:sender { cthread_detach(cthread_fork(nppoweroff,(any_t)0)); return self; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.