1 /*
2  * AcornGUI.h
3  *
4  * Defines variables for the WIMP interface
5  * (C) 1997 Andreas Dehmel
6  *
7  */
8 
9 
10 
11 #ifndef _ACORN_GUI_H_
12 #define _ACORN_GUI_H_
13 
14 
15 // Determine which paths to load from
16 #ifdef FRODO_SC
17 # define DEFAULT_PREFS	"FrodoSC:Prefs"
18 # define DEFAULT_SYSCONF	"FrodoSC:SysConf"
19 #else
20 # ifdef FRODO_PC
21 #  define DEFAULT_PREFS		"FrodoPC:Prefs"
22 #  define DEFAULT_SYSCONF	"FrodoPC:SysConf"
23 # else
24 #  define DEFAULT_PREFS	"Frodo:Prefs"
25 #  define DEFAULT_SYSCONF	"Frodo:SysConf"
26 # endif
27 #endif
28 
29 
30 // Text written in pane icons:
31 #define PANE_TEXT_PAUSE		"Pause"
32 #define PANE_TEXT_RESUME	"Cont"
33 #define PANE_TEXT_ZOOM1		"1 x"
34 #define PANE_TEXT_ZOOM2		"2 x"
35 
36 
37 // OS units of extra space between EmuWindow and Pane
38 #define EmuPaneSpace		2
39 // OS units of the (volume) well's border
40 #define WellBorder		12
41 // Height of title bar in OS units
42 #define TitleBarHeight		44
43 // Maximum volume of the Sound system
44 #define MaximumVolume		127
45 
46 
47 
48 
49 // Message Block indices
50 #define MsgB_Size	0
51 #define MsgB_Sender	1
52 #define MsgB_MyRef	2
53 #define MsgB_YourRef	3
54 #define MsgB_Action	4
55 
56 
57 // Messages
58 #define Message_Quit		0x00000
59 #define Message_DataSave	0x00001
60 #define Message_DataSaveAck	0x00002
61 #define Message_DataLoad	0x00003
62 #define Message_DataLoadAck	0x00004
63 #define Message_DataOpen	0x00005
64 #define Message_RAMFetch	0x00006
65 #define Message_RAMTransmit	0x00007
66 #define Message_PreQuit		0x00008
67 #define Message_PaletteChange	0x00009
68 #define Message_MenuWarning	0x400c0
69 #define Message_ModeChange	0x400c1
70 
71 
72 // Redraw Window Block
73 #define RedrawB_Handle		0
74 #define RedrawB_VMinX		1
75 #define RedrawB_VMinY		2
76 #define RedrawB_VMaxX		3
77 #define RedrawB_VMaxY		4
78 #define RedrawB_ScrollX		5
79 #define RedrawB_ScrollY		6
80 #define RedrawB_CMinX		7
81 #define RedrawB_CMinY		8
82 #define RedrawB_CMaxX		9
83 #define RedrawB_CMaxY		10
84 
85 
86 // Window block (e.g. open, getstate.... For create: subtract -1 (no handle))
87 #define WindowB_Handle		0
88 #define WindowB_VMinX		1
89 #define WindowB_VMinY		2
90 #define WindowB_VMaxX		3
91 #define WindowB_VMaxY		4
92 #define WindowB_ScrollX		5
93 #define WindowB_ScrollY		6
94 #define WindowB_Stackpos	7
95 #define WindowB_WFlags		8
96 #define WindowB_Colours1	9
97 #define WindowB_Colours2	10
98 #define WindowB_WMinX		11
99 #define WindowB_WMinY		12
100 #define WindowB_WMaxX		13
101 #define WindowB_WMaxY		14
102 #define WindowB_TFlags		15
103 #define WindowB_WAFlags		16
104 #define WindowB_SpriteArea	17
105 #define WindowB_MinDims		18
106 #define WindowB_Data		19
107 #define WindowB_Icons		22
108 
109 
110 // Raw icon block
111 #define RawIB_MinX		0
112 #define RawIB_MinY		1
113 #define RawIB_MaxX		2
114 #define RawIB_MaxY		3
115 #define RawIB_Flags		4
116 #define RawIB_Data0		5
117 #define RawIB_Data1		6
118 #define RawIB_Data2		7
119 
120 
121 // Icon block (as in GetIconState)
122 #define IconB_Handle		0
123 #define IconB_Number		1
124 #define IconB_MinX		2
125 #define IconB_MinY		3
126 #define IconB_MaxX		4
127 #define IconB_MaxY		5
128 #define IconB_Flags		6
129 #define IconB_Data0		7
130 #define IconB_Data1		8
131 #define IconB_Data2		9
132 
133 
134 // Mouse click block (also: get pointer info):
135 #define MouseB_PosX		0
136 #define MouseB_PosY		1
137 #define MouseB_Buttons		2
138 #define MouseB_Window		3
139 #define MouseB_Icon		4
140 
141 
142 // Key pressed block
143 #define KeyPB_Window		0
144 #define KeyPB_Icon		1
145 #define KeyPB_PosX		2
146 #define KeyPB_PosY		3
147 #define KeyPB_CHeight		4
148 #define KeyPB_Index		5
149 #define KeyPB_Key		6
150 
151 
152 // Drag Block
153 #define DragB_Handle		0
154 #define DragB_Type		1
155 #define DragB_IMinX		2
156 #define DragB_IMinY		3
157 #define DragB_IMaxX		4
158 #define DragB_IMaxY		5
159 #define DragB_BBMinX		6
160 #define DragB_BBMinY		7
161 #define DragB_BBMaxX		8
162 #define DragB_BBMaxY		9
163 #define DragB_R12		10
164 #define DragB_DrawCode		11
165 #define DragB_RemoveCode	12
166 #define DragB_MoveCode		13
167 
168 
169 // Drag A Sprite Block
170 #define DASB_MinX		0
171 #define DASB_MinY		1
172 #define DASB_MaxX		2
173 #define DASB_MaxY		3
174 
175 
176 
177 
178 
179 // Menu definitions
180 #define Menu_IBar		1
181 #define Menu_Emulator		2
182 
183 #define Menu_Height		44
184 #define Menu_Flags		0x07003011
185 
186 #define Menu_IBar_Items		5
187 #define Menu_IBar_Width		256
188 #define Menu_IBar_Info		0
189 #define Menu_IBar_Prefs		1
190 #define Menu_IBar_Config	2
191 #define Menu_IBar_Sound		3
192 #define Menu_IBar_Quit		4
193 
194 #define Menu_EWind_Items	4
195 #define Menu_EWind_Width	200
196 #define Menu_EWind_Info		0
197 #define Menu_EWind_Sound	1
198 #define Menu_EWind_SaveRAM	2
199 #define Menu_EWind_Snapshot	3
200 
201 
202 
203 
204 
205 // Icons used in window definitions:
206 #define Icon_Pane_LED0		1
207 #define Icon_Pane_LED1		3
208 #define Icon_Pane_LED2		5
209 #define Icon_Pane_LED3		7
210 #define Icon_Pane_Drive0	0
211 #define Icon_Pane_Drive1	2
212 #define Icon_Pane_Drive2	4
213 #define Icon_Pane_Drive3	6
214 #define Icon_Pane_Reset		8
215 #define Icon_Pane_Pause		9
216 #define Icon_Pane_Speed		10
217 #define Icon_Pane_Toggle	11
218 
219 #define Icon_Prefs_Dr8DIR	6
220 #define Icon_Prefs_Dr8D64	7
221 #define Icon_Prefs_Dr8T64	8
222 #define Icon_Prefs_Dr8Path	9
223 #define Icon_Prefs_Dr9DIR	11
224 #define Icon_Prefs_Dr9D64	12
225 #define Icon_Prefs_Dr9T64	13
226 #define Icon_Prefs_Dr9Path	14
227 #define Icon_Prefs_Dr10DIR	16
228 #define Icon_Prefs_Dr10D64	17
229 #define Icon_Prefs_Dr10T64	18
230 #define Icon_Prefs_Dr10Path	19
231 #define Icon_Prefs_Dr11DIR	21
232 #define Icon_Prefs_Dr11D64	22
233 #define Icon_Prefs_Dr11T64	23
234 #define Icon_Prefs_Dr11Path	24
235 #define Icon_Prefs_Emul1541	25
236 #define Icon_Prefs_MapSlash	26
237 #define Icon_Prefs_SIDNone	29
238 #define Icon_Prefs_SIDDigi	30
239 #define Icon_Prefs_SIDCard	31
240 #define Icon_Prefs_SIDFilter	32
241 #define Icon_Prefs_REUNone	35
242 #define Icon_Prefs_REU128	36
243 #define Icon_Prefs_REU256	37
244 #define Icon_Prefs_REU512	38
245 #define Icon_Prefs_SkipFLeft	41
246 #define Icon_Prefs_SkipFRight	42
247 #define Icon_Prefs_SkipFText	43
248 #define Icon_Prefs_SprOn	47
249 #define Icon_Prefs_SprColl	48
250 #define Icon_Prefs_Joy1On	50
251 #define Icon_Prefs_Joy2On	51
252 #define Icon_Prefs_JoySwap	52
253 #define Icon_Prefs_LimSpeed	55
254 #define Icon_Prefs_FastReset	56
255 #define Icon_Prefs_CIAHack	57
256 #define Icon_Prefs_CycleNorm	64
257 #define Icon_Prefs_CycleBad	65
258 #define Icon_Prefs_CycleCIA	66
259 #define Icon_Prefs_CycleFloppy	67
260 #define Icon_Prefs_Cancel	68
261 #define Icon_Prefs_OK		69
262 #define Icon_Prefs_PrefPath	70
263 #define Icon_Prefs_Save		71
264 #define Icon_Prefs_PrefSprite	72
265 
266 #define Icon_Conf_PollAfter	3
267 #define Icon_Conf_SpeedAfter	5
268 #define Icon_Conf_Joy1Up	15
269 #define Icon_Conf_Joy1Down	16
270 #define Icon_Conf_Joy1Left	17
271 #define Icon_Conf_Joy1Right	18
272 #define Icon_Conf_Joy1Fire	19
273 #define Icon_Conf_Joy2Up	27
274 #define Icon_Conf_Joy2Down	28
275 #define Icon_Conf_Joy2Left	29
276 #define Icon_Conf_Joy2Right	30
277 #define Icon_Conf_Joy2Fire	31
278 #define Icon_Conf_OK		32
279 #define Icon_Conf_Save		33
280 #define Icon_Conf_ConfPath	34
281 #define Icon_Conf_ConfSprite	35
282 #define Icon_Conf_SoundAfter	37
283 
284 #define Icon_Info_Name		4
285 #define Icon_Info_Purpose	5
286 #define Icon_Info_Author	6
287 #define Icon_Info_AuthorPort	7
288 #define Icon_Info_Version	8
289 
290 #define Icon_Sound_Volume	0
291 #define Icon_Sound_Notes	1
292 
293 #define Icon_Save_Sprite	0
294 #define Icon_Save_Path		1
295 #define Icon_Save_OK		2
296 
297 
298 
299 
300 // Drag types
301 #define DRAG_PrefsSprite	1
302 #define DRAG_ConfSprite		2
303 #define DRAG_SaveSprite		3
304 #define DRAG_VolumeWell		16
305 
306 
307 
308 // Save types
309 #define SAVE_RAM		1
310 #define SAVE_Snapshot		2
311 
312 
313 
314 
315 // variables
316 
317 extern char LEDtoIcon[4];
318 extern char DriveToIcon[16];
319 extern char SIDtoIcon[3];
320 extern char REUtoIcon[4];
321 
322 
323 
324 
325 
326 // Plotter structs and variables
327 typedef struct {
328   int x, y, dimx, dimy;
329 } graph_env;
330 
331 #define PLOTTER_ARGS	const graph_env *GraphEnv, const int *Clipwindow,\
332 			const uint8 *Bitmap, const unsigned int *TransTab
333 
334 // Plotters provided in Plotters.s -- declare as C-functions !
335 extern "C"
336 {
337 extern void PlotZoom1(PLOTTER_ARGS);
338 extern void PlotZoom2(PLOTTER_ARGS);
339 }
340 
341 #endif
342