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

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

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

@{b}    NAME@{ub}
        space_gc -- a placeholder gadget class.

@{b}    SUPERCLASS@{ub}
        gadgetclass

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

@{b}    DESCRIPTION@{ub}
        This class does more than just take up space. space.gadget allows you

        to create a GREL or layout resizable input areabox. You might render
        custom graphics in the area, for example, a icon editor graphic area
        might be based on space.gadget. This lets space.gadget handle its
        domain in a way compatible with not only the present layout, but any
        future custom layout domain methods. The application can handle rende
ring
        and clipping in this area on the application task. It presently sends
        notification of Mouse X/Y and the inner custom application rendering
area
        of the space accounting for  any outer bevel (including preference be
vel
        sizes changes).

@{b}    METHODS@{ub}
        @{"OM_NEW" Link "tabs_gc/OM_NEW"} -- Create the space gadget.  Passed to superclass.

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

        OM_DISPOSE -- Passed to superclass.

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

        OM_NOTIFY -- Notify object attributes. Passed to superclass first.

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

        @{"GM_HITTEST" Link "tabs_gc/GM_HITTEST"} -- always returns GMR_GADGETHIT, as long as the gadgets
            GA_ReadOnly attribute isn't set.

        @{"GM_GOACTIVE" Link "tabs_gc/GM_GOACTIVE"} -- Passed to superclass first. Then sends mouseevent
            notification.

        GM_HANDLEINPUT -- Handles input events once active.  Overrides the
            superclass. As long as the user keeps the mouse button pressed,
            the gadget sends notification events to its ICA_TARGET.

        GM_GOINACTIVE -- Passed to superclass. A final notification is sent.

        GM_DOMAIN -- Calculates mix/max sizes. Overrides the superclass.


        All other methods are passed to the superclass.

@{b}    ATTRIBUTES@{ub}

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

        GA_ReadOnly (BOOL)
            Set to TRUE to make the gadget non-selectable, but without
            a ghost pattern.

            Defaults to FALSE.

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

        GA_Disabled (BOOL)
            Set to TRUE to disable gadget, FALSE otherwise

            Defaults to FALSE.

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

        SPACE_MinWidth (WORD)
            Minimum width of the space.gadget object.

            Defaults to 6.

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

        SPACE_MinHeight (WORD)
            Minimum height of the space.gadget object.

            Defaults to 4.

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

        SPACE_MouseX (WORD)
            X Position of the mouse within the space gadget.

            Applicability is (OM_NOTIFY).

        SPACE_MouseY (WORD)
            Y Position of the mouse within the space gadget.

            Applicability is (OM_NOTIFY).

        SPACE_Transparent (BOOL)
            If true, the gadget background won't be cleared before
            redraw.

            Defaults to FALSE.

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

        SPACE_AreaBox (struct @{"IBox" Link "INCLUDE:intuition/intuition.h/Main" 929} *)
            Inner area @{"IBox" Link "INCLUDE:intuition/intuition.h/Main" 929} application rendering bounds.

            Applicability is (OM_GET,OM_NOTIFY).

        SPACE_RenderHook (struct @{"Hook" Link "INCLUDE:utility/hooks.h/Main" 26} *)
            @{"Hook" Link "INCLUDE:utility/hooks.h/Main" 26} to call when the gadget refreshes. The hook function will
            find the pointer to its own struct @{"Hook" Link "INCLUDE:utility/hooks.h/Main" 26} in A0, a pointer
            to the space.gadget object in A2 and a struct @{"gpRender" Link "INCLUDE:intuition/gadgetclass.h/Main" 411} pointer
            in A1.

            Defaults to @{"NULL" Link "rexxsupport/NULL"}.

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

        SPACE_BevelStyle (WORD)
            Specifies the bevel box style (see @{"images/bevel.h)" Link "INCLUDE:images/bevel.h/Main" 0}. NOTE: Before
            v45.2 the gadget didn't change the size of the bevel box, it was
            always 6x4 pixels.

            Defaults to BVS_NONE.

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

@EndNode

@Node "SPACE_GetClass()" "space_gc/SPACE_GetClass"

@{b}    NAME@{ub}
        SPACE_GetClass -- Gets the pointer to the space class.

@{b}    SYNOPSIS@{ub}
        space_class = SPACE_GetClass();
        D0

        Class * SPACE_GetClass(VOID);

@{b}    FUNCTION@{ub}
        Obtains the pointer to the space 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}
        space_class - Pointer to the space gadget class.

@{b}    SEE ALSO@{ub}

@EndNode

