If the application requires a specialized gadget which does not fit into any of the defined GadTools kinds but would still like to use the GadTools gadget creation and deletion functions, it may create a GadTools generic gadget and use it any way it sees fit. In fact, all of the kinds of GadTools gadgets are created out of GadTools GENERIC_KIND gadgets. The gadget that gets created will heed almost all the information contained in the newgadget structure supplied. If ng_gadgettext is supplied, the gadget's gadgettext will point to an intuitext structure with the provided string and font. however, do not specify any of the PLACETEXT ng_flags, as they are currently ignored by GENERIC_KIND gadgets. PLACETEXT flags may be supported by generic GadTools gadgets in the future. It is up to the program to set the flags, activation, gadgetrender, selectrender, mutualexclude and specialinfo fields of the gadget structure. The application must also set the gadgettype field, but be certain to preserve the bits set by creategadget(). for instance, to make a gadget boolean, use: gad->GadgetType |= GTYP_BOOLGADGET; and not gad->GadgetType = GTYP_BOOLGADGET; Using direct assignment, (the = operator), clears all other flags in the gadgettype field and the gadget may not be properly freed by freegadgets().