1 #ifndef LIBRARIES_ASL_H
2 #define LIBRARIES_ASL_H
5 Copyright © 1995-2001, The AROS Development Team. All rights reserved.
13 # include <exec/types.h>
17 # include <exec/nodes.h>
20 #ifndef UTILITY_TAGITEM_H
21 # include <utility/tagitem.h>
24 #ifndef WORKBENCH_STARTUP_H
25 # include <workbench/startup.h>
28 #ifndef GRAPHICS_TEXT_H
29 # include <graphics/text.h>
32 #ifndef GRAPHICS_DISPLAYINFO_H
33 # include <graphics/displayinfo.h>
36 /***************************************/
39 #define AslName "asl.library"
41 #define ASL_TB (TAG_USER + 0x80000)
45 #define ASL_FileRequest 0
46 #define ASL_FontRequest 1
47 #define ASL_ScreenModeRequest 2
49 /* Filerequester structure */
54 STRPTR fr_File
; /* User selected file */
55 STRPTR fr_Drawer
; /* User selected drawer */
56 UBYTE fr_Reserved1
[10];
57 WORD fr_LeftEdge
; /* Requester size/placement on exit */
61 UBYTE fr_Reserved2
[2];
62 LONG fr_NumArgs
; /* How many files were selected ? */
63 struct WBArg
*fr_ArgList
; /* Selected files */
65 UBYTE fr_Reserved3
[8];
66 STRPTR fr_Pattern
; /* Pattern on exit */
70 /* Filerequester tags */
72 #define ASLFR_Window ASL_TB + 2
73 #define ASLFR_Screen ASL_TB + 40
74 #define ASLFR_PubScreenName ASL_TB + 41
75 #define ASLFR_PrivateIDCMP ASL_TB + 42
76 #define ASLFR_IntuiMsgFunc ASL_TB + 70
77 #define ASLFR_SleepWindow ASL_TB + 43
78 #define ASLFR_UserData ASL_TB + 52
79 #define ASLFR_PopToFront ASL_TB + 131
81 #define ASLFR_TextAttr ASL_TB + 51
82 #define ASLFR_Locale ASL_TB + 50
83 #define ASLFR_TitleText ASL_TB + 1
84 #define ASLFR_PositiveText ASL_TB + 18
85 #define ASLFR_NegativeText ASL_TB + 19
87 #define ASLFR_InitialLeftEdge ASL_TB + 3
88 #define ASLFR_InitialTopEdge ASL_TB + 4
89 #define ASLFR_InitialWidth ASL_TB + 5
90 #define ASLFR_InitialHeight ASL_TB + 6
91 #define ASLFR_InitialFile ASL_TB + 8
92 #define ASLFR_InitialDrawer ASL_TB + 9
93 #define ASLFR_InitialPattern ASL_TB + 10
94 #define ASLFR_InitialShowVolumes ASL_TB + 130
96 #define ASLFR_Flags1 ASL_TB + 20
97 #define ASLFR_Flags2 ASL_TB + 22
98 #define ASLFR_DoSaveMode ASL_TB + 44
99 #define ASLFR_DoMultiSelect ASL_TB + 45
100 #define ASLFR_DoPatterns ASL_TB + 46
102 #define ASLFR_DrawersOnly ASL_TB + 47
103 #define ASLFR_FilterFunc ASL_TB + 49
104 #define ASLFR_RejectIcons ASL_TB + 60
105 #define ASLFR_RejectPattern ASL_TB + 61
106 #define ASLFR_AcceptPattern ASL_TB + 62
107 #define ASLFR_FilterDrawers ASL_TB + 63
108 #define ASLFR_HookFunc ASL_TB + 7
110 #define ASLFR_SetSortBy ASL_TB + 124
111 #define ASLFR_GetSortBy ASL_TB + 125
112 #define ASLFR_SetSortDrawers ASL_TB + 126
113 #define ASLFR_GetSortDrawers ASL_TB + 127
114 #define ASLFR_SetSortOrder ASL_TB + 128
115 #define ASLFR_GetSortOrder ASL_TB + 129
117 /* Flags for ASLFR_Flags1 */
119 #define FRB_FILTERFUNC 7
120 #define FRB_INTUIFUNC 6
121 #define FRB_DOSAVEMODE 5
122 #define FRB_PRIVATEIDCMP 4
123 #define FRB_DOMULTISELECT 3
124 #define FRB_DOPATTERNS 0
126 #define FRF_FILTERFUNC (1L << FRB_FILTERFUNC)
127 #define FRF_INTUIFUNC (1L << FRB_INTUIFUNC)
128 #define FRF_DOSAVEMODE (1L << FRB_DOSAVEMODE)
129 #define FRF_PRIVATEIDCMP (1L << FRB_PRIVATEIDCMP)
130 #define FRF_DOMULTISELECT (1L << FRB_DOMULTISELECT)
131 #define FRF_DOPATTERNS (1L << FRB_DOPATTERNS)
133 /* Flags for ASLSM_Flags2 */
135 #define FRB_DRAWERSONLY 0
136 #define FRB_FILTERDRAWERS 1
137 #define FRB_REJECTICONS 2
139 #define FRF_DRAWERSONLY (1L << FRB_DRAWERSONLY)
140 #define FRF_FILTERDRAWERS (1L << FRB_FILTERDRAWERS)
141 #define FRF_REJECTICONS (1L << FRB_REJECTICONS)
143 /* Sort criteria for ASLFR_SetSortBy/ASLFR_GetSortBy tags */
145 #define ASLFRSORTBY_Name 0
146 #define ASLFRSORTBY_Date 1
147 #define ASLFRSORTBY_Size 2
149 /* Drawer placement for ASLFR_SetSortDrawers/ASLFR_GetSortDrawers tags */
151 #define ASLFRSORTDRAWERS_First 0
152 #define ASLFRSORTDRAWERS_Mix 1
153 #define ASLFRSORTDRAWERS_Last 2
155 /* Sort order for the ASLFR_SetSortOrder/ASLFR_GetSortOrder tags */
157 #define ASLFRSORTORDER_Ascend 0
158 #define ASLFRSORTORDER_Descend 1
160 /* Fontrequester structure */
163 UBYTE fo_Reserved
[8];
164 struct TextAttr fo_Attr
;
174 struct TTextAttr fo_TAttr
;
177 /* Fontrequester tags */
179 #define ASLFO_Window ASL_TB + 2
180 #define ASLFO_Screen ASL_TB + 40
181 #define ASLFO_PubScreenName ASL_TB + 41
182 #define ASLFO_PrivateIDCMP ASL_TB + 42
183 #define ASLFO_IntuiMsgFunc ASL_TB + 70
184 #define ASLFO_SleepWindow ASL_TB + 43
185 #define ASLFO_UserData ASL_TB + 52
186 #define ASLFO_PopToFront ASL_TB + 131
188 #define ASLFO_TextAttr ASL_TB + 51
189 #define ASLFO_Locale ASL_TB + 50
190 #define ASLFO_TitleText ASL_TB + 1
191 #define ASLFO_PositiveText ASL_TB + 18
192 #define ASLFO_NegativeText ASL_TB + 19
194 #define ASLFO_InitialLeftEdge ASL_TB + 3
195 #define ASLFO_InitialTopEdge ASL_TB + 4
196 #define ASLFO_InitialWidth ASL_TB + 5
197 #define ASLFO_InitialHeight ASL_TB + 6
198 #define ASLFO_InitialName ASL_TB + 10
199 #define ASLFO_InitialSize ASL_TB + 11
200 #define ASLFO_InitialStyle ASL_TB + 12
201 #define ASLFO_InitialFlags ASL_TB + 13
202 #define ASLFO_InitialFrontPen ASL_TB + 14
203 #define ASLFO_InitialBackPen ASL_TB + 15
204 #define ASLFO_InitialDrawMode ASL_TB + 59
206 #define ASLFO_Flags ASL_TB + 20
207 #define ASLFO_DoFrontPen ASL_TB + 44
208 #define ASLFO_DoBackPen ASL_TB + 45
209 #define ASLFO_DoStyle ASL_TB + 46
210 #define ASLFO_DoDrawMode ASL_TB + 47
212 #define ASLFO_FixedWidthOnly ASL_TB + 48
213 #define ASLFO_MinHeight ASL_TB + 16
214 #define ASLFO_MaxHeight ASL_TB + 17
215 #define ASLFO_FilterFunc ASL_TB + 49
216 #define ASLFO_HookFunc ASL_TB + 7
217 #define ASLFO_MaxFrontPen ASL_TB + 66
218 #define ASLFO_MaxBackPen ASL_TB + 67
220 #define ASLFO_ModeList ASL_TB + 21
221 #define ASLFO_FrontPens ASL_TB + 64
222 #define ASLFO_BackPens ASL_TB + 65
224 /* Flags for ASLFO_Flags */
226 #define FOB_DOFRONTPEN 0
227 #define FOB_DOBACKPEN 1
228 #define FOB_DOSTYLE 2
229 #define FOB_DODRAWMODE 3
230 #define FOB_FIXEDWIDTHONLY 4
231 #define FOB_PRIVATEIDCMP 5
232 #define FOB_INTUIFUNC 6
233 #define FOB_FILTERFUNC 7
235 #define FOF_DOFRONTPEN (1L << FOB_DOFRONTPEN)
236 #define FOF_DOBACKPEN (1L << FOB_DOBACKPEN)
237 #define FOF_DOSTYLE (1L << FOB_DOSTYLE)
238 #define FOF_DODRAWMODE (1L << FOB_DODRAWMODE)
239 #define FOF_FIXEDWIDTHONLY (1L << FOB_FIXEDWIDTHONLY)
240 #define FOF_PRIVATEIDCMP (1L << FOB_PRIVATEIDCMP)
241 #define FOF_INTUIFUNC (1L << FOB_INTUIFUNC)
242 #define FOF_FILTERFUNC (1L << FOB_FILTERFUNC)
245 /* Screenmoderequester structure */
247 struct ScreenModeRequester
250 ULONG sm_DisplayWidth
;
251 ULONG sm_DisplayHeight
;
252 UWORD sm_DisplayDepth
;
253 UWORD sm_OverscanType
;
256 ULONG sm_BitMapWidth
;
257 ULONG sm_BitMapHeight
;
265 WORD sm_InfoLeftEdge
;
274 /* Structure for adding custom display modes to the requester list */
278 struct DimensionInfo dm_DimensionInfo
;
279 ULONG dm_PropertyFlags
;
283 /* ScreenModerequester tags */
285 #define ASLSM_Window ASL_TB + 2
286 #define ASLSM_Screen ASL_TB + 40
287 #define ASLSM_PubScreenName ASL_TB + 41
288 #define ASLSM_PrivateIDCMP ASL_TB + 42
289 #define ASLSM_IntuiMsgFunc ASL_TB + 70
290 #define ASLSM_SleepWindow ASL_TB + 43
291 #define ASLSM_UserData ASL_TB + 52
292 #define ASLSM_PopToFront ASL_TB + 131
294 #define ASLSM_TextAttr ASL_TB + 51
295 #define ASLSM_Locale ASL_TB + 50
296 #define ASLSM_TitleText ASL_TB + 1
297 #define ASLSM_PositiveText ASL_TB + 18
298 #define ASLSM_NegativeText ASL_TB + 19
300 #define ASLSM_InitialLeftEdge ASL_TB + 3
301 #define ASLSM_InitialTopEdge ASL_TB + 4
302 #define ASLSM_InitialWidth ASL_TB + 5
303 #define ASLSM_InitialHeight ASL_TB + 6
305 #define ASLSM_InitialDisplayID ASL_TB + 100
306 #define ASLSM_InitialDisplayWidth ASL_TB + 101
307 #define ASLSM_InitialDisplayHeight ASL_TB + 102
308 #define ASLSM_InitialDisplayDepth ASL_TB + 103
309 #define ASLSM_InitialOverscanType ASL_TB + 104
310 #define ASLSM_InitialAutoScroll ASL_TB + 105
311 #define ASLSM_InitialInfoOpened ASL_TB + 106
312 #define ASLSM_InitialInfoLeftEdge ASL_TB + 107
313 #define ASLSM_InitialInfoTopEdge ASL_TB + 108
315 #define ASLSM_DoWidth ASL_TB + 109
316 #define ASLSM_DoHeight ASL_TB + 110
317 #define ASLSM_DoDepth ASL_TB + 111
318 #define ASLSM_DoOverscanType ASL_TB + 112
319 #define ASLSM_DoAutoScroll ASL_TB + 113
321 #define ASLSM_PropertyFlags ASL_TB + 114
322 #define ASLSM_PropertyMask ASL_TB + 115
323 #define ASLSM_MinWidth ASL_TB + 116
324 #define ASLSM_MaxWidth ASL_TB + 117
325 #define ASLSM_MinHeight ASL_TB + 118
326 #define ASLSM_MaxHeight ASL_TB + 119
327 #define ASLSM_MinDepth ASL_TB + 120
328 #define ASLSM_MaxDepth ASL_TB + 121
329 #define ASLSM_FilterFunc ASL_TB + 122
331 #define ASLSM_CustomSMList ASL_TB + 123
333 /****************************/
335 #define ASL_LAST_TAG ASL_TB + 131
337 /****************************/
339 /* Obsolete pre-V38 ASL defienitions. Only here for source
340 compatibility. DO NOT USE iN NEW CODE.
342 To make sure you not use them, #define ASL_V38_NAMES_ONLY
346 #ifndef ASL_V38_NAMES_ONLY
348 /* !!! DO NOT USE !!! */
350 #define rf_File fr_File
351 #define rf_Dir fr_Drawer
352 #define rf_LeftEdge fr_LeftEdge
353 #define rf_TopEdge fr_TopEdge
354 #define rf_Width fr_Width
355 #define rf_Height fr_Height
356 #define rf_NumArgs fr_NumArgs
357 #define rf_ArgList fr_ArgList
358 #define rf_UserData fr_UserData
359 #define rf_Pat fr_Pattern
361 /* !!! DO NOT USE !!! */
363 #define ASL_Dummy (TAG_USER + 0x80000)
364 #define ASL_Hail ASL_Dummy + 1
365 #define ASL_Window ASL_Dummy + 2
366 #define ASL_LeftEdge ASL_Dummy + 3
367 #define ASL_TopEdge ASL_Dummy + 4
368 #define ASL_Width ASL_Dummy + 5
369 #define ASL_Height ASL_Dummy + 6
370 #define ASL_HookFunc ASL_Dummy + 7
371 #define ASL_File ASL_Dummy + 8
372 #define ASL_Dir ASL_Dummy + 9
373 #define ASL_FontName ASL_Dummy + 10
374 #define ASL_FontHeight ASL_Dummy + 11
375 #define ASL_FontStyles ASL_Dummy + 12
376 #define ASL_FontFlags ASL_Dummy + 13
377 #define ASL_FrontPen ASL_Dummy + 14
378 #define ASL_BackPen ASL_Dummy + 15
379 #define ASL_MinHeight ASL_Dummy + 16
380 #define ASL_MaxHeight ASL_Dummy + 17
381 #define ASL_OKText ASL_Dummy + 18
382 #define ASL_CancelText ASL_Dummy + 19
383 #define ASL_FuncFlags ASL_Dummy + 20
384 #define ASL_ModeList ASL_Dummy + 21
385 #define ASL_ExtFlags1 ASL_Dummy + 22
386 #define ASL_Pattern ASL_FontName
388 /* !!! DO NOT USE !!! */
390 #define FILB_DOWILDFUNC 7L
391 #define FILB_DOMSGFUNC 6L
393 #define FILB_NEWIDCMP 4L
394 #define FILB_MULTISELECT 3L
395 #define FILB_PATGAD 0L
397 #define FILF_DOWILDFUNC (1L << FILB_DOWILDFUNC)
398 #define FILF_DOMSGFUNC (1L << FILB_DOMSGFUNC)
399 #define FILF_SAVE (1L << FILB_SAVE)
400 #define FILF_NEWIDCMP (1L << FILB_NEWIDCMP)
401 #define FILF_MULTISELECT (1L << FILB_MULTISELECT)
402 #define FILF_PATGAD (1L << FILB_PATGAD)
403 #define FIL1B_NOFILES 0L
404 #define FIL1B_MATCHDIRS 1L
405 #define FIL1F_NOFILES (1L << FIL1B_NOFILES)
406 #define FIL1F_MATCHDIRS (1L << FIL1B_MATCHDIRS)
407 #define FONB_FRONTCOLOR 0L
408 #define FONB_BACKCOLOR 1L
409 #define FONB_STYLES 2L
410 #define FONB_DRAWMODE 3L
411 #define FONB_FIXEDWIDTH 4L
412 #define FONB_NEWIDCMP 5L
413 #define FONB_DOMSGFUNC 6L
414 #define FONB_WILDFUNC 7L
415 #define FONF_FRONTCOLOR (1L << FONB_FRONTCOLOR)
416 #define FONF_BACKCOLOR (1L << FONB_BACKCOLOR)
417 #define FONF_STYLES (1L << FONB_STYLES)
418 #define FONF_DRAWMODE (1L << FONB_DRAWMODE)
419 #define FONF_FIXEDWIDTH (1L << FONB_FIXEDWIDTH)
420 #define FONF_NEWIDCMP (1L << FONB_NEWIDCMP)
421 #define FONF_DOMSGFUNC (1L << FONB_DOMSGFUNC)
422 #define FONF_DOWILDFUNC (1L << FONB_DOWILDFUNC)
424 #endif /* ASL_V38_NAMES_ONLY */
427 /*************************/
429 #endif /* LIBRARIES_ASL_H */