For most gadgets, the NewGadget structure is used to specify its common
attributes. Additional attributes that are unique to specific kinds of
gadgets are specified as tags sent to the CreateGadget() function
(described below).
The NewGadget structure is defined in <libraries/gadtools.h> as:
struct NewGadget
{
WORD ng_LeftEdge, ng_TopEdge;
WORD ng_Width, ng_Height;
UBYTE *ng_GadgetText;
struct TextAttr *ng_TextAttr;
UWORD ng_GadgetID;
ULONG ng_Flags;
APTR ng_VisualInfo;
APTR ng_UserData;
};
The fields of the NewGadget structure are used as follows:
ng_LeftEdge, ng_TopEdge
Define the position of the gadget being created.
ng_Width and ng_Height
Define the size of the gadget being created.
ng_GadgetText
Most gadgets have an associated label, which might be the text in a
button or beside a checkmark. This field contains a pointer to the
appropriate string. Note that only the pointer to the text is
copied, the text itself is not. The string supplied must remain
constant and valid for the life of the gadget.
ng_TextAttr
The application must specify a font to use for the label and any
other text that may be associated with the gadget.
ng_Flags
Used to describe general aspects of the gadget, which includes where
the label is to be placed and whether the label should be rendered in
the highlight color. The label may be positioned on the left side,
the right side, centered above, centered below or dead-center on the
gadget. For most gadget kinds, the label is placed on the left side
by default, exceptions will be noted.
ng_GadgetID, ng_UserData
These user fields are copied into the resulting Gadget structure.
ng_VisualInfo
This field must contain a pointer to an instance of the VisualInfo
structure, which contains information needed to create and render
GadTools gadgets. The VisualInfo structure itself is private to
GadTools and subject to change. Use the specialized GadTools
functions for accessing the VisualInfo pointer, defined below. Never
access or modify fields within this structure.
[Back to Amiga Developer Docs]