1 #ifndef LIBRARIES_REQTOOLS_H
    2 #define LIBRARIES_REQTOOLS_H
    3 /*
    4 **	$Filename: libraries/reqtools.h $
    5 **	$Release: 2.5 $
    6 **	$Revision: 1.1.1.1 $
    7 **
    8 **	reqtools.library definitions
    9 **
   10 **	(C) Copyright 1991-1994 Nico François
   11 **	              1995-1996 Magnus Homgren
   12 **	All Rights Reserved
   13 */
   14 
   15 #ifndef	EXEC_TYPES_H
   16 #include <exec/types.h>
   17 #endif	/* EXEC_TYPES_H */
   18 
   19 #ifndef	EXEC_LISTS_H
   20 #include <exec/lists.h>
   21 #endif	/* EXEC_LISTS_H */
   22 
   23 #ifndef	EXEC_LIBRARIES_H
   24 #include <exec/libraries.h>
   25 #endif	/* EXEC_LIBRARIES_H */
   26 
   27 #ifndef	EXEC_SEMAPHORES_H
   28 #include <exec/semaphores.h>
   29 #endif	/* EXEC_SEMAPHORES_H */
   30 
   31 #ifndef LIBRARIES_DOS_H
   32 #include <libraries/dos.h>
   33 #endif  /* LIBRARIES_DOS_H */
   34 
   35 #ifndef LIBRARIES_DOSEXTENS_H
   36 #include <libraries/dosextens.h>
   37 #endif  /* LIBRARIES_DOSEXTENS_H */
   38 
   39 #ifndef LIBRARIES_DISKFONT_H
   40 #include <libraries/diskfont.h>
   41 #endif  /* LIBRARIES_DISKFONT_H */
   42 
   43 #ifndef	GRAPHICS_TEXT_H
   44 #include <graphics/text.h>
   45 #endif	/* GRAPHICS_TEXT_H */
   46 
   47 #ifndef UTILITY_TAGITEM_H
   48 #include <utility/tagitem.h>
   49 #endif	/* UTILITY_TAGITEM_H */
   50 
   51 #pragma pack(2)
   52 
   53 
   54 #define	REQTOOLSNAME		 "reqtools.library"
   55 #define	REQTOOLSVERSION		 38L
   56 
   57 /***********************
   58 *                      *
   59 *     Preferences      *
   60 *                      *
   61 ***********************/
   62 
   63 #define RTPREF_FILEREQ		 0L
   64 #define RTPREF_FONTREQ		 1L
   65 #define RTPREF_PALETTEREQ	 2L
   66 #define RTPREF_SCREENMODEREQ	 3L
   67 #define RTPREF_VOLUMEREQ	 4L
   68 #define RTPREF_OTHERREQ		 5L
   69 #define RTPREF_NR_OF_REQ	 6L
   70 
   71 struct ReqDefaults {
   72    ULONG Size;
   73    ULONG ReqPos;
   74    UWORD LeftOffset;
   75    UWORD TopOffset;
   76 	UWORD MinEntries;
   77 	UWORD MaxEntries;
   78    };
   79 
   80 struct ReqToolsPrefs {
   81    /* Size of preferences (_without_ this field and the semaphore) */
   82    ULONG PrefsSize;
   83    struct SignalSemaphore PrefsSemaphore;
   84    /* Start of real preferences */
   85    ULONG Flags;
   86    struct ReqDefaults ReqDefaults[RTPREF_NR_OF_REQ];
   87    };
   88 
   89 #define RTPREFS_SIZE \
   90    (sizeof (struct ReqToolsPrefs) - sizeof (struct SignalSemaphore) - 4)
   91 
   92 /* Flags */
   93 
   94 #define RTPRB_DIRSFIRST		 0L
   95 #define RTPRF_DIRSFIRST		 (1L<<RTPRB_DIRSFIRST)
   96 #define RTPRB_DIRSMIXED		 1L
   97 #define RTPRF_DIRSMIXED		 (1L<<RTPRB_DIRSMIXED)
   98 #define RTPRB_IMMSORT		 2L
   99 #define RTPRF_IMMSORT		 (1L<<RTPRB_IMMSORT)
  100 #define RTPRB_NOSCRTOFRONT	 3L
  101 #define RTPRF_NOSCRTOFRONT	 (1L<<RTPRB_NOSCRTOFRONT)
  102 #define RTPRB_NOLED		 4L
  103 #define RTPRF_NOLED		 (1L<<RTPRB_NOLED)
  104 #define RTPRB_DEFAULTFONT	 5L
  105 #define RTPRF_DEFAULTFONT	 (1L<<RTPRB_DEFAULTFONT)
  106 #define RTPRB_DOWHEEL		 6L
  107 #define RTPRF_DOWHEEL		 (1L<<RTPRB_DOWHEEL)
  108 #define RTPRB_FKEYS		 7L
  109 #define RTPRF_FKEYS		 (1L<<RTPRB_FKEYS)
  110 #define RTPRB_FANCYWHEEL	 8L
  111 #define RTPRF_FANCYWHEEL	 (1L<<RTPRB_FANCYWHEEL)
  112 #define RTPRB_MMBPARENT		 9L
  113 #define RTPRF_MMBPARENT		 (1L<<RTPRB_MMBPARENT)
  114 
  115 /***********************
  116 *                      *
  117 *     Library Base     *
  118 *                      *
  119 ***********************/
  120 
  121 struct ReqToolsBase {
  122    struct Library LibNode;
  123    UBYTE RTFlags;
  124    UBYTE pad[3];
  125    BPTR SegList;
  126 
  127    /* PUBLIC FIELDS */
  128 
  129    /* NOTE: Some versions of the Manx C compiler contain a bug so it gets
  130             confused by the library bases below.  Add the rt_ prefix to the
  131             library names to fix the problem (e.g. rt_IntuitionBase). */
  132 
  133    /* The following library bases may be read and used by your program */
  134    struct IntuitionBase *IntuitionBase;
  135    struct GfxBase *GfxBase;
  136    struct DosLibrary *DOSBase;
  137    /* Next two library bases are only (and always) valid on Kickstart 2.0!
  138       (1.3 version of reqtools also initializes these when run on 2.0) */
  139    struct Library *GadToolsBase;
  140    struct Library *UtilityBase;
  141 
  142    /* PRIVATE FIELDS, THESE WILL CHANGE FROM RELEASE TO RELEASE! */
  143 
  144    /* The RealOpenCnt is for the buffered AvailFonts feature.  Since
  145       Kickstart 3.0 offers low memory handlers a release of ReqTools for 3.0
  146       will not use this field and start using the normal OpenCnt again. */
  147    UWORD RealOpenCnt;
  148    UWORD AvailFontsLock;
  149    struct AvailFontsHeader *AvailFontsHeader;
  150    ULONG FontsAssignType;
  151    BPTR FontsAssignLock;
  152    struct AssignList *FontsAssignList;
  153    struct ReqToolsPrefs ReqToolsPrefs;
  154    UWORD prefspad;
  155    };
  156 
  157 /* types of requesters, for rtAllocRequestA() */
  158 #define RT_FILEREQ		 0L
  159 #define RT_REQINFO		 1L
  160 #define RT_FONTREQ		 2L
  161 /* (V38) */
  162 #define RT_SCREENMODEREQ	 3L
  163 
  164 /***********************
  165 *                      *
  166 *    File requester    *
  167 *                      *
  168 ***********************/
  169 
  170 /* structure _MUST_ be allocated with rtAllocRequest() */
  171 
  172 struct rtFileRequester {
  173    ULONG ReqPos;
  174    UWORD LeftOffset;
  175    UWORD TopOffset;
  176    ULONG Flags;
  177    /* OBSOLETE IN V38! DON'T USE! */ struct Hook *Hook;
  178    /* */
  179    char  *Dir;		     /* READ ONLY! Change with rtChangeReqAttrA()! */
  180    char  *MatchPat;	     /* READ ONLY! Change with rtChangeReqAttrA()! */
  181    /* */
  182    struct TextFont *DefaultFont;
  183    ULONG WaitPointer;
  184    /* (V38) */
  185    ULONG LockWindow;
  186    ULONG ShareIDCMP;
  187    struct Hook *IntuiMsgFunc;
  188    UWORD reserved1;
  189    UWORD reserved2;
  190    UWORD reserved3;
  191    UWORD ReqHeight;	     /* READ ONLY!  Use RTFI_Height tag! */
  192    /* Private data follows! HANDS OFF :-) */
  193    };
  194 
  195 /* returned by rtFileRequestA() if multiselect is enabled,
  196    free list with rtFreeFileList() */
  197 
  198 struct rtFileList {
  199    struct rtFileList *Next;
  200    ULONG StrLen;	     /* -1 for directories */
  201    char *Name;
  202    };
  203 
  204 /* structure passed to RTFI_FilterFunc callback hook by
  205    volume requester (see RTFI_VolumeRequest tag) */
  206 
  207 struct rtVolumeEntry {
  208    ULONG Type;		     /* DLT_DEVICE or DLT_DIRECTORY */
  209    char *Name;
  210    };
  211 
  212 /***********************
  213 *                      *
  214 *    Font requester    *
  215 *                      *
  216 ***********************/
  217 
  218 /* structure _MUST_ be allocated with rtAllocRequest() */
  219 
  220 struct rtFontRequester {
  221    ULONG ReqPos;
  222    UWORD LeftOffset;
  223    UWORD TopOffset;
  224    ULONG Flags;
  225    /* OBSOLETE IN V38! DON'T USE! */ struct Hook *Hook;
  226    /* */
  227    struct TextAttr Attr;	 /* READ ONLY! */
  228    /* */
  229    struct TextFont *DefaultFont;
  230    ULONG WaitPointer;
  231    /* (V38) */
  232    ULONG LockWindow;
  233    ULONG ShareIDCMP;
  234    struct Hook *IntuiMsgFunc;
  235    UWORD reserved1;
  236    UWORD reserved2;
  237    UWORD reserved3;
  238    UWORD ReqHeight;		 /* READ ONLY!  Use RTFO_Height tag! */
  239    /* Private data follows! HANDS OFF :-) */
  240    };
  241 
  242 /*************************
  243 *                        *
  244 *  ScreenMode requester  *
  245 *                        *
  246 *************************/
  247 
  248 /* structure _MUST_ be allocated with rtAllocRequest() */
  249 
  250 struct rtScreenModeRequester {
  251    ULONG ReqPos;
  252    UWORD LeftOffset;
  253    UWORD TopOffset;
  254    ULONG Flags;
  255    ULONG private1;
  256    /* */
  257    ULONG DisplayID;		 /* READ ONLY! */
  258    UWORD DisplayWidth;		 /* READ ONLY! */
  259    UWORD DisplayHeight;		 /* READ ONLY! */
  260    /* */
  261    struct TextFont *DefaultFont;
  262    ULONG WaitPointer;
  263    ULONG LockWindow;
  264    ULONG ShareIDCMP;
  265    struct Hook *IntuiMsgFunc;
  266    UWORD reserved1;
  267    UWORD reserved2;
  268    UWORD reserved3;
  269    UWORD ReqHeight;		 /* READ ONLY!  Use RTSC_Height tag! */
  270    /* */
  271    UWORD DisplayDepth;		 /* READ ONLY! */
  272    UWORD OverscanType;		 /* READ ONLY! */
  273    ULONG AutoScroll;		 /* READ ONLY! */
  274    /* Private data follows! HANDS OFF :-) */
  275    };
  276 
  277 /***********************
  278 *                      *
  279 *    Requester Info    *
  280 *                      *
  281 ***********************/
  282 
  283 /* for rtEZRequestA(), rtGetLongA(), rtGetStringA() and rtPaletteRequestA(),
  284    _MUST_ be allocated with rtAllocRequest() */
  285 
  286 struct rtReqInfo {
  287    ULONG ReqPos;
  288    UWORD LeftOffset;
  289    UWORD TopOffset;
  290    ULONG Width;			 /* not for rtEZRequestA() */
  291    char *ReqTitle;		 /* currently only for rtEZRequestA() */
  292    ULONG Flags;
  293    struct TextFont *DefaultFont; /* currently only for rtPaletteRequestA() */
  294    ULONG WaitPointer;
  295    /* (V38) */
  296    ULONG LockWindow;
  297    ULONG ShareIDCMP;
  298    struct Hook *IntuiMsgFunc;
  299    /* structure may be extended in future */
  300    };
  301 
  302 /***********************
  303 *                      *
  304 *     Handler Info     *
  305 *                      *
  306 ***********************/
  307 
  308 /* for rtReqHandlerA(), will be allocated for you when you use
  309    the RT_ReqHandler tag, never try to allocate this yourself! */
  310 
  311 struct rtHandlerInfo {
  312    ULONG private1;
  313    ULONG WaitMask;
  314    ULONG DoNotWait;
  315    /* Private data follows, HANDS OFF :-) */
  316    };
  317 
  318 /* possible return codes from rtReqHandlerA() */
  319 
  320 #define CALL_HANDLER		 (ULONG)0x80000000
  321 
  322 
  323 /*************************************
  324 *                                    *
  325 *                TAGS                *
  326 *                                    *
  327 *************************************/
  328 
  329 #define RT_TagBase		 TAG_USER
  330 
  331 /*** tags understood by most requester functions ***
  332 */
  333 /* optional pointer to window */
  334 #define RT_Window		 (RT_TagBase+1)
  335 /* idcmp flags requester should abort on (useful for IDCMP_DISKINSERTED) */
  336 #define RT_IDCMPFlags		 (RT_TagBase+2)
  337 /* position of requester window (see below) - default REQPOS_POINTER */
  338 #define RT_ReqPos		 (RT_TagBase+3)
  339 /* leftedge offset of requester relative to position specified by RT_ReqPos */
  340 #define RT_LeftOffset		 (RT_TagBase+4)
  341 /* topedge offset of requester relative to position specified by RT_ReqPos */
  342 #define RT_TopOffset		 (RT_TagBase+5)
  343 /* name of public screen to put requester on (Kickstart 2.0 only!) */
  344 #define RT_PubScrName		 (RT_TagBase+6)
  345 /* address of screen to put requester on */
  346 #define RT_Screen		 (RT_TagBase+7)
  347 /* tagdata must hold the address of (!) an APTR variable */
  348 #define RT_ReqHandler		 (RT_TagBase+8)
  349 /* font to use when screen font is rejected, _MUST_ be fixed-width font!
  350    (struct TextFont *, not struct TextAttr *!)
  351    - default GfxBase->DefaultFont */
  352 #define RT_DefaultFont		 (RT_TagBase+9)
  353 /* boolean to set the standard wait pointer in window - default FALSE */
  354 #define RT_WaitPointer		 (RT_TagBase+10)
  355 /* (V38) char preceding keyboard shortcut characters (will be underlined) */
  356 #define RT_Underscore		 (RT_TagBase+11)
  357 /* (V38) share IDCMP port with window - default FALSE */
  358 #define RT_ShareIDCMP		 (RT_TagBase+12)
  359 /* (V38) lock window and set standard wait pointer - default FALSE */
  360 #define RT_LockWindow		 (RT_TagBase+13)
  361 /* (V38) boolean to make requester's screen pop to front - default TRUE */
  362 #define RT_ScreenToFront	 (RT_TagBase+14)
  363 /* (V38) Requester should use this font - default: screen font */
  364 #define RT_TextAttr		 (RT_TagBase+15)
  365 /* (V38) call this hook for every IDCMP message not for requester */
  366 #define RT_IntuiMsgFunc		 (RT_TagBase+16)
  367 /* (V38) Locale ReqTools should use for text */
  368 #define RT_Locale		 (RT_TagBase+17)
  369 
  370 /*** tags specific to rtEZRequestA ***
  371 */
  372 /* title of requester window - english default "Request" or "Information" */
  373 #define RTEZ_ReqTitle		 (RT_TagBase+20)
  374 /* (RT_TagBase+21) reserved */
  375 /* various flags (see below) */
  376 #define RTEZ_Flags		 (RT_TagBase+22)
  377 /* default response (activated by pressing RETURN) - default TRUE */
  378 #define RTEZ_DefaultResponse	 (RT_TagBase+23)
  379 
  380 /*** tags specific to rtGetLongA ***
  381 */
  382 /* minimum allowed value - default MININT */
  383 #define RTGL_Min		 (RT_TagBase+30)
  384 /* maximum allowed value - default MAXINT */
  385 #define RTGL_Max		 (RT_TagBase+31)
  386 /* suggested width of requester window (in pixels) */
  387 #define RTGL_Width		 (RT_TagBase+32)
  388 /* boolean to show the default value - default TRUE */
  389 #define RTGL_ShowDefault	 (RT_TagBase+33)
  390 /* (V38) string with possible responses - english default " _Ok |_Cancel" */
  391 #define RTGL_GadFmt 		 (RT_TagBase+34)
  392 /* (V38) optional arguments for RTGL_GadFmt */
  393 #define RTGL_GadFmtArgs		 (RT_TagBase+35)
  394 /* (V38) invisible typing - default FALSE */
  395 #define RTGL_Invisible		 (RT_TagBase+36)
  396 /* (V38) window backfill - default TRUE */
  397 #define RTGL_BackFill		 (RT_TagBase+37)
  398 /* (V38) optional text above gadget */
  399 #define RTGL_TextFmt		 (RT_TagBase+38)
  400 /* (V38) optional arguments for RTGS_TextFmt */
  401 #define RTGL_TextFmtArgs	 (RT_TagBase+39)
  402 /* (V38) Center text - default FALSE */
  403 #define RTGL_CenterText		 (RT_TagBase+100)
  404 /* (V38) various flags (see below) */
  405 #define RTGL_Flags		 RTEZ_Flags
  406 
  407 /*** tags specific to rtGetStringA ***
  408 */
  409 /* suggested width of requester window (in pixels) */
  410 #define RTGS_Width		 RTGL_Width
  411 /* allow empty string to be accepted - default FALSE */
  412 #define RTGS_AllowEmpty		 (RT_TagBase+80)
  413 /* (V38) string with possible responses - english default " _Ok |_Cancel" */
  414 #define RTGS_GadFmt 		 RTGL_GadFmt
  415 /* (V38) optional arguments for RTGS_GadFmt */
  416 #define RTGS_GadFmtArgs		 RTGL_GadFmtArgs
  417 /* (V38) invisible typing - default FALSE */
  418 #define RTGS_Invisible		 RTGL_Invisible
  419 /* (V38) window backfill - default TRUE */
  420 #define RTGS_BackFill		 RTGL_BackFill
  421 /* (V38) optional text above gadget */
  422 #define RTGS_TextFmt		 RTGL_TextFmt
  423 /* (V38) optional arguments for RTGS_TextFmt */
  424 #define RTGS_TextFmtArgs	 RTGL_TextFmtArgs
  425 /* (V38) Center text - default FALSE */
  426 #define RTGS_CenterText		 RTGL_CenterText
  427 /* (V38) various flags (see below) */
  428 #define RTGS_Flags		 RTEZ_Flags
  429 
  430 /*** tags specific to rtFileRequestA ***
  431 */
  432 /* various flags (see below) */
  433 #define RTFI_Flags		 (RT_TagBase+40)
  434 /* suggested height of file requester */
  435 #define RTFI_Height		 (RT_TagBase+41)
  436 /* replacement text for 'Ok' gadget (max 6 chars) */
  437 #define RTFI_OkText		 (RT_TagBase+42)
  438 /* (V38) bring up volume requester, tag data holds flags (see below) */
  439 #define RTFI_VolumeRequest	 (RT_TagBase+43)
  440 /* (V38) call this hook for every file in the directory */
  441 #define RTFI_FilterFunc		 (RT_TagBase+44)
  442 /* (V38) allow empty file to be accepted - default FALSE */
  443 #define RTFI_AllowEmpty		 (RT_TagBase+45)
  444 
  445 /*** tags specific to rtFontRequestA ***
  446 */
  447 /* various flags (see below) */
  448 #define RTFO_Flags		 RTFI_Flags
  449 /* suggested height of font requester */
  450 #define RTFO_Height		 RTFI_Height
  451 /* replacement text for 'Ok' gadget (max 6 chars) */
  452 #define RTFO_OkText		 RTFI_OkText
  453 /* suggested height of font sample display - default 24 */
  454 #define RTFO_SampleHeight	 (RT_TagBase+60)
  455 /* minimum height of font displayed */
  456 #define RTFO_MinHeight		 (RT_TagBase+61)
  457 /* maximum height of font displayed */
  458 #define RTFO_MaxHeight		 (RT_TagBase+62)
  459 /* [(RT_TagBase+63) to (RT_TagBase+66) used below] */
  460 /* (V38) call this hook for every font */
  461 #define RTFO_FilterFunc		 RTFI_FilterFunc
  462 
  463 /*** (V38) tags for rtScreenModeRequestA ***
  464 */
  465 /* various flags (see below) */
  466 #define RTSC_Flags		 RTFI_Flags
  467 /* suggested height of screenmode requester */
  468 #define RTSC_Height		 RTFI_Height
  469 /* replacement text for 'Ok' gadget (max 6 chars) */
  470 #define RTSC_OkText		 RTFI_OkText
  471 /* property flags (see also RTSC_PropertyMask) */
  472 #define RTSC_PropertyFlags	 (RT_TagBase+90)
  473 /* property mask - default all bits in RTSC_PropertyFlags considered */
  474 #define RTSC_PropertyMask	 (RT_TagBase+91)
  475 /* minimum display width allowed */
  476 #define RTSC_MinWidth		 (RT_TagBase+92)
  477 /* maximum display width allowed */
  478 #define RTSC_MaxWidth		 (RT_TagBase+93)
  479 /* minimum display height allowed */
  480 #define RTSC_MinHeight		 (RT_TagBase+94)
  481 /* maximum display height allowed */
  482 #define RTSC_MaxHeight		 (RT_TagBase+95)
  483 /* minimum display depth allowed */
  484 #define RTSC_MinDepth		 (RT_TagBase+96)
  485 /* maximum display depth allowed */
  486 #define RTSC_MaxDepth		 (RT_TagBase+97)
  487 /* call this hook for every display mode id */
  488 #define RTSC_FilterFunc		 RTFI_FilterFunc
  489 
  490 /*** tags for rtChangeReqAttrA ***
  491 */
  492 /* file requester - set directory */
  493 #define RTFI_Dir		 (RT_TagBase+50)
  494 /* file requester - set wildcard pattern */
  495 #define RTFI_MatchPat		 (RT_TagBase+51)
  496 /* file requester - add a file or directory to the buffer */
  497 #define RTFI_AddEntry		 (RT_TagBase+52)
  498 /* file requester - remove a file or directory from the buffer */
  499 #define RTFI_RemoveEntry	 (RT_TagBase+53)
  500 /* font requester - set font name of selected font */
  501 #define RTFO_FontName		 (RT_TagBase+63)
  502 /* font requester - set font size */
  503 #define RTFO_FontHeight		 (RT_TagBase+64)
  504 /* font requester - set font style */
  505 #define RTFO_FontStyle		 (RT_TagBase+65)
  506 /* font requester - set font flags */
  507 #define RTFO_FontFlags		 (RT_TagBase+66)
  508 /* (V38) screenmode requester - get display attributes from screen */
  509 #define RTSC_ModeFromScreen	 (RT_TagBase+80)
  510 /* (V38) screenmode requester - set display mode id (32-bit extended) */
  511 #define RTSC_DisplayID		 (RT_TagBase+81)
  512 /* (V38) screenmode requester - set display width */
  513 #define RTSC_DisplayWidth	 (RT_TagBase+82)
  514 /* (V38) screenmode requester - set display height */
  515 #define RTSC_DisplayHeight	 (RT_TagBase+83)
  516 /* (V38) screenmode requester - set display depth */
  517 #define RTSC_DisplayDepth	 (RT_TagBase+84)
  518 /* (V38) screenmode requester - set overscan type, 0 for regular size */
  519 #define RTSC_OverscanType	 (RT_TagBase+85)
  520 /* (V38) screenmode requester - set autoscroll */
  521 #define RTSC_AutoScroll		 (RT_TagBase+86)
  522 
  523 /*** tags for rtPaletteRequestA ***
  524 */
  525 /* initially selected color - default 1 */
  526 #define RTPA_Color		 (RT_TagBase+70)
  527 
  528 /*** tags for rtReqHandlerA ***
  529 */
  530 /* end requester by software control, set tagdata to REQ_CANCEL, REQ_OK or
  531    in case of rtEZRequest to the return value */
  532 #define RTRH_EndRequest		 (RT_TagBase+60)
  533 
  534 /*** tags for rtAllocRequestA ***/
  535 /* no tags defined yet */
  536 
  537 
  538 /************
  539 * RT_ReqPos *
  540 ************/
  541 #define REQPOS_POINTER		 0L
  542 #define REQPOS_CENTERWIN	 1L
  543 #define REQPOS_CENTERSCR	 2L
  544 #define REQPOS_TOPLEFTWIN	 3L
  545 #define REQPOS_TOPLEFTSCR	 4L
  546 
  547 /******************
  548 * RTRH_EndRequest *
  549 ******************/
  550 #define REQ_CANCEL		 0L
  551 #define REQ_OK			 1L
  552 
  553 /***************************************
  554 * flags for RTFI_Flags and RTFO_Flags  *
  555 * or filereq->Flags and fontreq->Flags *
  556 ***************************************/
  557 #define FREQB_NOBUFFER		 2L
  558 #define FREQF_NOBUFFER		 (1L<<FREQB_NOBUFFER)
  559 
  560 /*****************************************
  561 * flags for RTFI_Flags or filereq->Flags *
  562 *****************************************/
  563 #define FREQB_MULTISELECT	 0L
  564 #define FREQF_MULTISELECT	 (1L<<FREQB_MULTISELECT)
  565 #define FREQB_SAVE		 1L
  566 #define FREQF_SAVE		 (1L<<FREQB_SAVE)
  567 #define FREQB_NOFILES		 3L
  568 #define FREQF_NOFILES		 (1L<<FREQB_NOFILES)
  569 #define FREQB_PATGAD		 4L
  570 #define FREQF_PATGAD		 (1L<<FREQB_PATGAD)
  571 #define FREQB_SELECTDIRS	 12L
  572 #define FREQF_SELECTDIRS	 (1L<<FREQB_SELECTDIRS)
  573 
  574 /*****************************************
  575 * flags for RTFO_Flags or fontreq->Flags *
  576 *****************************************/
  577 #define FREQB_FIXEDWIDTH	 5L
  578 #define FREQF_FIXEDWIDTH	 (1L<<FREQB_FIXEDWIDTH)
  579 #define FREQB_COLORFONTS	 6L
  580 #define FREQF_COLORFONTS	 (1L<<FREQB_COLORFONTS)
  581 #define FREQB_CHANGEPALETTE	 7L
  582 #define FREQF_CHANGEPALETTE	 (1L<<FREQB_CHANGEPALETTE)
  583 #define FREQB_LEAVEPALETTE	 8L
  584 #define FREQF_LEAVEPALETTE	 (1L<<FREQB_LEAVEPALETTE)
  585 #define FREQB_SCALE		 9L
  586 #define FREQF_SCALE		 (1L<<FREQB_SCALE)
  587 #define FREQB_STYLE		 10L
  588 #define FREQF_STYLE		 (1L<<FREQB_STYLE)
  589 
  590 /*****************************************************
  591 * (V38) flags for RTSC_Flags or screenmodereq->Flags *
  592 *****************************************************/
  593 #define SCREQB_SIZEGADS		 13L
  594 #define SCREQF_SIZEGADS		 (1L<<SCREQB_SIZEGADS)
  595 #define SCREQB_DEPTHGAD		 14L
  596 #define SCREQF_DEPTHGAD		 (1L<<SCREQB_DEPTHGAD)
  597 #define SCREQB_NONSTDMODES	 15L
  598 #define SCREQF_NONSTDMODES	 (1L<<SCREQB_NONSTDMODES)
  599 #define SCREQB_GUIMODES		 16L
  600 #define SCREQF_GUIMODES		 (1L<<SCREQB_GUIMODES)
  601 #define SCREQB_AUTOSCROLLGAD	 18L
  602 #define SCREQF_AUTOSCROLLGAD	 (1L<<SCREQB_AUTOSCROLLGAD)
  603 #define SCREQB_OVERSCANGAD	 19L
  604 #define SCREQF_OVERSCANGAD	 (1L<<SCREQB_OVERSCANGAD)
  605 
  606 /*****************************************
  607 * flags for RTEZ_Flags or reqinfo->Flags *
  608 *****************************************/
  609 #define EZREQB_NORETURNKEY	 0L
  610 #define EZREQF_NORETURNKEY	 (1L<<EZREQB_NORETURNKEY)
  611 #define EZREQB_LAMIGAQUAL	 1L
  612 #define EZREQF_LAMIGAQUAL	 (1L<<EZREQB_LAMIGAQUAL)
  613 #define EZREQB_CENTERTEXT	 2L
  614 #define EZREQF_CENTERTEXT	 (1L<<EZREQB_CENTERTEXT)
  615 
  616 /***********************************************
  617 * (V38) flags for RTGL_Flags or reqinfo->Flags *
  618 ***********************************************/
  619 #define GLREQB_CENTERTEXT	 EZREQB_CENTERTEXT
  620 #define GLREQF_CENTERTEXT	 EZREQF_CENTERTEXT
  621 #define GLREQB_HIGHLIGHTTEXT	 3L
  622 #define GLREQF_HIGHLIGHTTEXT	 (1L<<GLREQB_HIGHLIGHTTEXT)
  623 
  624 /***********************************************
  625 * (V38) flags for RTGS_Flags or reqinfo->Flags *
  626 ***********************************************/
  627 #define GSREQB_CENTERTEXT	 EZREQB_CENTERTEXT
  628 #define GSREQF_CENTERTEXT	 EZREQF_CENTERTEXT
  629 #define GSREQB_HIGHLIGHTTEXT	 GLREQB_HIGHLIGHTTEXT
  630 #define GSREQF_HIGHLIGHTTEXT	 GLREQF_HIGHLIGHTTEXT
  631 
  632 /*****************************************
  633 * (V38) flags for RTFI_VolumeRequest tag *
  634 *****************************************/
  635 #define VREQB_NOASSIGNS		 0L
  636 #define VREQF_NOASSIGNS		 (1L<<VREQB_NOASSIGNS)
  637 #define VREQB_NODISKS		 1L
  638 #define VREQF_NODISKS		 (1L<<VREQB_NODISKS)
  639 #define VREQB_ALLDISKS		 2L
  640 #define VREQF_ALLDISKS		 (1L<<VREQB_ALLDISKS)
  641 
  642 /*
  643    Following things are obsolete in ReqTools V38.
  644    DON'T USE THESE IN NEW CODE!
  645 */
  646 #ifndef NO_REQTOOLS_OBSOLETE
  647 #define REQHOOK_WILDFILE 0L
  648 #define REQHOOK_WILDFONT 1L
  649 #define FREQB_DOWILDFUNC 11L
  650 #define FREQF_DOWILDFUNC (1L<<FREQB_DOWILDFUNC)
  651 #endif
  652 
  653 
  654 #pragma pack()
  655 
  656 #endif /* LIBRARIES_REQTOOLS_H */