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

There is a strict set of functions and operations that are permitted on
GadTools gadgets.  Even if a technique is discovered that works for a
particular case, be warned that it cannot be guaranteed and should not be
used.  If the trick concocted only works most of the time, it may
introduce subtle problems in the future.

Never selectively or forcibly refresh gadgets.  The only gadget refresh
that should ever be performed is the initial GT_RefreshWindow() after a
window is opened with GadTools gadgets attached.  It is also possible to
add gadgets after the window is opened by calling AddGlist() and
RefreshGlist() followed by GT_RefreshWindow().  These refresh functions
should not be called at any other time.

GadTools gadgets may not overlap with each other, with other gadgets or
with other imagery.  Doing this to modify the gadget's appearance is not
supported.

GadTools gadgets may not be selectively added or removed from a window.
This has to do with the number of Intuition gadgets that each call to
CreateGadget() produces and with refresh constraints.

Never use OnGadget() or OffGadget() or directly modify the GFLG_DISABLED
Flags bit.  The only approved way to disable or enable a gadget is to use
GT_SetGadgetAttrs() and the GA_Disabled tag.  Those kinds of GadTools
gadgets that do not support GA_Disabled may not be disabled (for now).

The application should never write into any of the fields of the Gadget
structure or any of the structures that hang off it, with the exception
noted earlier for GENERIC_KIND gadgets.  Avoid making assumptions about
the contents of these fields unless they are explicitly programmer fields
(GadgetID and UserData, for example) or if they are guaranteed meaningful
(LeftEdge, TopEdge, Width, Height, Flags).  On occasion, the program is
specifically invited to read a field, for example the StringInfo->Buffer
field.

GadTools gadgets may not be made relative sized or relative positioned.
This means that the gadget flags GFLG_RELWIDTH, GFLG_RELHEIGHT,
GFLG_RELBOTTOM and GFLG_RELRIGHT may not be specified.  The activation
type of the gadget may not be modified (for example changing
GACT_IMMEDIATE to GACT_RELVERIFY).  The imagery or the highlighting method
may not be changed.

These restrictions are not imposed without reason; subtle or blatant
problems may arise now or in future versions of GadTools for programs that
violate these guidelines.


[Back to Amiga Developer Docs]