@DATABASE Requester V1.00
$VER: Pure Basic - Requester library V1.00 (01.09.1999) © Fantaisie Software
@NODE MAIN "Requester V1.00"

  @{b}Pure Basic Requester library V1.00@{ub}

    Requester in Pure Basic nutzen die Amiga Standard ASL Library,
    um Zugriff auf die 3 Standard-Requester zu bieten.

  @{b}Befehlsübersicht:@{ub}

    @{" FileRequester   " LINK FileRequester}
    @{" FontRequester   " LINK FontRequester}
    @{" InitRequester   " LINK InitRequester}
    @{" RequesterHeight " LINK RequesterHeight}
    @{" RequesterPosX   " LINK RequesterPosX}
    @{" RequesterPosY   " LINK RequesterPosY}
    @{" RequesterWidth  " LINK RequesterWidth}
    @{" ScreenRequester " LINK ScreenRequester}

  @{b}Beispiel:@{ub}

    @{" Einige Requester " LINK "/Examples/Sources/Requester.pb/Main"}

@ENDNODE


@NODE RequesterPosX

    @{b}SYNTAX@{ub}
  posx.w = RequesterPosX()

    @{b}FUNCTION@{ub}
  Ermittelt die X Koordinate des letzten geschlossenen ASL Requesters
  (Datei, Bildschirmmodus oder Zeichensatz).

@ENDNODE


@NODE RequesterPosY

    @{b}SYNTAX@{ub}
  posy.w = RequesterPosY()

    @{b}FUNCTION@{ub}
  Ermittelt die Y Koordinate des letzten geschlossenen ASL Requesters
  (Datei, Bildschirmmodus oder Zeichensatz).

@ENDNODE


@NODE RequesterWidth

    @{b}SYNTAX@{ub}
  width.w = RequesterWidth()

    @{b}FUNCTION@{ub}
  Ermittelt die Breite des letzten geschlossenen ASL Requesters
  (Datei, Bildschirmmodus oder Zeichensatz).

@ENDNODE


@NODE RequesterHeight

    @{b}SYNTAX@{ub}
  height.w = RequesterHeight()

    @{b}FUNCTION@{ub}
  Ermittelt die Höhe des letzten geschlossenen ASL Requesters
  (Datei, Bildschirmmodus oder Zeichensatz).

@ENDNODE


@NODE InitRequester

    @{b}SYNTAX@{ub}
  result.l = InitRequester()

    @{b}FUNCTION@{ub}
  Versucht die ASL Library V36+ zu öffnen. Ergibt 'result' gleich NULL,
  konnte die ASL.library nicht geöffnet werden. Testen Sie dies am
  Anfang des Programms deshalb sorgfältig, um späteren Programmabstürzen
  vorzubeugen. Sie müssen diese Funktion aufrufen, um anschließend die
  Requester Befehle nutzen zu können.

  Beispiel:

  If InitRequester() = 0
    NPrint("Konnte die ASL.library V36+ nicht öffen")
    End                                      ; Beende das Programm oder
                                             ; deaktiviere ASL Aufrufe.
  Endif

@ENDNODE


@NODE FileRequester

    @{b}SYNTAX@{ub}
  selectedfile.s = FileRequester(TagListID())

    @{b}FUNCTION@{ub}
  Ein Standard ASL Dateirequester wird entsprechend den Einstellungen
  der Tag-Liste geöffnet. Diese Funktion gibt den kompletten Dateipfad
  und Dateinamen (korrekt verknüpft) zurück. Wenn Sie schonmal die
  ASL Library benutzt haben, werden Sie wissen, dass es nicht sehr
  einfach ist, beide zu kombinieren. Diese Funktion erledigt das für
  Sie. Viel Freude damit.
  Ergibt selectedfile$ gleich NULL, dann hat der Benutzer den Datei-
  Requester abgebrochen (cancelled).


  Verfügbare Tags:


    #ASLFR_Window (struct Window *) - Parent window of requester. If no
            #ASLFR_Screen tag is specified, the window structure
            is used to determine which screen to open the requester
            window on. (V36)

    #ASLFR_PubScreenName (STRPTR) - Name of a public screen to open on.
            This overrides the screen used by #ASLFR_Window. (V38)

    #ASLFR_Screen (struct Screen *) - Screen on which to open the requester.
            This overrides the screen used by #ASLFR_Window or by
            #ASLFR_PubScreenName. (V38)

    #ASLFR_PrivateIDCMP (BOOL) - When set to TRUE, this tells ASL to
            allocate a new IDCMP port for the requesting window.
            If not specified or set to FALSE, and if #ASLFR_Window
            is provided, the requesting window will share
            #ASLFR_Window's IDCMP port. (V38)

    #ASLFR_IntuiMsgFunc (struct Hook *) - A function to call whenever an
            unknown Intuition message arrives at the message port
            being used by the requesting window. The function
            receives the following parameters:
                A0 - (struct Hook *)
                A1 - (struct IntuiMessage *)
                A2 - (struct FileRequester *)
            (V38)

    #ASLFR_SleepWindow (BOOL) - When set to TRUE, this tag will cause the
            window specified by #ASLFR_Window to be "put to
            sleep". That is, a busy pointer will be displayed in
            the parent window, and no gadget or menu activity will
            be allowed. This is done by opening an invisible
            Intuition Requester in the parent window. (V38)

    #ASLFR_UserData (APTR) - A 32-bit value that is simply copied in the
            fr_UserData field of the requester structure. (V38)

    #ASLFR_TextAttr (struct TextAttr *) - Font to be used for the requester
            window's gadgets and menus. If this tag is not provided
            or its value is NULL, the default font of the screen
            on which the requesting window opens will be used.
            This font must already be in memory as ASL calls
            @{"OpenFont()" Link "graphics/OpenFont()"} and not @{"OpenDiskFont()" Link "diskfont/OpenDiskFont()"}. As of V38, the font
            used in the file requester's file list must be
            monospaced. If the font provided with this tag is
            not monospaced, then the file list will use the current
            system default font as chosen in preferences. (V38)

    #ASLFR_Locale (struct Locale *) - Locale to use for the requester
            window. This determines the language used for the
            requester's gadgets and menus. If this tag is not
            provided or its value is NULL, the system's current
            default locale will be used. As of V38, items such as
            the date format always uses the system default locale.
            (V38)

    #ASLFR_TitleText (STRPTR) - Title to use for the requesting window.
            Default is no title. (V36)

    #ASLFR_PositiveText (STRPTR) - Label of the positive gadget in the
            requester. English default is "OK". Prior to V38, this
            string could not be longer than 6 characters. (V36)

    #ASLFR_NegativeText (STRPTR) - Label of the negative gadget in the
            requester. English default is "Cancel". Prior to V38,
            this string could not be longer than 6 characters.
            (V36)

    #ASLFR_InitialLeftEdge (WORD) - Suggested left edge of requester
            window. (V36)

    #ASLFR_InitialTopEdge (WORD) - Suggested top edge of requester
            window. (V36)

    #ASLFR_InitialWidth (WORD) - Suggested width of requester window. (V36)

    #ASLFR_InitialHeight (WORD) - Suggested height of requester window.
            (V36)

    #ASLFR_InitialFile (STRPTR) - Initial contents of the file-requester's
            File text gadget. Default is empty. (V36)

    #ASLFR_InitialDrawer (STRPTR) - Initial contents of the file
            requester's Drawer text gadget. Default is empty. (V36)

    #ASLFR_InitialPattern (STRPTR) - Initial contents of the file
            requester's Pattern text gadget. Default is #?. (V36)

    #ASLFR_Flags1 (ULONG) - Bulk initialization of many of the requester's
            options. See <libraries/asl.h> for the possible
            flag values. Default is 0. (V36)

    #ASLFR_Flags2 (ULONG) - Bulk initialization of many of the requester's
            options. See <libraries/asl.h> for the possible
            flag values. Default is 0. (V36)

    #ASLFR_DoSaveMode (BOOL) - Set this tag to TRUE when the file requester
            is being used for saving. Default is FALSE. (V38)

    #ASLFR_DoMultiSelect (BOOL) - Set this tag to TRUE to let the user
            select multiple files at once. This tag excludes
            save mode. Default is FALSE. (V38)

    #ASLFR_DoPatterns (BOOL) - Set this tag to TRUE to cause a pattern
            gadget to be displayed. Default is FALSE. (V38)

    #ASLFR_DrawersOnly (BOOL) - Set this tag to TRUE to cause the requester
            to only display drawers, and have no File gadget. This
            is useful to let the user choose a destination
            directory. Default is FALSE. (V38)

    #ASLFR_FilterFunc (struct Hook *) - A function to call for each file
            encountered. If the function returns TRUE, the file is
            included in the file list, otherwise it is rejected
            and not displayed. The function receives the following
            parameters:
                A0 - (struct Hook *)
                A1 - (struct AnchorPath *)
                A2 - (struct FileRequester *)
            (V38)

    #ASLFR_RejectIcons (BOOL) - Set this tag to TRUE to stop the requester
            from displaying Workbench icons (.info files). This flag should
            normally be set. Default is FALSE. (V38)

    #ASLFR_RejectPattern (UBYTE *) - Specifies an AmigaDOS pattern that is
            used to reject files. That is, any files with names
            matching this pattern are not included in the file
            list. Note that the pattern must have been
            parsed by @{"dos.library/ParsePatternNoCase()" Link "dos/ParsePatternNoCase()"}. Default
            is ~(#?) which matches nothing. (V38)

    #ASLFR_AcceptPattern (UBYTE *) - Specifies an AmigaDOS pattern that is
            used to accept files. That is, only files with names
            matching this pattern are included in the file list.
            Note that the pattern must have been parsed by
            @{"dos.library/ParsePatternNoCase()" Link "dos/ParsePatternNoCase()"}. Default is #? which
            matches everything. (V38)

    #ASLFR_FilterDrawers (BOOL) - Set this tag to TRUE if you want the
            #ASLFR_RejectPattern, #ASLFR_AcceptPattern, and the
            Pattern text gadget to also apply to drawer names.
            Normally, drawers are always displayed. Default is
            FALSE. (V38)

    #ASLFR_HookFunc (APTR) - A function that is called if the
            #FRF_FILTERFUNC or #FRF_INTUIFUNC flags are specified in
            the #ASLFR_Flags1 tag. The function will be called like
            so, with the arguments on the stack using the standard
            C pushing order:

                ULONG function(ULONG mask, APTR object,
                           struct FileRequester *fr)

            The Mask value is a copy of the specific #ASLFR_Flags1
            value the callback is for, either #FRF_FILTERFUNC or
            #FRF_INTUIFUNC; object is a pointer to a data object
            (a (struct IntuiMessage *) for #FRF_INTUIFUNC, and a
            (struct AnchorPath *) for #FRF_FILTERFUNC).

            For #FRF_FILTERFUNC, the function should return 0 if the
            file should be added to the list, non-zero if it
            shouldn't. For #FRF_INTUIFUNC, the function should
            return the original (struct IntuiMessage *) it was
            passed.


@ENDNODE


@NODE FontRequester

    @{b}SYNTAX@{ub}
  *ptr.PBFontRequester = FontRequester(TagListID())

    @{b}FUNCTION@{ub}
  Ein Standard ASL Zeichensatz-Requester wird entsprechend den Einstellungen
  der Tag-Liste geöffnet. Diese Funktion gibt einen Zeiger auf einen
  Speicherbereich zurück, der alle Informationen über den ausgewählten
  Zeichensatz enthält. Sie können über die PBFontRequester Struktur, welche
  in der 'AmigaLibs.res' (Resident) Datei beschrieben wird, einfach auf die
  Daten zugreifen.

  PBFontRequester Struktur:

  Structure PBFontRequester
    *Name.b
    YSize.w
    Style.b
    Flags.b
    FrontPen.b
    BackPen.b
    DrawMode.b
  EndStructure


  Beispiel:

  *ptr.PBFontRequester = RequesterFontRequester(0)

  If *ptr
    NPrint("Font Name :", PeekS(*ptr\Name))
    YSize.w = *ptr\YSize
    Style.b = *ptr\Style
  Else
    NPrint("Cancelled")
  Endif


  Verfügbare Tags:

    #ASLFO_Window (struct Window *) - Parent window of requester. If no
            #ASLFO_Screen tag is specified, the window structure
            is used to determine on which screen to open the
            requester window. (V36)

    #ASLFO_PubScreenName (STRPTR) - Name of a public screen to open on.
            This overrides the screen used by #ASLFO_Window. (V38)

    #ASLFO_Screen (struct Screen *) - Screen on which to open the requester.
            This overrides the screen used by #ASLFO_Window or by
            #ASLFO_PubScreenName. (V38)

    #ASLFO_PrivateIDCMP (BOOL) - When set to TRUE, this tells ASL to
            allocate a new IDCMP port for the requester window.
            If not specified or set to FALSE, and if #ASLFO_Window
            is provided, the requester window will share
            #ASLFO_Window's IDCMP port. (V38)

    #ASLFO_IntuiMsgFunc (struct Hook *) - A function to call whenever an
            unknown Intuition message arrives at the message port
            being used by the requester window. The function
            receives the following parameters:
                A0 - (struct Hook *)
                A1 - (struct IntuiMessage *)
                A2 - (struct FontRequester *)
            (V38)

    #ASLFO_SleepWindow (BOOL) - When set to TRUE, this tag will cause the
            window specified by #ASLFO_Window to be "put to
            sleep". That is, a busy pointer will be displayed in
            the parent window, and no gadget or menu activity will
            be allowed. This is done by opening an invisible
            Intuition Requester in the parent window. (V38)

    #ASLFO_UserData (APTR) - A 32-bit value that is simply copied in the
            fo_UserData field of the requester structure. (V38)

    #ASLFO_TextAttr (struct TextAttr *) - Font to be used for the requesting
            window's gadgets and menus. If this tag is not provided
            or its value is NULL, the default font of the screen
            on which the requester window opens will be used.
            This font must already be in memory as ASL calls
            @{"OpenFont()" Link "graphics/OpenFont()"} and not @{"OpenDiskFont()" Link "diskfont/OpenDiskFont()"}.
            (V38)

    #ASLFO_Locale (struct Locale *) - Locale to use for the requesting
            window. This determines the language used for the
            requester's gadgets and menus. If this tag is not
            provided or its value is NULL, the system's current
            default locale will be used. (V38)

    #ASLFO_TitleText (STRPTR) - Title to use for the requester window.
            Default is no title. (V36)

    #ASLFO_PositiveText (STRPTR) - Label of the positive gadget in the
            requester. English default is "OK". Prior to V38, this
            string could not be longer than 6 characters. (V36)

    #ASLFO_NegativeText (STRPTR) - Label of the negative gadget in the
            requester. English default is "Cancel". Prior to V38,
            this string could not be longer than 6 characters.
            (V36)

    #ASLFO_InitialLeftEdge (WORD) - Suggested left edge of requester
            window. (V36)

    #ASLFO_InitialTopEdge (WORD) - Suggested top edge of requester
            window. (V36)

    #ASLFO_InitialWidth (WORD) - Suggested width of requester window. (V38)

    #ASLFO_InitialHeight (WORD) - Suggested height of requester window.
            (V38)

    #ASLFO_InitialName (STRPTR) - Initial contents of the font requester's
            Name text gadget. Default is none. (V36)

    #ASLFO_InitialSize (UWORD) - Initial contents of the font requester's
            Size numeric gadget (fo_Attr.ta_YSize). Default is 8.
            (V36)

    #ASLFO_InitialStyle (UBYTE) - Initial setting of the font requester's
            Style gadget (fo_Attr.ta_Style). Default is FS_NORMAL.
            (V36)

    #ASLFO_InitialFlags (UBYTE) - Initial setting of the font requester's
            fo_Flags field (fo_Attr.ta_Flags). Default is
            FPF_ROMFONT. (V36)

    #ASLFO_InitialFrontPen (UBYTE) - Initial setting of the font requester's
            Front Color gadget (fo_FrontPen). This value also
            determines the color used to render the text in the
            sample font area. Default is 1. (V36)

    #ASLFO_InitialBackPen (UBYTE) - Initial setting of the font requester's
            Back Color gadget (fo_BackPen). This value also
            determines the color used to render the background of
            the sample font area. Default is 0. (V36)

    #ASLFO_InitialDrawMode (UBYTE) - Initial setting of the font
            requester's Mode gadget (fo_DrawMode). Default is
            JAM1. (V38)

    #ASLFO_Flags (ULONG) - Bulk initialization of many of the requester's
            options. See <libraries/asl.h> for the possible
            flag values. Default is 0. (V36)

    #ASLFO_DoFrontPen (BOOL) - Set this tag to TRUE to cause the requester
            to display the Front Color selection gadget. Default is
            FALSE. (V38)

    #ASLFO_DoBackPen (BOOL) - Set this tag to TRUE to cause the requester
            to display the Back Color selection gadget. Default
            is FALSE. (V38)

    #ASLFO_DoStyle (BOOL) - Set this tag to TRUE to cause the requester
            to display the Style checkboxes. Default is FALSE.
            (V38)

    #ASLFO_DoDrawMode (BOOL) - Set this tag to TRUE to cause the requester
            to display the Mode cycle gadget. Default is FALSE.
            (V38)

    #ASLFO_FixedWidthOnly (BOOL) - Set this tag to TRUE to cause the
            requester to only display fixed-width fonts. Default
            is FALSE. (V38)

    #ASLFO_MinHeight (UWORD) - The minimum font height to let the user
            select. Default is 5. (V36)

    #ASLFO_MaxHeight (UWORD) - The maximum font height to let the user
            select. Default is 24. (V36)

    #ASLFO_FilterFunc (struct Hook *) - A function to call for each font
            encountered. If the function returns TRUE, the font is
            included in the font list, otherwise it is rejected
            and not displayed. The function receives the following
            parameters:
                A0 - (struct Hook *)
                A1 - (struct TextAttr *)
                A2 - (struct FontRequester *)
            (V38)

    #ASLFO_HookFunc (APTR) - A function that is called if the
            FOF_FILTERFUNC or FOF_INTUIFUNC flags are specified in
            the #ASLFO_Flags tag. The function will be called like
            so, with the arguments on the stack using the standard
            C pushing order:

                ULONG function(ULONG mask, APTR object,
                           struct FontRequester *fr)

            The Mask value is a copy of the specific #ASLFO_Flags
            value the callback is for, either FOF_FILTERFUNC or
            FOF_INTUIFUNC; object is a pointer to a data object
            (a (struct IntuiMessage *) for FOF_INTUIFUNC, and a
            (struct TextAttr *) for FOF_FILTERFUNC).

            For FOF_FILTERFUNC, the function should return 1 if the
            font should be added to the list, 0 if it
            shouldn't. For FOF_INTUIFUNC, the function should
            return the original (struct IntuiMessage *) that it was
            passed.

    #ASLFO_MaxFrontPen (UBYTE) - The maximum number of pens that are offered
            to the user when the #ASLFO_DoFrontPen tag is specified.
            Default is 255. (V40)

    #ASLFO_MaxBackPen (UBYTE) - The maximum number of pens that are offered
            to the user when the #ASLFO_DoBackPen tag is specified.
            Default is 255. (V40)

    #ASLFO_ModeList (STRPTR *) - Replacement list of modes to display in
            Mode cycle gadget. The first string pointer is used
            as the name of the gadgets, and following strings are
            used as the different labels of the cycle gadget,
            until a NULL string pointer which denotes the end of
            the string pointer array. The first string in this
            array corresponds to JAM1, the second is JAM2, the
            third to COMPLEMENT. The array can be terminated early
            by not providing all entries. English default for
            the array is "Text" "Text+Field" and "Complement".
            (V36)

    #ASLFO_FrontPens (UBYTE *) - Pointer to a table of pen numbers
            indicating  which colors should be used and edited
            by the palette gadget when the #ASLFO_DoFrontPen tag is
            specified. This array must contain as many entries as
            there are colours displayed in the palette gadget. The
            Default is NULL, which causes a 1-to-1 mapping of pen
            numbers. (V40)

    #ASLFO_BackPens (UBYTE *) - Pointer to a table of pen numbers
            indicating  which colors should be used and edited
            by the palette gadget when the #ASLFO_DoBackPen tag is
            specified. This array must contain as many entries as
            there are colours displayed in the palette gadget. The
            Default is NULL, which causes a 1-to-1 mapping of pen
            numbers. (V40)

@ENDNODE


@NODE ScreenRequester

    @{b}SYNTAX@{ub}
  *ptr.PBScreenRequester = RequesterScreenRequester(TagListID())

    @{b}FUNCTION@{ub}
  Ein Standard ASL Bildschirmmodus-Requester wird entsprechend den
  Einstellungen der Tag-Liste geöffnet. Diese Funktion gibt einen Zeiger
  auf einen Speicherbereich zurück, der alle Informationen über den
  ausgewählten Bildschirmmodus enthält. Sie können über die
  PBScreenRequester Struktur, welche in der 'AmigaLibs.res' (Resident)
  Datei beschrieben wird, einfach auf die Daten zugreifen.

  PBScreenRequester Struktur:

  Structure PBScreenRequester
    DisplayID.l     ; Bildschirm Modus ID
    Width.l         ; Breite des Bildschirms in Pixel
    Height.l        ; Höhe des Bildschirms in Pixel
    Depth.w         ; Anzahl der Bitplanes des Bildschirms
    OverscanType.w  ; Typ des Overscans vom Bildschirm
    AutoScroll.b    ; Soll der Bildschirm Auto-Scrolling unterstützen?
  EndStructure


  Verfügbare Tags:

    #ASLSM_Window (struct Window *) - Parent window of requester. If no
            #ASLSM_Screen tag is specified, the window structure
            is used to determine which screen to open the
            requester window on. (V38)

    #ASLSM_PubScreenName (STRPTR) - Name of a public screen to open on.
            This overrides the screen used by #ASLSM_Window. (V38)

    #ASLSM_Screen (struct Screen *) - Screen on which to open the requester.
            This overrides the screen used by #ASLSM_Window or by
            #ASLSM_PubScreenName. (V38)

    #ASLSM_PrivateIDCMP (BOOL) - When set to TRUE, this tells ASL to
            allocate a new IDCMP port for the requesting window.
            If not specified or set to FALSE, and if #ASLSM_Window
            is provided, the requesting window will share
            #ASLSM_Window's IDCMP port. (V38)

    #ASLSM_IntuiMsgFunc (struct Hook *) - A function to call whenever an
            unknown Intuition message arrives at the message port
            being used by the requesting window. The function
            receives the following parameters:
                A0 - (struct Hook *)
                A1 - (struct IntuiMessage *)
                A2 - (struct ScreenModeRequester *)
            (V38)

    #ASLSM_SleepWindow (BOOL) - When set to TRUE, this tag will cause the
            window specified by #ASLSM_Window to be "put to
            sleep". That is, a busy pointer will be displayed in
            the parent window, and no gadget or menu activity will
            be allowed. This is done by opening an invisible
            Intuition Requester in the parent window. (V38)

    #ASLSM_UserData (APTR) - A 32-bit value that is simply copied in the
            sm_UserData field of the requester structure. (V38)

    #ASLSM_TextAttr (struct TextAttr *) - Font to be used for the requester
            window's gadgets and menus. If this tag is not provided
            or its value is NULL, the default font of the screen
            on which the requester window opens will be used.
            This font must already be in memory as ASL calls
            @{"OpenFont()" Link "graphics/OpenFont()"} and not @{"OpenDiskFont()" Link "diskfont/OpenDiskFont()"}.
            (V38)

    #ASLSM_Locale (struct Locale *) - Locale to use for the requester
            window. This determines the language used for the
            requester's gadgets and menus. If this tag is not
            provided or its value is NULL, the system's current
            default locale will be used. (V38)

    #ASLSM_TitleText (STRPTR) - Title to use for the requester window.
            Default is no title. (V38)

    #ASLSM_PositiveText (STRPTR) - Label of the positive gadget in the
            requester. English default is "OK". Prior to V38, this
            string could not be longer than 6 characters. (V36)

    #ASLSM_NegativeText (STRPTR) - Label of the negative gadget in the
            requester. English default is "Cancel". Prior to V38,
            this string could not be longer than 6 characters.
            (V36)

    #ASLSM_InitialLeftEdge (WORD) - Suggested left edge of requester
            window. (V38)

    #ASLSM_InitialTopEdge (WORD) - Suggested top edge of requester
            window. (V38)

    #ASLSM_InitialWidth (WORD) - Suggested width of requester window. (V38)

    #ASLSM_InitialHeight (WORD) - Suggested height of requester window.
            (V38)

    #ASLSM_InitialDisplayID (ULONG) - Initial setting of the Mode list view
            gadget (sm_DisplayID). Default is 0 (LORES_KEY). (V38)

    #ASLSM_InitialDisplayWidth (ULONG) - Initial setting of the Width gadget
            (sm_DisplayWidth). Default is 640. (V38)

    #ASLSM_InitialDisplayHeight (ULONG) - Initial setting of the Height
            gadget (sm_DisplayHeight). Default is 200. (V38)

    #ASLSM_InitialDisplayDepth (UWORD) - Initial setting of the Colors
            gadget (sm_DisplayDepth). Default is 2. (V38)

    #ASLSM_InitialOverscanType (UWORD) - Initial setting of the
            Overscan Type cycle gadget (sm_OverscanType).
            These values are the OSCAN_#? values from
            <intuition/screens.h>.

            User-space naming of overscan types is different than
            programmer-space:

            Under V38:
                 0               -->  "Regular Size"
                 OSCAN_TEXT      -->  "Text Size"
                 OSCAN_STANDARD  -->  "Graphics Size"
                 OSCAN_MAXIMUM   -->  "Maximum Size"

            Under V39 and above:
                 OSCAN_TEXT      -->  "Text Size"
                 OSCAN_STANDARD  -->  "Graphics Size"
                 OSCAN_MAXIMUM   -->  "Extreme Size"
                 OSCAN_VIDEO     -->  "Maximum Size"

            OSCAN_VIDEO is not supported prior to V39. The value
            0 corresponds to "Regular Size" under V38. Since this
            value isn't supported by Intuition's SA_Overscan
            tag, it was removed from ASL in V39. Asking for 0
            under V39 will yield OSCAN_TEXT.

            Default is OSCAN_TEXT. (V38)

    #ASLSM_InitialAutoScroll (BOOL) - Initial setting of the AutoScroll
            cycle gadget (sm_AutoScroll). Default is TRUE. (V38)

    #ASLSM_InitialInfoOpened (BOOL) - Whether to open the property
            information window automatically. Default is FALSE.
            (V38)

    #ASLSM_InitialInfoLeftEdge (WORD) - Initial left edge of information
            window. (V38)

    #ASLSM_InitialInfoTopEdge (WORD) - Initial top edge of information
            window. (V38)

    #ASLSM_DoWidth (BOOL) - Set this tag to TRUE to cause the requester
            to display the Width numeric gadget. Default is FALSE.
            (V38)

    #ASLSM_DoHeight (BOOL) - Set this tag to TRUE to cause the requester
            to display the Height numeric gadget. Default is FALSE.
            (V38)

    #ASLSM_DoDepth (BOOL) - Set this tag to TRUE to cause the requester to
            display the Colours slider gadget. Default is FALSE.
            (V38)

    #ASLSM_DoOverscanType (BOOL) - Set this tag to TRUE to cause the
            requester to display the Overscan Type cycle gadget.
            Default is FALSE. (V38)

    #ASLSM_DoAutoScroll (BOOL) - Set this tag to TRUE to cause the requester
            to display the AutoScroll checkbox gadget. Default is
            FALSE. (V38)

    #ASLSM_PropertyFlags (ULONG) - A mode must have these property flags to
            appear in the list of modes. Only the bits set in
            #ASLSM_PropertyMask are considered. See the description
            of #ASLSM_PropertyMask for more info. Default is
            DIPF_IS_WB. (V38)

    #ASLSM_PropertyMask (ULONG) - A mask to apply to #ASLSM_PropertyFlags
            to determine which bits to consider. The use of these
            two values is identical in concept to how Exec uses
            the two flag parameters in @{"exec.library/SetSignal()" Link "exec/SetSignal()"}.
            Default is DIPF_IS_WB. This is how this tag and the
            #ASLSM_PropertyFlags tag interact:

            if ((displayInfo.PropertyFlags & propertyMask) ==
               (propertyFlags & propertyMask))
            {
                /* Mode accepted */
            }
            else
            {
                /* Mode rejected */
            }

            where "displayInfo" is a filled in DisplayInfo
            structure for a given mode. (V38)

    #ASLSM_MinWidth (ULONG) - The minimum display width to let the user
            choose. Default is 16. (V38)

    #ASLSM_MaxWidth (ULONG) - The maximum display width to let the user
            choose. Default is 16368. (V38)

    #ASLSM_MinHeight (ULONG) - The minimum display height to let the user
            choose. Default is 16. (V38)

    #ASLSM_MaxHeight (ULONG) - The maximum display height to let the user
            choose. Default is 16384. (V38)

    #ASLSM_MinDepth (UWORD) - The minimum display depth to let the user
            choose. Default is 1. (V38)

    #ASLSM_MaxDepth (UWORD) - The maximum display depth to let the user
            choose. Default is 24. (V38)

    #ASLSM_FilterFunc (struct Hook *) - A function to call for each mode
            encountered. If the function returns TRUE, the mode is
            included in the file list, otherwise it is rejected
            and not displayed. The function receives the following
            parameters:
                A0 - (struct Hook *)
                A1 - (ULONG) mode id
                A2 - (struct ScreenModeRequester *)
            (V38)

    #ASLSM_CustomSMList (struct List *) - Custom list of modes to let
            the user choose from. This is a list of DisplayNode
            nodes, see <libraries/asl.h> for the definition. (V38)

@ENDNODE

