@database "scroller_gc"
@master "AMIDEV:NDK/Autodocs/scroller_gc.doc"

@Node Main "scroller_gc.doc"
@toc "Autodocs/AG/INDEX/Main"
    @{" --datasheet--() " Link "--datasheet--()"}
    @{" SCROLLER_GetClass() " Link "SCROLLER_GetClass()"}
@EndNode

@Node "--datasheet--()" "scroller_gc/--datasheet--"

@{b}    NAME@{ub}
        scroller_gc -- create scroller BOOPSI objects

@{b}    SUPERCLASS@{ub}
        gadgetclass

@{b}    REQUIRES@{ub}
        bevel.image, glyph.image

@{b}    DESCRIPTION@{ub}
        The scroller gadget is a propgclass wrapper class and is used
        to create proportional scroller or linear slider gadgets.
        To create a linear slider, SCROLLER_Visible must be set to 1, and
        SCROLLER_Top will range in value from 0 to SCROLLER_Total - 1.

        The IntuiMessage.Code field will contain the SCROLLER_Top
        attribute, cast to a WORD.

        Advantages that this class provides are:

         > Supports window relativity.

         > Supports OS 3.0 BOOPSI Notification/Update.

         > Special signaling ability.

         > Optional scroller arrow buttons.

         > Supports usage in window boarders.

@{b}    METHODS@{ub}
        @{"OM_NEW" Link "tabs_gc/OM_NEW"} -- Create the scroller gadget. Also allocates an
            instance of the bevel and glyph image classes.
            Passed to superclass then calls @{"OM_SET" Link "tabs_gc/OM_SET"}.

        @{"OM_SET" Link "tabs_gc/OM_SET"} -- Set object attributes. Passed to superclass first.

        OM_DISPOSE -- Frees up the scroller gadget as well as the
            bevel and glyph image instances. Passed to superclass last.

        OM_UPDATE -- Set object notification attributes. Passed to
            superclass first.

        @{"GM_RENDER" Link "tabs_gc/GM_RENDER"} -- Renders the gadget imagery. Overrides the superclass.

        @{"GM_GOACTIVE" Link "tabs_gc/GM_GOACTIVE"} -- Handles activation. Overrides the superclass.

        GM_HANDLEINPUT -- Handles input events once active. Overrides
            the superclass.

        GM_GOINACTIVE -- Overrides the superclass. Handles deactivation.

        GM_HELPTEST -- Test if mouse is within gadget hit area.

        @{"GM_HITTEST" Link "tabs_gc/GM_HITTEST"} -- Test if mouse is within gadget hit area.

        GM_DOMAIN -- Returns GDOMAIN_MINIMUM and GDOMAIN_MAXIMUM dimensions.

        All other methods are passed to the superclass.

@{b}    ATTRIBUTES@{ub}
        SCROLLER_Top (LONG)
            Set the current top value of the scroller within the
            proportional range. (V40)

            Applicability is (OM_NEW, @{"OM_SET" Link "tabs_gc/OM_SET"}, OM_UPDATE, OM_GET)

        SCROLLER_Visible (LONG)
            Set the visible portion of the proportional range. (V40)

            (OM_NEW, @{"OM_SET" Link "tabs_gc/OM_SET"}, OM_UPDATE, OM_GET)

        SCROLLER_Total (LONG)
            Set the total range of the scroller. (V40)

            Applicability is (OM_NEW, @{"OM_SET" Link "tabs_gc/OM_SET"}, OM_UPDATE, OM_GET)

        SCROLLER_Orientation
            Define orientation of the scroller.

            Accepted values as defined in @{"<gadgets/scroller.h>" Link "INCLUDE:gadgets/scroller.h/Main" 0} are:

                SORIENT_VERT
                SORIENT_HORIZ

            Defines are found in @{"<gadgets/scroller.h>" Link "INCLUDE:gadgets/scroller.h/Main" 0} and are synomyms for
            the propgclass FREEVERT and FREEHORIZ. (V40)

            Applicability is (OM_NEW, OM_GET)

        SCROLLER_Arrows (BOOL)
            @{"Enable" Link "exec/Enable()"} rendering of optional scroller arrows. (V40)

            Applicability is (OM_NEW, OM_GET)

        SCROLLER_ArrowDelta (WORD) (V41)
            Allows you to change the amount that clicking an arrow causes
            the scroller to move by.

            Defaults to 1.

            Applicability is (OM_NEW, @{"OM_SET" Link "tabs_gc/OM_SET"}, OM_UPDATE, OM_GET)

        SCROLLER_SignalTask (struct @{"Task" Link "INCLUDE:exec/tasks.h/Main" 23} *)  (V42)
            @{"Signal" Link "exec/Signal()"} the specified @{"Task" Link "INCLUDE:exec/tasks.h/Main" 23} while scroller is active.  This is
            very useful to reduce the load on input.device because you can
            render from some other task (application, or anything else)
            that waits for this signal and then @{"GetAttr()" Link "intuition/GetAttr()"} SCROLLER_Top, etc.

            Defaults to @{"NULL" Link "rexxsupport/NULL"} (no signaling).

            Applicability is (OM_NEW, OM_SET)

        SCROLLER_SignalTaskBit (ULONG)  (V42)
            @{"Signal" Link "exec/Signal()"} with this Bit. See also; SCROLLER_SignalTask.

            Applicability is (OM_NEW, OM_SET)

@EndNode

@Node "SCROLLER_GetClass()" "scroller_gc/SCROLLER_GetClass"

@{b}    NAME@{ub}
        SCROLLER_GetClass -- Gets the pointer to the scroller class.

@{b}    SYNOPSIS@{ub}
        scroller_class = SCROLLER_GetClass();
        D0

        Class * SCROLLER_GetClass(VOID);

@{b}    FUNCTION@{ub}
        Obtains the pointer to the Scroller gadget class for use with
        @{"NewObject()" Link "intuition/NewObject()"}.  This function always returns a valid pointer so
        you do not need to check it.  The reason is that if the library
        opens fine, then the pointer returned is already setup.  (Of course
        this implies that if opening the library fails, you shouldn't be
        calling this.)

        Note that this function does not create the class, that is done
        when the class library is opened.

@{b}    INPUTS@{ub}
        Nothing.

@{b}    RESULT@{ub}
        scroller_class - Pointer to the Scroller gadget class.

@{b}    SEE ALSO@{ub}

@EndNode

