[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]


    NAME
        OnGadget -- enable the specified gadget.

    SYNOPSIS
        OnGadget( gadget, window, requester )
                  A0      A1      A2

        VOID OnGadget( struct gadget *, struct window *,
                struct requester * );

    FUNCTION
        This command enables the specified gadget.  When a gadget is
        enabled, these things happen:
        - its imagery is displayed normally (not ghosted)
        - the GFLG_DISABLED flag is cleared
        - the gadget can thereafter be selected by the user

        The window parameter must point to the window which contains the
        gadget, or which contains the requester that contains the gadget
        The requester parameter must only be valid if the gadget has the
        GTYP_REQGADGET flag set, a requirement for all requester gadgets.

       NOTE:  it's never safe to tinker with the gadget list yourself.  Don't
       supply some gadget that Intuition hasn't already processed in
       the usual way.

     NOTE: for compatibility reasons, this function will refresh all
        gadgets in a requester, and all gadgets from gadget to the
        end of the gadget list if gadget is in a window.

        If you want to improve on this behavior, you may perform the
        equivalent operation yourself: remove a gadget or gadgets,
        change the state of their GFLG_DISABLED flag, replace the
        gadgets using addglist(), and selectively call refreshglist().

    INPUTS
        gadget = pointer to the gadget that you want disabled
        window = pointer to a window structure containing the gadget or
            containing the requester which contains the gadget
        requester = pointer to a requester (may by null if this isn't
           a requester gadget (i.e. GTYP_REQGADGET is not set)).

    RESULT
        None

    BUGS
        Traditional gadgets are rendered very simply.  This can result
        in incomplete clearing away of the ghosting pattern when
        OnGadget() is used.  For example, a button whose imagery consists
        of an intuitext inside a rectangular border doesn't have the
        button interior cleared by OnGadget().  This is because OnGadget()
        clears the GFLG_DISABLED flag then redraws the gadget.  Redrawing
        this gadget consists of redrawing the border and text.  Nothing
        redraws the field.

        The solution to this type of problem is to either use a gadget
        whose imagery is a struct image that covers the whole select area,
        or to manually remove the gadget, erase the gadget's select area
        (say using eraserect()), then clear the gflg_disabled flag,
        add the gadget back to the window, and refresh it.

    SEE ALSO
        offgadget()