NAME ActivateGadget -- Activate a (string or custom) gadget. SYNOPSIS Success = ActivateGadget( gadget, window, request ) D0 A0 A1 A2 BOOL ActivateGadget( struct gadget *, struct window *, struct requester * ); FUNCTION Activates a string or custom gadget. If successful, this means that the user does not need to click in the gadget before typing. The window parameter must point to the window which contains the gadget. If the gadget is actually in a requester, the window must contain the requester, and a pointer to the requester must also be passed. The requester parameter must only be valid if the gadget has the GTYP_REQGADGET flag set, a requirement for all requester gadgets. The success of this function depends on a rather complex set of conditions. The intent is that the user is never interrupted from what interactions he may have underway. The current set of conditions includes: - The window must be active. If you are opening a new window and want an active gadget in it, it is not sufficient to assume that the WFLG_ACTIVATE flag has taken effect by the time openwindow() returns, even if you insert a delay of some finite amount of time. Use the IDCMP_ACTIVEWINDOW intuimessage to tell when your window really becomes active. Many programs use an event loop that calls ActivateGadget() whenever they receive the IDCMP_ACTIVEWINDOW message, and also the IDCMP_MOUSEBUTTONS messages, and so on, to keep the gadget active until it is used (or the user selects some other "Cancel" gadget). - No other gadgets may be in use. This includes system gadgets, such as those for window sizing, dragging, etc. - If the gadget is in a requester, that requester must be active. (Use IDCMP_REQSET and IDCMP_REQCLEAR). - The right mouse button cannot be held down (e.g. menus) NOTE: Don't try to activate a gadget which is disabled or not attached to a window or requester. INPUTS gadget = pointer to the gadget that you want activated. window = pointer to a window structure containing 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 If the conditions above are met, and the gadget is in fact a string gadget, then this function will return TRUE, else FALSE. BUGS At present, this function will not return FALSE if a custom gadget declines to be activated. SEE ALSO