#ifndef LIBRARIES_ASL_H #define LIBRARIES_ASL_H 1 /* ** $Filename: libraries/asl.h $ ** $Release: 2.04 Includes, V37.4 $ ** $Revision: 36.5 $ ** $Date: 91/11/08 $ ** ** ASL library name and useful definitions. ** ** (C) Copyright 1989,1990 Charlie Heath ** (C) Copyright 1989-1999 Amiga, Inc. ** All Rights Reserved */ #ifndef EXEC_TYPES_H #include <exec/types.h> #endif #ifndef EXEC_LISTS_H #include <exec/lists.h> #endif #ifndef EXEC_LIBRARIES_H #include <exec/libraries.h> #endif #ifndef UTILITY_HOOKS_H #include <utility/hooks.h> #endif #ifndef UTILITY_TAGITEM_H #include <utility/tagitem.h> #endif #ifndef WBArg #include <workbench/startup.h> #endif #ifndef GRAPHICS_TEXT_H #include <graphics/text.h> #endif /* ************************************************************************ * Standard definitions for asl library information * ************************************************************************ */ #define AslName "asl.library" /* ************************************************************************ * * * The ASL file requester data structure... * * * * The fields described here are for READ ACCESS to the structure * * returned by AllocAslRequest( ASL_FileRequest, ... ) * * * * Any modifications MUST be done via TAGS either at the time of * * creation by AllocAslRequest(), or when used, via AslRequest() * * * ************************************************************************ */ struct FileRequester { APTR rf_Reserved1; BYTE *rf_File; /* Filename pointer */ BYTE *rf_Dir; /* Directory name pointer */ CPTR rf_Reserved2; UBYTE rf_Reserved3; UBYTE rf_Reserved4; APTR rf_Reserved5; WORD rf_LeftEdge,rf_TopEdge; /* Preferred window pos */ WORD rf_Width,rf_Height; /* Preferred window size */ WORD rf_Reserved6; LONG rf_NumArgs; /* A-la WB Args, for multiselects */ struct WBArg *rf_ArgList; APTR rf_UserData; /* Applihandle (you may write!!) */ APTR rf_Reserved7; APTR rf_Reserved8; BYTE *rf_Pat; /* Pattern match pointer */ }; /* note - more reserved fields follow */ /* * The following defined values are the ASL_FuncFlags tag values which * are defined for the ASL file request. These values may be passed * as a TagItem to modify the way the requester is presented. Each * flag value defined has a description of the particular action. * * Also related to the ASL_FuncFlags values is the ASL_HookFunc tagitem, * which provides a callback function pointer to allow the application * to interact with the requester. If an ASL_HookFunc TagItem is * provided, the hook function will be called like so: * * ULONG rf_Function(ULONG Mask, CPTR Object, CPTR AslRequester) * * The Mask value is a copy of the specific ASL_FuncFlags value * the callback is for; Object is a pointer to a data object. * AslRequester is a pointer to the requester structure. * * For the ASL file and font requesters, two ASL_FuncFlags values * are currently defined; FILF_DOWILDFUNC and FILF_DOMSGFUNC. * */ #define FILB_DOWILDFUNC 7L /* Called with an Object=AnchorPath, */ /* ZERO return accepts. */ #define FILB_DOMSGFUNC 6L /* Called with Object=IDCMP message */ /* for other window of shared port. */ /* You must return pointer to Object,*/ /* asl will reply the Object for you */ #define FILB_SAVE 5L /* For a SAVE operation, set this bit */ #define FILB_NEWIDCMP 4L /* Force a new IDCMP (only if rf_Window != NULL) */ #define FILB_MULTISELECT 3L /* Request multiple selections returned from FR. */ /* MULISELECT is ignored if FILB_SAVE is on */ #define FILB_PATGAD 0L /* Ask for pattern gadget */ #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) /* The following additional flags may be passed with the * ASL_ExtFlags1 tag. */ #define FIL1B_NOFILES 0L /* Do not want a file gadget, no files shown */ #define FIL1B_MATCHDIRS 1L /* Have Patgad or rf_Pat screen files AND DIRS */ #define FIL1F_NOFILES (1L << FIL1B_NOFILES) #define FIL1F_MATCHDIRS (1L << FIL1B_MATCHDIRS) /* ************************************************************************ * The ASL font requester data structure... * * * * As with the FileRequest structure, the fields documented here are * * for READ ACCESS ONLY. Any modifications must be done via tags. * ************************************************************************ */ struct FontRequester { APTR fo_Reserved1[2]; struct TextAttr fo_Attr; /* Returned TextAttr */ UBYTE fo_FrontPen; /* Returned pens, if selected */ UBYTE fo_BackPen; UBYTE fo_DrawMode; APTR fo_UserData; }; /* Bit defines for ASL_FuncFlags, for FONT requester */ /* See descriptive text for FILF_ values above for an overview. */ /* Note - old mixed-case defines were nonstandard, now obsolete */ #define FONB_FRONTCOLOR 0 /* Display Front color selector? */ #define FONB_BACKCOLOR 1 /* Display Back color selector? */ #define FONB_STYLES 2 /* Display Styles checkboxes? */ #define FONB_DRAWMODE 3 /* Display DrawMode NWay? */ #define FONB_FIXEDWIDTH 4 /* Only allow fixed-width fonts? */ #define FONB_NEWIDCMP 5 /* Create a new IDCMP port, not shared */ #define FONB_DOMSGFUNC 6 /* Called with Object=IntuiMessage for */ /* other windows in shared port, */ /* you must return Object pointer */ /* and asl will reply Object for you */ #define FONB_DOWILDFUNC 7 /* Called with Object=TextAttr to approve*/ /* NON-Zero return accepts */ #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) /************************************************************************/ /* Arguments to AllocAslRequest() */ /* Types of requester structures which may be allocated: */ /************************************************************************/ #define ASL_FileRequest 0 #define ASL_FontRequest 1 /************************************************************************/ /* Tags for AllocAslRequest() and AslRequest() */ /************************************************************************/ #define ASL_Dummy (TAG_USER + 0x80000) #define ASL_Hail ASL_Dummy+1 /* Hailing text follows */ #define ASL_Window ASL_Dummy+2 /* Parent window for IDCMP & screen */ #define ASL_LeftEdge ASL_Dummy+3 /* Initialize LeftEdge */ #define ASL_TopEdge ASL_Dummy+4 /* Initialize TopEdge */ #define ASL_Width ASL_Dummy+5 #define ASL_Height ASL_Dummy+6 #define ASL_HookFunc ASL_Dummy+7 /* Hook function pointer */ /* Tags specific to file request */ #define ASL_File ASL_Dummy+8 /* Initial name of file follows */ #define ASL_Dir ASL_Dummy+9 /* Initial string of filerequest dir */ /* Tags specific to font request */ #define ASL_FontName ASL_Dummy+10 /* Initial font name */ #define ASL_FontHeight ASL_Dummy+11 /* Initial font height */ #define ASL_FontStyles ASL_Dummy+12 /* Initial font styles */ #define ASL_FontFlags ASL_Dummy+13 /* Initial font flags for textattr */ #define ASL_FrontPen ASL_Dummy+14 /* Initial frontpen color */ #define ASL_BackPen ASL_Dummy+15 /* Initial backpen color */ #define ASL_MinHeight ASL_Dummy+16 /* Minimum font height to display */ #define ASL_MaxHeight ASL_Dummy+17 /* Max font height to display */ #define ASL_OKText ASL_Dummy+18 /* Text displayed in OK gadget */ #define ASL_CancelText ASL_Dummy+19 /* Text displayed in CANCEL gadget */ #define ASL_FuncFlags ASL_Dummy+20 /* Function flags, depend on request */ #define ASL_ModeList ASL_Dummy+21 /* Substitute list for font drawmodes */ #define ASL_ExtFlags1 ASL_Dummy+22 /* For passing extended FIL1F flags */ #define ASL_Pattern ASL_FontName /* File requester pattern string */ /******** END of ASL Tag values *****************************************/ #endif