#ifndef LIBRARIES_ASL_H #define LIBRARIES_ASL_H /* ** $VER: asl.h 44.1 (12.5.1999) ** Includes Release 44.1 ** ** ASL library structures and constants ** ** Copyright © 1989-1999 Amiga, Inc. ** Copyright © 1989-1990 Charlie Heath ** All Rights Reserved */ /*****************************************************************************/ #ifndef EXEC_TYPES_H #include <exec/types.h> #endif #ifndef EXEC_NODES_H #include <exec/nodes.h> #endif #ifndef UTILITY_TAGITEM_H #include <utility/tagitem.h> #endif #ifndef WORKBENCH_STARTUP_H #include <workbench/startup.h> #endif #ifndef GRAPHICS_TEXT_H #include <graphics/text.h> #endif #ifndef GRAPHICS_DISPLAYINFO_H #include <graphics/displayinfo.h> #endif /*****************************************************************************/ #define AslName "asl.library" #define ASL_TB (TAG_USER+0x80000) /*****************************************************************************/ /* Types of requesters known to ASL, used as arguments to AllocAslRequest() */ #define ASL_FileRequest 0 #define ASL_FontRequest 1 #define ASL_ScreenModeRequest 2 /***************************************************************************** * * ASL File Requester data structures and constants * * This structure must only be allocated by asl.library amd is READ-ONLY! * Control of the various fields is provided via tags when the requester * is created with AllocAslRequest() and when it is displayed via * AslRequest() */ struct FileRequester { UBYTE fr_Reserved0[4]; STRPTR fr_File; /* Contents of File gadget on exit */ STRPTR fr_Drawer; /* Contents of Drawer gadget on exit */ UBYTE fr_Reserved1[10]; WORD fr_LeftEdge; /* Coordinates of requester on exit */ WORD fr_TopEdge; WORD fr_Width; WORD fr_Height; UBYTE fr_Reserved2[2]; LONG fr_NumArgs; /* Number of files selected */ struct WBArg *fr_ArgList; /* List of files selected */ APTR fr_UserData; /* You can store your own data here */ UBYTE fr_Reserved3[8]; STRPTR fr_Pattern; /* Contents of Pattern gadget on exit */ }; /* File requester tag values, used by AllocAslRequest() and AslRequest() */ /* Window control */ #define ASLFR_Window ASL_TB+2 /* Parent window */ #define ASLFR_Screen ASL_TB+40 /* Screen to open on if no window */ #define ASLFR_PubScreenName ASL_TB+41 /* Name of public screen */ #define ASLFR_PrivateIDCMP ASL_TB+42 /* Allocate private IDCMP? */ #define ASLFR_IntuiMsgFunc ASL_TB+70 /* Function to handle IntuiMessages */ #define ASLFR_SleepWindow ASL_TB+43 /* Block input in ASLFR_Window? */ #define ASLFR_UserData ASL_TB+52 /* What to put in fr_UserData */ #define ASLFR_PopToFront ASL_TB+131 /* Make the requester window visible * when it opens (V44) */ /* Text display */ #define ASLFR_TextAttr ASL_TB+51 /* Text font to use for gadget text */ #define ASLFR_Locale ASL_TB+50 /* Locale ASL should use for text */ #define ASLFR_TitleText ASL_TB+1 /* Title of requester */ #define ASLFR_PositiveText ASL_TB+18 /* Positive gadget text */ #define ASLFR_NegativeText ASL_TB+19 /* Negative gadget text */ /* Initial settings */ #define ASLFR_InitialLeftEdge ASL_TB+3 /* Initial requester coordinates */ #define ASLFR_InitialTopEdge ASL_TB+4 #define ASLFR_InitialWidth ASL_TB+5 /* Initial requester dimensions */ #define ASLFR_InitialHeight ASL_TB+6 #define ASLFR_InitialFile ASL_TB+8 /* Initial contents of File gadget */ #define ASLFR_InitialDrawer ASL_TB+9 /* Initial contents of Drawer gadg. */ #define ASLFR_InitialPattern ASL_TB+10 /* Initial contents of Pattern gadg.*/ #define ASLFR_InitialShowVolumes ASL_TB+130 /* Initially, show the volume list (V44) */ /* Options */ #define ASLFR_Flags1 ASL_TB+20 /* Option flags */ #define ASLFR_Flags2 ASL_TB+22 /* Additional option flags */ #define ASLFR_DoSaveMode ASL_TB+44 /* Being used for saving? */ #define ASLFR_DoMultiSelect ASL_TB+45 /* Do multi-select? */ #define ASLFR_DoPatterns ASL_TB+46 /* Display a Pattern gadget? */ /* Filtering */ #define ASLFR_DrawersOnly ASL_TB+47 /* Don't display files? */ #define ASLFR_FilterFunc ASL_TB+49 /* Function to filter files */ #define ASLFR_RejectIcons ASL_TB+60 /* Display .info files? */ #define ASLFR_RejectPattern ASL_TB+61 /* Don't display files matching pat */ #define ASLFR_AcceptPattern ASL_TB+62 /* Accept only files matching pat */ #define ASLFR_FilterDrawers ASL_TB+63 /* Also filter drawers with patterns*/ #define ASLFR_HookFunc ASL_TB+7 /* Combined callback function */ /* Sorting */ #define ASLFR_SetSortBy ASL_TB+124 /* Sort criteria (name, date, size) */ #define ASLFR_GetSortBy ASL_TB+125 #define ASLFR_SetSortDrawers ASL_TB+126 /* Placement of drawers in the list */ #define ASLFR_GetSortDrawers ASL_TB+127 #define ASLFR_SetSortOrder ASL_TB+128 /* Order (ascending or descending) */ #define ASLFR_GetSortOrder ASL_TB+129 /* Flag bits for the ASLFR_Flags1 tag */ #define FRB_FILTERFUNC 7 #define FRB_INTUIFUNC 6 #define FRB_DOSAVEMODE 5 #define FRB_PRIVATEIDCMP 4 #define FRB_DOMULTISELECT 3 #define FRB_DOPATTERNS 0 #define FRF_FILTERFUNC (1L << FRB_FILTERFUNC) #define FRF_INTUIFUNC (1L << FRB_INTUIFUNC) #define FRF_DOSAVEMODE (1L << FRB_DOSAVEMODE) #define FRF_PRIVATEIDCMP (1L << FRB_PRIVATEIDCMP) #define FRF_DOMULTISELECT (1L << FRB_DOMULTISELECT) #define FRF_DOPATTERNS (1L << FRB_DOPATTERNS) /* Flag bits for the ASLFR_Flags2 tag */ #define FRB_DRAWERSONLY 0 #define FRB_FILTERDRAWERS 1 #define FRB_REJECTICONS 2 #define FRF_DRAWERSONLY (1L << FRB_DRAWERSONLY) #define FRF_FILTERDRAWERS (1L << FRB_FILTERDRAWERS) #define FRF_REJECTICONS (1L << FRB_REJECTICONS) /* Sort criteria for the ASLFR_SetSortBy/ASLFR_GetSortBy tags */ #define ASLFRSORTBY_Name 0 #define ASLFRSORTBY_Date 1 #define ASLFRSORTBY_Size 2 /* Drawer placement for the ASLFR_SetSortDrawers/ASLFR_GetSortDrawers tags */ #define ASLFRSORTDRAWERS_First 0 #define ASLFRSORTDRAWERS_Mix 1 #define ASLFRSORTDRAWERS_Last 2 /* Sort order for the ASLFR_SetSortOrder/ASLFR_GetSortOrder tags */ #define ASLFRSORTORDER_Ascend 0 #define ASLFRSORTORDER_Descend 1 /***************************************************************************** * * ASL Font Requester data structures and constants * * This structure must only be allocated by asl.library amd is READ-ONLY! * Control of the various fields is provided via tags when the requester * is created with AllocAslRequest() and when it is displayed via * AslRequest() */ struct FontRequester { UBYTE fo_Reserved0[8]; struct TextAttr fo_Attr; /* Returned TextAttr */ UBYTE fo_FrontPen; /* Returned front pen */ UBYTE fo_BackPen; /* Returned back pen */ UBYTE fo_DrawMode; /* Returned drawing mode */ UBYTE fo_Reserved1; APTR fo_UserData; /* You can store your own data here */ WORD fo_LeftEdge; /* Coordinates of requester on exit */ WORD fo_TopEdge; WORD fo_Width; WORD fo_Height; struct TTextAttr fo_TAttr; /* Returned TTextAttr */ }; /* Font requester tag values, used by AllocAslRequest() and AslRequest() */ /* Window control */ #define ASLFO_Window ASL_TB+2 /* Parent window */ #define ASLFO_Screen ASL_TB+40 /* Screen to open on if no window */ #define ASLFO_PubScreenName ASL_TB+41 /* Name of public screen */ #define ASLFO_PrivateIDCMP ASL_TB+42 /* Allocate private IDCMP? */ #define ASLFO_IntuiMsgFunc ASL_TB+70 /* Function to handle IntuiMessages */ #define ASLFO_SleepWindow ASL_TB+43 /* Block input in ASLFO_Window? */ #define ASLFO_UserData ASL_TB+52 /* What to put in fo_UserData */ #define ASLFO_PopToFront ASL_TB+131 /* Make the requester window visible * when it opens (V44) */ /* Text display */ #define ASLFO_TextAttr ASL_TB+51 /* Text font to use for gadget text */ #define ASLFO_Locale ASL_TB+50 /* Locale ASL should use for text */ #define ASLFO_TitleText ASL_TB+1 /* Title of requester */ #define ASLFO_PositiveText ASL_TB+18 /* Positive gadget text */ #define ASLFO_NegativeText ASL_TB+19 /* Negative gadget text */ /* Initial settings */ #define ASLFO_InitialLeftEdge ASL_TB+3 /* Initial requester coordinates */ #define ASLFO_InitialTopEdge ASL_TB+4 #define ASLFO_InitialWidth ASL_TB+5 /* Initial requester dimensions */ #define ASLFO_InitialHeight ASL_TB+6 #define ASLFO_InitialName ASL_TB+10 /* Initial contents of Name gadget */ #define ASLFO_InitialSize ASL_TB+11 /* Initial contents of Size gadget */ #define ASLFO_InitialStyle ASL_TB+12 /* Initial font style */ #define ASLFO_InitialFlags ASL_TB+13 /* Initial font flags for TextAttr */ #define ASLFO_InitialFrontPen ASL_TB+14 /* Initial front pen */ #define ASLFO_InitialBackPen ASL_TB+15 /* Initial back pen */ #define ASLFO_InitialDrawMode ASL_TB+59 /* Initial draw mode */ /* Options */ #define ASLFO_Flags ASL_TB+20 /* Option flags */ #define ASLFO_DoFrontPen ASL_TB+44 /* Display Front color selector? */ #define ASLFO_DoBackPen ASL_TB+45 /* Display Back color selector? */ #define ASLFO_DoStyle ASL_TB+46 /* Display Style checkboxes? */ #define ASLFO_DoDrawMode ASL_TB+47 /* Display DrawMode cycle gadget? */ /* Filtering */ #define ASLFO_FixedWidthOnly ASL_TB+48 /* Only allow fixed-width fonts? */ #define ASLFO_MinHeight ASL_TB+16 /* Minimum font height to display */ #define ASLFO_MaxHeight ASL_TB+17 /* Maximum font height to display */ #define ASLFO_FilterFunc ASL_TB+49 /* Function to filter fonts */ #define ASLFO_HookFunc ASL_TB+7 /* Combined callback function */ #define ASLFO_MaxFrontPen ASL_TB+66 /* Max # of colors in front palette */ #define ASLFO_MaxBackPen ASL_TB+67 /* Max # of colors in back palette */ /* Custom additions */ #define ASLFO_ModeList ASL_TB+21 /* Substitute list for drawmodes */ #define ASLFO_FrontPens ASL_TB+64 /* Color table for front pen palette*/ #define ASLFO_BackPens ASL_TB+65 /* Color table for back pen palette */ /* Flag bits for ASLFO_Flags tag */ #define FOB_DOFRONTPEN 0 #define FOB_DOBACKPEN 1 #define FOB_DOSTYLE 2 #define FOB_DODRAWMODE 3 #define FOB_FIXEDWIDTHONLY 4 #define FOB_PRIVATEIDCMP 5 #define FOB_INTUIFUNC 6 #define FOB_FILTERFUNC 7 #define FOF_DOFRONTPEN (1L << FOB_DOFRONTPEN) #define FOF_DOBACKPEN (1L << FOB_DOBACKPEN) #define FOF_DOSTYLE (1L << FOB_DOSTYLE) #define FOF_DODRAWMODE (1L << FOB_DODRAWMODE) #define FOF_FIXEDWIDTHONLY (1L << FOB_FIXEDWIDTHONLY) #define FOF_PRIVATEIDCMP (1L << FOB_PRIVATEIDCMP) #define FOF_INTUIFUNC (1L << FOB_INTUIFUNC) #define FOF_FILTERFUNC (1L << FOB_FILTERFUNC) /***************************************************************************** * * ASL Screen Mode Requester data structures and constants * * This structure must only be allocated by asl.library and is READ-ONLY! * Control of the various fields is provided via tags when the requester * is created with AllocAslRequest() and when it is displayed via * AslRequest() */ struct ScreenModeRequester { ULONG sm_DisplayID; /* Display mode ID */ ULONG sm_DisplayWidth; /* Width of display in pixels */ ULONG sm_DisplayHeight; /* Height of display in pixels */ UWORD sm_DisplayDepth; /* Number of bit-planes of display */ UWORD sm_OverscanType; /* Type of overscan of display */ BOOL sm_AutoScroll; /* Display should auto-scroll? */ ULONG sm_BitMapWidth; /* Used to create your own BitMap */ ULONG sm_BitMapHeight; WORD sm_LeftEdge; /* Coordinates of requester on exit */ WORD sm_TopEdge; WORD sm_Width; WORD sm_Height; BOOL sm_InfoOpened; /* Info window opened on exit? */ WORD sm_InfoLeftEdge; /* Last coordinates of Info window */ WORD sm_InfoTopEdge; WORD sm_InfoWidth; WORD sm_InfoHeight; APTR sm_UserData; /* You can store your own data here */ }; /* An Exec list of custom modes can be added to the list of available modes. * The DimensionInfo structure must be completely initialized, including the * Header. See <graphics/displayinfo.h>. Custom mode ID's must be in the range * 0xFFFF0000..0xFFFFFFFF. Regular properties which apply to your custom modes * can be added in the dn_PropertyFlags field. Custom properties are not * allowed. */ struct DisplayMode { struct Node dm_Node; /* see ln_Name */ struct DimensionInfo dm_DimensionInfo; /* mode description */ ULONG dm_PropertyFlags; /* applicable properties */ }; /* ScreenMode requester tag values, used by AllocAslRequest() and AslRequest() */ /* Window control */ #define ASLSM_Window ASL_TB+2 /* Parent window */ #define ASLSM_Screen ASL_TB+40 /* Screen to open on if no window */ #define ASLSM_PubScreenName ASL_TB+41 /* Name of public screen */ #define ASLSM_PrivateIDCMP ASL_TB+42 /* Allocate private IDCMP? */ #define ASLSM_IntuiMsgFunc ASL_TB+70 /* Function to handle IntuiMessages */ #define ASLSM_SleepWindow ASL_TB+43 /* Block input in ASLSM_Window? */ #define ASLSM_UserData ASL_TB+52 /* What to put in sm_UserData */ #define ASLSM_PopToFront ASL_TB+131 /* Make the requester window visible * when it opens (V44) */ /* Text display */ #define ASLSM_TextAttr ASL_TB+51 /* Text font to use for gadget text */ #define ASLSM_Locale ASL_TB+50 /* Locale ASL should use for text */ #define ASLSM_TitleText ASL_TB+1 /* Title of requester */ #define ASLSM_PositiveText ASL_TB+18 /* Positive gadget text */ #define ASLSM_NegativeText ASL_TB+19 /* Negative gadget text */ /* Initial settings */ #define ASLSM_InitialLeftEdge ASL_TB+3 /* Initial requester coordinates */ #define ASLSM_InitialTopEdge ASL_TB+4 #define ASLSM_InitialWidth ASL_TB+5 /* Initial requester dimensions */ #define ASLSM_InitialHeight ASL_TB+6 #define ASLSM_InitialDisplayID ASL_TB+100 /* Initial display mode id */ #define ASLSM_InitialDisplayWidth ASL_TB+101 /* Initial display width */ #define ASLSM_InitialDisplayHeight ASL_TB+102 /* Initial display height */ #define ASLSM_InitialDisplayDepth ASL_TB+103 /* Initial display depth */ #define ASLSM_InitialOverscanType ASL_TB+104 /* Initial type of overscan */ #define ASLSM_InitialAutoScroll ASL_TB+105 /* Initial autoscroll setting */ #define ASLSM_InitialInfoOpened ASL_TB+106 /* Info wndw initially opened? */ #define ASLSM_InitialInfoLeftEdge ASL_TB+107 /* Initial Info window coords. */ #define ASLSM_InitialInfoTopEdge ASL_TB+108 /* Options */ #define ASLSM_DoWidth ASL_TB+109 /* Display Width gadget? */ #define ASLSM_DoHeight ASL_TB+110 /* Display Height gadget? */ #define ASLSM_DoDepth ASL_TB+111 /* Display Depth gadget? */ #define ASLSM_DoOverscanType ASL_TB+112 /* Display Overscan Type gadget? */ #define ASLSM_DoAutoScroll ASL_TB+113 /* Display AutoScroll gadget? */ /* Filtering */ #define ASLSM_PropertyFlags ASL_TB+114 /* Must have these Property flags */ #define ASLSM_PropertyMask ASL_TB+115 /* Only these should be looked at */ #define ASLSM_MinWidth ASL_TB+116 /* Minimum display width to allow */ #define ASLSM_MaxWidth ASL_TB+117 /* Maximum display width to allow */ #define ASLSM_MinHeight ASL_TB+118 /* Minimum display height to allow */ #define ASLSM_MaxHeight ASL_TB+119 /* Maximum display height to allow */ #define ASLSM_MinDepth ASL_TB+120 /* Minimum display depth */ #define ASLSM_MaxDepth ASL_TB+121 /* Maximum display depth */ #define ASLSM_FilterFunc ASL_TB+122 /* Function to filter mode id's */ /* Custom additions */ #define ASLSM_CustomSMList ASL_TB+123 /* Exec list of struct DisplayMode */ /*****************************************************************************/ #define ASL_LAST_TAG ASL_TB+131 /***************************************************************************** * * Obsolete ASL definitions, here for source code compatibility only. * Please do NOT use in new code. * * #define ASL_V38_NAMES_ONLY to remove these older names */ #ifndef ASL_V38_NAMES_ONLY #define rf_File fr_File #define rf_Dir fr_Drawer #define rf_LeftEdge fr_LeftEdge #define rf_TopEdge fr_TopEdge #define rf_Width fr_Width #define rf_Height fr_Height #define rf_NumArgs fr_NumArgs #define rf_ArgList fr_ArgList #define rf_UserData fr_UserData #define rf_Pat fr_Pattern #define ASL_Dummy (TAG_USER + 0x80000) #define ASL_Hail ASL_Dummy+1 #define ASL_Window ASL_Dummy+2 #define ASL_LeftEdge ASL_Dummy+3 #define ASL_TopEdge ASL_Dummy+4 #define ASL_Width ASL_Dummy+5 #define ASL_Height ASL_Dummy+6 #define ASL_HookFunc ASL_Dummy+7 #define ASL_File ASL_Dummy+8 #define ASL_Dir ASL_Dummy+9 #define ASL_FontName ASL_Dummy+10 #define ASL_FontHeight ASL_Dummy+11 #define ASL_FontStyles ASL_Dummy+12 #define ASL_FontFlags ASL_Dummy+13 #define ASL_FrontPen ASL_Dummy+14 #define ASL_BackPen ASL_Dummy+15 #define ASL_MinHeight ASL_Dummy+16 #define ASL_MaxHeight ASL_Dummy+17 #define ASL_OKText ASL_Dummy+18 #define ASL_CancelText ASL_Dummy+19 #define ASL_FuncFlags ASL_Dummy+20 #define ASL_ModeList ASL_Dummy+21 #define ASL_ExtFlags1 ASL_Dummy+22 #define ASL_Pattern ASL_FontName /* remember what I said up there? Do not use these anymore! */ #define FILB_DOWILDFUNC 7L #define FILB_DOMSGFUNC 6L #define FILB_SAVE 5L #define FILB_NEWIDCMP 4L #define FILB_MULTISELECT 3L #define FILB_PATGAD 0L #define FILF_DOWILDFUNC (1L << FILB_DOWILDFUNC) #define FILF_DOMSGFUNC (1L << FILB_DOMSGFUNC) #define FILF_SAVE (1L << FILB_SAVE) #define FILF_NEWIDCMP (1L << FILB_NEWIDCMP) #define FILF_MULTISELECT (1L << FILB_MULTISELECT) #define FILF_PATGAD (1L << FILB_PATGAD) #define FIL1B_NOFILES 0L #define FIL1B_MATCHDIRS 1L #define FIL1F_NOFILES (1L << FIL1B_NOFILES) #define FIL1F_MATCHDIRS (1L << FIL1B_MATCHDIRS) #define FONB_FRONTCOLOR 0 #define FONB_BACKCOLOR 1 #define FONB_STYLES 2 #define FONB_DRAWMODE 3 #define FONB_FIXEDWIDTH 4 #define FONB_NEWIDCMP 5 #define FONB_DOMSGFUNC 6 #define FONB_DOWILDFUNC 7 #define FONF_FRONTCOLOR (1L << FONB_FRONTCOLOR) #define FONF_BACKCOLOR (1L << FONB_BACKCOLOR) #define FONF_STYLES (1L << FONB_STYLES) #define FONF_DRAWMODE (1L << FONB_DRAWMODE) #define FONF_FIXEDWIDTH (1L << FONB_FIXEDWIDTH) #define FONF_NEWIDCMP (1L << FONB_NEWIDCMP) #define FONF_DOMSGFUNC (1L << FONB_DOMSGFUNC) #define FONF_DOWILDFUNC (1L << FONB_DOWILDFUNC) #endif /*****************************************************************************/ #endif /* LIBRARIES_ASL_H */