Often times data is best represented as simple boolean (TRUE or FALSE)
values. The PackBoolTags() function provides an easy method for
converting a tag list to bit fields.
/* These are the attributes that we understand, with the
* corresponding flag value. */
struct TagItem activation_bools[] =
{
/* Attribute Flags */
{GA_ENDGADGET, ENDGADGET},
{GA_IMMEDIATE, GADGIMMEDIATE},
{GA_RELVERIFY, RELVERIFY},
{GA_FOLLOWMOUSE, FOLLOWMOUSE},
{GA_RIGHTBORDER, RIGHTBORDER},
{GA_LEFTBORDER, LEFTBORDER},
{GA_TOPBORDER, TOPBORDER},
{GA_BOTTOMBORDER, BOTTOMBORDER},
{GA_TOGGLESELECT, TOGGLESELECT},
/* Terminate the array */
{TAG_END}
};
/* Set the activation field, based on the attributes passed */
g->Activation = PackBoolTags(g->Activation, tags, activation_bools);