|
|
1.1 root 1:
2: #import <appkit/Application.h>
3: #import <appkit/View.h>
4: #import <dpsclient/dpsNeXT.h>
5: #include <sys/resource.h>
6: #import <drivers/event_status_driver.h>
7:
8: #import "ModuleList.h"
9:
10: #define NOWINDOW (0)
11: #define NORMALWINDOW (1)
12: #define BACKWINDOW (2)
13:
14: // sleeptier can't be higher than menus, unfortunately
15: #define SAVERTIER (50)
16: #define SLEEPTIER (18)
17: #define BACKGROUNDTIER (-100)
18:
19: // I'm not at all happy with BackSpace's time handling; it only works
20: // for 49 days after rebooting (according to my calculations... I boot
21: // a lot more often than that!) since it counds milliseconds in a
22: // 32 bit unsigned int. This problem would be solved if I stuffed the
23: // time in a long long, but I think the compiler doesn't correctly do
24: // 64 bit comparisons. Time should probably stay in the unix
25: // timeval struct. Yuck! guess I should write functions for time
26: // addition and comparison...
27:
28: // typedef long long BStimeval; //doesn't work
29: typedef unsigned BStimeval;
30:
31: // a function to return BackSpace's Thinker instance or it's equivalent
32: id BSThinker();
33:
34: enum BSEvents {BSDOSAVER, BSOPENFILE};
35:
36: BStimeval currentTimeInMs();
37:
38: float frandom();
39: float randBetween(float a, float b);
40:
41: @interface Thinker:Object
42: {
43: id spaceView;
44:
45: id spaceWindow;
46: id normalWindow;
47: id bigUnbufferedWindow;
48: id bigBufferedWindow;
49:
50: BOOL timerValid, keepLooping;
51: BOOL doingSaver;
52: DPSTimedEntry timer;
53:
54: int windowType;
55: int realViewIndex;
56: int virtualViewIndex;
57: NXRect windowRect;
58:
59: NXZone *backZone;
60:
61: int screenCount;
62: id windMatrix;
63:
64: id screenSaver;
65: id screenLocker;
66: BOOL screenSaverVal;
67: id mySlider;
68:
69: id priorityLevel;
70: int priority;
71:
72: NXEventHandle evs; //event driver file descriptor
73: double dimBrightness, normalBrightness;
74:
75: id viewSelectionBrowser;
76: ModuleList *moduleList;
77: id imageView;
78: NXScreen *screens;
79: id screenList;
80:
81: id image;
82: int globalTier;
83:
84: id password;
85:
86: id invisibleInspectorBox;
87: id commonImageInspector;
88: id nullInspector;
89: id spaceInspector;
90: id boinkInspector;
91: id currentInspector;
92: NXRect inspectorFrame;
93: id oldInspectorOwner;
94: BOOL browserValid;
95: id infoPanel;
96:
97:
98: char *fileToOpen;
99: BOOL openAnother;
100:
101: int windowHasBeenDisplayed;
102: id sleepWindow;
103: id cornerView;
104: }
105:
106: - appDidInit:sender;
107: - appDidHide:sender;
108: - appDidUnhide:sender;
109: - createTimer;
110: - removeTimer;
111: - doDistributorLoop;
112:
113: - installSpaceViewIntoWindow:w;
114: - useNormalWindow;
115: - (int) backingTypeForView:aView;
116: - useBackWindow:(int)tier;
117: - createBigWindowIfNecessaryForView:aView;
118:
119: - getWindowType;
120: - changeWindowType:sender;
121: - changeWindowTypeAndRemember:(BOOL)rem;
122:
123: - getScreenSaverSetting;
124: - changeScreenSaverSetting:sender;
125: - setScreenSaver:(BOOL)val andRemember:(BOOL)rem;
126: - calcDimTime;
127: - maybeDoScreenSaver:sender;
128: - applicationDefined:(NXEvent *)theEvent;
129: - showFakeScreenSaverAfterPause:sender;
130: - showFakeScreenSaver:sender;
131: - doScreenSaver:sender;
132:
133: - getPrioritySetting;
134: - changeSliderValue:sender;
135: - saveSliderValue;
136:
137: - setImageFromFile: (const char *) filename;
138: - setImageFromName: (const char *) name;
139: - commonImageInit;
140: - getImageFile;
141: - setImageFileFrom: sender;
142:
143: @end
144:
145:
146: @interface Thinker(thinkMore)
147:
148: - getViewType;
149: - selectRealViewIndex:sender;
150: - setVirtualViewIndexAndIncrement:(BOOL)flag;
151: - selectScreenSaverViews;
152: - setWindowTitle;
153:
154: - getScreenLockerSetting;
155: - changeScreenLockerSetting:sender;
156: - setScreenLocker:(BOOL)val andRemember:(BOOL)rem;
157:
158: - backView;
159: - showInfoPanel:sender;
160:
161: - createSleepWindow;
162: - setSleepCorner:(int)val;
163: - getHotCornerSetting;
164:
165: @end
166:
167:
168: @interface Thinker(ioctls)
169:
170: - normalMode;
171: - screenSaverMode;
172:
173: - blackOutAllScreens;
174: - unBlackOutAllScreens;
175:
176: - getDimBrightness:(double *)b;
177: - _setDimBrightness :(double *)b;
178:
179: - getNormalBrightness :(double *)b;
180:
181: - getDimTime :(double *)t;
182:
183: @end
184:
185: @interface Thinker(inspector)
186:
187: - commonImageInspector;
188: - nullInspector;
189: - spaceInspector;
190: - boinkInspector;
191: - revertToDefaultImage:sender;
192: - (BOOL)browser:sender columnIsValid:(int)column;
193: - addCellWithString:(const char *)str at:(int)row toMatrix:matrix;
194: - (int)browser:sender fillMatrix:matrix inColumn:(int)column;
195:
196: - loadViewsFrom: (const char *) dirname;
197: - doDelayedOpenFile;
198:
199: - (const char *) appDirectory;
200: - (const char *) moduleDirectory:(const char *)name;
201: - (struct mach_header *) headerForModule:(const char *)name;
202:
203: @end
204:
205: @interface View(someOptionalMethods)
206:
207: - newWindow;
208: - enteredScreenSaverMode;
209: - willExitScreenSaverMode;
210:
211: @end
212:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.