SecureGroupHeaderTemplate

SecureGroupHeaderTemplate, and its variants SecurePartyHeaderTemplate and SecureRaidGroupHeaderTemplate, automate the creation of SecureUnitButtonTemplate frames for all members of a party or raid group.

Essential

 * template : String - name of an XML template derrived from SecureUnitButtonTemplate to use for the unit buttons
 * templateType : String - specifies the frame type of the managed subframes (Default: "Button")
 * showParty, showRaid, showPlayer, showSolo : Booleans -- at least one of these must be true for the frames to appear (Defaults: SecurePartyHeaderTemplate and SecureRaidGroupHeaderTemplate respectively set showParty or showRaid to true)

Layout

 * point : String - A valid anchoring point for the first child frame
 * xOffset, yOffset : Numbers - Used when anchoring the unit buttons (Default: 0)
 * maxColumns, unitsPerColumn, columnSpacing : Used to layout unit buttons in multiple columns (Defaults: 1, nil, 0)
 * columnAnchorPoint : String - "LEFT" or "RIGHT" point used by each new column anchor (use "LEFT" to grow rightward)

Fitering

 * nameList : String -- a comma separated list of player names (not used if 'groupFilter' is set)
 * groupFilter : String -- a comma seperated list of raid group numbers [1-8] and/or uppercase class names and/or uppercase roles
 * roleFilter : String - a comma seperated list of MT/MA/Tank/Healer/DPS role strings
 * strictFiltering : Boolean - if true, then characters must match both a group and class from the groupFilter list (unless groupFilter is nil) and at least one of role from the roleFilter list (unless roleFilter is nil)

Sorting

 * sortMethod : String - sort by "INDEX", "NAME" or "NAMELIST" (Default: "INDEX")
 * sortDir : String - set to "DESC" to reverse the sort order (Default: "ASC")
 * startingIndex : Number - the index in the final sorted unit list at which to start displaying units (Default: 1)
 * groupBy : String - pre-sort by "GROUP", "CLASS", "ROLE", or "ASSIGNEDROLE" before regular sorting (Default: nil)
 * groupingOrder : String - specifies the order of the groupings (ie. "1,2,3,4,5,6,7,8")

Child Frames
SecureUnitButtonTemplate children created by the Group Header will be assigned a unit attribute (of type UnitId) that may be passed to various functions such as UnitName("unit"), UnitHealth("unit"), UnitHealthMax("unit") to generate a basic frame with player name and health bar.

To be useful, a custom template inheriting SecureUnitButtonTemplate should be defined in XML so that it may be accessed programmatically upon creation. Possible tasks include setting attributes to respond to clicks; and activity made possible by the protected nature of these frames.