Initial revision
[ssr] / StraySrc / Libraries / Sapphire / csapph / h / menuDefs
1 /*
2 * menuDefs.h
3 *
4 * [Generated from menuDefs, 25 September 1996]
5 */
6
7 #if !defined(__CC_NORCROFT) || !defined(__arm)
8 #error You must use the Norcroft ARM Compiler for Sapphire programs
9 #endif
10
11 #pragma include_only_once
12 #pragma force_top_level
13
14 #ifndef __menuDefs_h
15 #define __menuDefs_h
16
17 #ifndef __sapphire_h
18 #include "sapphire.h"
19 #endif
20
21 /*----- Overview ----------------------------------------------------------*
22 *
23 * Macros provided:
24 *
25 * BITSPEC
26 * SETBIT
27 * NEWITEM
28 * MENU
29 * MENUI
30 * TEAROFF
31 * TEAROFFI
32 * R12DATA
33 * MAKEME
34 * MHEIGHT
35 * GLOBALM
36 * ITEM
37 * ITEWI
38 * SHADE
39 * ISHADE
40 * SWITCH
41 * RADIO
42 * SPRITE
43 * HALFSZ
44 * SUBWARN
45 * SUBMENU
46 * NOWARN
47 * RULEOFF
48 * MENUEND
49 */
50
51 /*----- Constants for menus -----------------------------------------------*
52 *
53 * In the descriptions of flags below, the data required in the packed menu
54 * definition is shown in the comments. Insert items in the order of the
55 * bit precedences of the flags.
56 *
57 * Note -- a (*) following a description means the flag is only supported by
58 * tms (the tearoff system), and a (+) means that the flag is only supported
59 * by menu (the WIMP system).
60 */
61
62 /* --- Flags for menu titles and items --- */
63
64 #define mFlag_indirect ((1<<0))
65
66 #define mFlag_R12 ((1<<16))
67
68 #define mFlag_noTrans ((1<<19))
69
70 /* --- Menu title flags --- */
71
72 #define mFlag_tearoff ((1<<1))
73
74 #define mFlag_makeMe ((1<<2))
75
76 #define mFlag_maxHeight ((1<<3))
77
78 #define mFlag_global ((1<<4))
79
80 /* --- Menu item flags --- */
81
82 #define mFlag_shortCut ((1<<1))
83
84 #define mFlag_iShortCut ((1<<2))
85
86 #define mFlag_shade ((1<<3))
87
88 #define mFlag_invShade ((1<<4))
89
90 #define mFlag_switch ((1<<5))
91
92 #define mFlag_radio ((1<<6))
93
94 #define mFlag_sprite ((1<<7))
95
96 #define mFlag_halfSize ((1<<8))
97
98 #define mFlag_subWarn ((1<<9))
99
100 #define mFlag_subMenu ((1<<10))
101
102 #define mFlag_noWarn ((1<<17))
103
104 #define mFlag_ruleOff ((1<<18))
105
106 #define mFlag_end ((1<<31))
107
108 /* --- Event codes --- *
109 *
110 * Event codes are returned in R0, with R1 being the item number within
111 * the packed menu definition, indexed from 0.
112 *
113 * Note: mEvent_deleted is only sent to the topmost menu title by the
114 * standard menu system, but is sent to the titles of all menus being closed
115 * by TMS. If you are converting from one to the other, bear this in mind.
116 */
117
118 #define mEvent_select (0)
119
120 #define mEvent_subMenu (1)
121
122 #define mEvent_deleted (2)
123
124 #define mEvent_help (3)
125
126 /*----- Menu creation macros ----------------------------------------------*/
127
128 /* --- Note to reader --- *
129 *
130 * These macros make a lot of use of private constants and variables. Try to
131 * avoid examining these too closely, because you'll probably get lost.
132 */
133
134 /* --- Set up the variables --- */
135
136 /* --- Macro: BITSPEC --- *
137 *
138 * Arguments: offset == offset into workspace of target word
139 * bit == bitmask with a 1 in the position of the bit
140 *
141 * Use: Assembles a bit specification referencing the described bit.
142 * The bit is described by a mask word rather than a bit
143 * position, because it is expected that you will already have
144 * set up constants for bit masks.
145 */
146
147 /* --- Macro: SETBIT --- *
148 *
149 * Arguments: flag == which menu flag above to set
150 *
151 * Use: Sets a bit within the current item or menu title's flags
152 * word. It ensures that items are inserted in the correct
153 * order.
154 */
155
156 /* --- Macro: NEWITEM --- *
157 *
158 * Arguments: --
159 *
160 * Use: Starts a new menu item or menu title. It also inserts a new
161 * flags word in the current position.
162 */
163
164 /* --- Macro: MENU --- *
165 *
166 * Arguments: title == the menu's title string/message tag
167 *
168 * Use: Creates a nonindirected menu title and starts a new menu.
169 */
170
171 /* --- Macro: MENUI --- *
172 *
173 * Arguments: title == offset to title pointer in client's workspace
174 *
175 * Use: Creates an indirected menu title and starts a new menu.
176 */
177
178 /* --- Macro: TEAROFF --- *
179 *
180 * Arguments: title == menu's title string/message tag
181 *
182 * Use: Creates a nonindirected tearoff menu title and starts a new
183 * menu.
184 */
185
186 /* --- Macro: TEARI --- *
187 *
188 * Arguments: title == offset to title pointer in client's workspace
189 *
190 * Use: Creates an indirected tearoff menu title and starts a new
191 * menu.
192 */
193
194 /* --- Macro: R12DATA --- *
195 *
196 * Arguments: --
197 *
198 * Use: Sets the current menu item or menu title to use the client's
199 * R12 pointer rather than its R10 pointer for workspace.
200 */
201
202 /* --- Macro: NOTRANS --- *
203 *
204 * Arguments: --
205 *
206 * Use: Disables message translation of the current item or menu
207 * title. This is useful if you're building the item or title
208 * text dynamically.
209 */
210
211 /* --- Macro: MAKEME --- *
212 *
213 * Arguments: makeProc == pointer to procedure which will remake the menu
214 *
215 * Use: Sets the current menu to require being remade from scratch
216 * when being updated (e.g. after an item is selected).
217 */
218
219 /* --- Macro: MHEIGHT --- *
220 *
221 * Arguments: height == maximum permitted height for menu in OS units
222 *
223 * Use: Sets the menu's maximum allowable height.
224 */
225
226 /* --- Macro: GLOBALM --- *
227 *
228 * Arguments: --
229 *
230 * Use: Sets the menu's maximum allowable height.
231 */
232
233 /* --- Macro: ITEM --- *
234 *
235 * Arguments: text == item's text string/message tag
236 *
237 * Use: Creates a new nonindirected menu item.
238 */
239
240 /* --- Macro: ITEMI --- *
241 *
242 * Arguments: text == offset of pointer to menu text
243 *
244 * Use: Creates a new indirected menu item
245 */
246
247 /* --- Macro: SHADE --- *
248 *
249 * Arguments: $offset,$bit == bitspec of item's `shaded' bit
250 *
251 * Use: Sets the current item to be shadable.
252 */
253
254 /* --- Macro: ISHADE --- *
255 *
256 * Arguments: offset,$bit == bitspec of item's `unshaded' bit
257 *
258 * Use: Sets the current item to be inverse shadable.
259 */
260
261 /* --- Macro: SWITCH --- *
262 *
263 * Arguments: offset,$bit == bitspec of item's `ticked' bit
264 *
265 * Use: Sets the current item to be tickable.
266 */
267
268 /* --- Macro: RADIO --- *
269 *
270 * Arguments: group == offset of this item's radio group selector
271 * selector == value of selector to blob this item
272 *
273 * Use: Marks this item as a radio item, so that it is blobbed (or
274 * ticked under the WIMP menu system) when the selector in the
275 * client's workspace matches the item's selector.
276 */
277
278 /* --- Macro: SPRITE --- *
279 *
280 * Arguments: sprite == EITHER address of validation string, OR offset of
281 * sprite name pointer (if area argument given)
282 * area == (optional) sprite area, or -1 for resspr_area
283 *
284 * Use: Adds a sprite to the menu item definition.
285 */
286
287 /* --- Macro: HALFSZ --- *
288 *
289 * Arguments: --
290 *
291 * Use: Sets the item to display its sprite at half size
292 */
293
294 /* --- Macro: SUBWARN --- *
295 *
296 * Arguments: --
297 *
298 * Use: Sets the item to generate submenu warnings when its submenu
299 * arrow is pointed at.
300 */
301
302 /* --- Macro: SUBMENU --- *
303 *
304 * Arguments: subMenu == pointer to packed definition of the submenu
305 * handler == pointer to handler routine
306 *
307 * Use: Attaches the given menu as a submenu of this item.
308 */
309
310 /* --- Macro: NOWARN --- *
311 *
312 * Arguments: --
313 *
314 * Use: Prevents this item from returning submenu events if it is
315 * shaded.
316 */
317
318 /* --- Macro: RULEOFF --- *
319 *
320 * Arguments: --
321 *
322 * Use: Inserts a ruleoff after the current item, assuming there are
323 * some more items after it.
324 */
325
326 /* --- Macro: MENUEND --- *
327 *
328 * Arguments: --
329 *
330 * Use: Finishes off the current menu.
331 */
332
333 /*----- That's all, folks -------------------------------------------------*/
334
335 #endif