home *** CD-ROM | disk | FTP | other *** search
- #ifndef DOARGS_H
- #define DOARGS_H
-
- /************************************************************************/
- /* DoArgs.h */
- /* */
- /* Sophisticated argument evaluation */
- /************************************************************************/
-
- #ifndef UTILITY_TAGITEM_H
- # include <utility/tagitem.h>
- #endif
-
- typedef struct {
- void *DAK_MemPool;
- STRPTR DAK_Template;
- int DAK_NArgs;
- LONG *DAK_Array;
- int DAK_ArgC;
- char **DAK_ArgV;
- } DAKey;
-
- /* -------------------------------------------------------------------- */
- /* Tags valid for all parameter types */
- /* -------------------------------------------------------------------- */
-
- #define DA_Dummy (TAG_USER + 10000)
-
- #define DA_Type (DA_Dummy + 0) // datatype specifier
- #define DA_Result (DA_Dummy + 1) // pointer to pointer to data or pointer to data
- #define DA_Default (DA_Dummy + 2) // default value or pointer there
- #define DA_Minval (DA_Dummy + 3) // minimum required value or pointer there
- #define DA_Maxval (DA_Dummy + 4) // minimum required value or pointer there
- #define DA_Name (DA_Dummy + 5) // parameter name
- #define DA_Alias (DA_Dummy + 6) // alternative parameter name
- #define DA_Helptext (DA_Dummy + 7) // extended help
- #define DA_Passed_Private (DA_Dummy + 8) // private!
- #define DA_Required_S (DA_Dummy + 9) // private!
- #define DA_Required DA_Passed_Private, FALSE,\
- DA_Required_S
- #define DA_TTIconName (DA_Dummy + 10) // char *, name of icon for tooltypes
- #define DA_FailOnBounds (DA_Dummy + 11) // BOOL
- #define DA_Passed (DA_Dummy + 12) // BOOL *
- #define DA_ProvideMem (DA_Dummy + 13) // BOOL
- #define DA_AngleModulo360 (DA_Dummy + 14) // BOOL, angle is modulo 360°
- #define DA_AngleModulo180 (DA_Dummy + 15) // BOOL, angle is modulo 180°
- #define DA_AngleModulo90 (DA_Dummy + 16) // BOOL, angle is modulo 90°
- #define DA_AngleModulo (DA_Dummy + 17) // double *, arbitrary modulo
-
- /* -------------------------------------------------------------------- */
- /* definitions for DA_Type */
- /* -------------------------------------------------------------------- */
-
- #define DAT_BOOL 1
- #define DAT_INTEGER 2
- #define DAT_UNSIGNED 3
- #define DAT_STRING 4
- #define DAT_MULTIPLE 5
- #define DAT_DOUBLE 6
- #define DAT_ANGLE 7
-
- extern DAKey *DoArgs( int, char **, ... );
- extern void FreeDAKey( DAKey * );
-
- #endif
-