Difference between revisions of "Template Context"

From HLKitWiki
Jump to: navigation, search
(Target References{{anchor|references}})
 
Line 149: Line 149:
 
Example: perform this.autoplace[42]<br>
 
Example: perform this.autoplace[42]<br>
 
Example: perform this.autoplace
 
Example: perform this.autoplace
 +
|-
 +
|batchadd[''gap'']
 +
|(Right, Number) Queues the template for batch placement within the containing layout, subject to the standard rules for [[Using Batch Placement|batch placement]]. As with "autoplace", the ''gap'' parameter specifies the gap to be used between this template and the previous placed element. The parameter can be omitted, in which case the established "autogap" is utilized. Batch placement for templates can only be used within layouts. A value of zero is always returned.<br>
 +
Example: perform this.batchadd[42]<br>
 +
Example: perform this.batchadd
 
|-
 
|-
 
|}
 
|}

Latest revision as of 22:42, 19 December 2013

Context: HL KitKit Reference  … Multiple Sources

Jump to: Target References

The "template" context identifies a template within the current hierarchy. Templates can either be used within layouts or within tables, so the parent context of the template within the hierarchy can vary.

Context Transitions

From within a "template" context, you can utilize the following set of valid context transitions:

parent Transitions to the layout context or table context corresponding to the visual element that contains the tmeplate.

Example: this.parent
NOTE! The "parent" transition can only be utilized a single time, so it is not possible to go upwards two or more levels within the hierarchy.

portal[id] Transitions to the portal context corresponding to the portal within the current template that possesses the id specified. If the portal does not exist within the template, the transition fails to resolve.

Example: this.portal[myportal]
NOTE! Only portals defined directly within the template can be accessed via this transition.

field[id] Transitions to the value context corresponding to the field within the current template that has the id specified. The fields for a template are dictated by the pick or thing that is associated with the template. If the given field does not exist for the pick/thing, the transition fails to resolve.

Example: this.field[myfield]
NOTE! Within templates, all fields are treated as read-only, which is controlled by transitioning to a distinct "value" context instead of "field" context.

container Transitions to the container context corresponding to the container to which the template applies, whether it be an actor or a gizmo.

Example: this.container
NOTE! After transitioning, access within the new container context will be read-only and limited in what information can be retrieved.
NOTE! This transition can only be used as the first transition when within a visual script.

hero Transitions to the hero context corresponding to the hero to which the template applies.

Example: this.hero
NOTE! After transitioning, access within the new hero context will be read-only and limited in what information can be retrieved.
NOTE! This transition can only be used as the first transition when within a visual script.

Target References

The "template" script context governs the operations that can be applied to templates within layouts and tables. The complete list of target references for templates is presented in the table below.

width (Left, Right, Number) Accesses the width of the template. Unless explicitly specified within the XML, the width of a template is automatically initialized. If the template is within a table, the width is set the interior width of the containing table, minus any assigned margins. Otherwise, the template is initialized to a width of 100.

Example: result = this.width
Example: this.width = 420

height (Left, Right, Number) Accesses the height of the template. Unless explicitly specified within the XML, the height of a layout is automatically initialized to zero and must be set by the author via a suitable script.

Example: result = this.height
Example: this.height = 420

left (Left, Right, Number) Accesses the position of the left edge of the template within the containing visual element.

Example: result = this.left
Example: this.left = 42

top (Left, Right, Number) Accesses the position of the top edge of the template within the containing visual element.

Example: result = this.top
Example: this.top = 42

right (Right, Number) Returns the position of the right edge of the template within the containing visual element.

Example: result = this.right

bottom (Right, Number) Returns the position of the bottom edge of the template within the containing visual element.

Example: result = this.bottom

visible (Left, Right, Number) Controls the visibility of the template within the containing visual element. A non-zero value indicates the template is visible and a zero value indicates hidden. The visibility of templates cannot be controlled within tables.

Example: result = this.visible
Example: this.visible = 1

isroot (Right, Number) Returns non-zero if the pick associated with the template has been bootstrapped and therefore has a root pick available. If the pick is associated with a thing, zero is returned.

Example: result = this.isroot

issizing (Right, Number) Returns non-zero if the "sizing" logic of a template within a table is being performed. This allows detection of the sizing logic so that all non-sizing behaviors can be skipped for the template.

Example: result = this.issizing

inheader (Right, Number) Returns non-zero if the template is being positioned for use as a header within a table. This makes it possible to distinguish the context for a template that is being used as a dual-purpose header.

Example: result = this.inheader

scrollbar (Right, Number) Returns the width of a scroller, in pixels.

Example: result = this.scrollbar

tagis[tmpl] (Right, Number) Returns non-zero if any tags assigned to the pick/thing associated with the template that match the tag template tmpl, else zero if no tags match. The tag template must use the standard "group.id" syntax and may contain a wildcard.

Example: this.tagis[skill.?]

tagcount[tmpl] (Right, Number) Returns the number of tags assigned to the pick/thing associated with the template that match the tag template tmpl. The tag template must use the standard "group.id" syntax and may contain a wildcard.

Example: result = this.tagcount[skill.?]

tagvalue[tmpl] (Right, Number) Returns the value of a tag assigned to the pick/thing associated with the template that matches the tag template tmpl. The rules associated with tag values in tag expressions apply. The tag template must use the standard "group.id" syntax and may contain a wildcard.

Example: result = this.tagvalue[spelllevel.wizard?]

tagmin[tmpl] (Right, Number) Returns the minimum value of all tags assigned to the pick/thing associated with the template that match the tag template tmpl. The rules associated with tag values in tag expressions apply. The tag template must use the standard "group.id" syntax and may contain a wildcard.

Example: result = this.tagmin[spelllevel.wizard?]

tagmax[tmpl] (Right, Number) Returns the maximum value of all tags assigned to the pick/thing associated with the template that match the tag template tmpl. The rules associated with tag values in tag expressions apply. The tag template must use the standard "group.id" syntax and may contain a wildcard.

Example: result = this.tagmax[spelllevel.wizard?]

tagunique[tmpl] (Right, Number) Returns the number of unique tags assigned to the pick/thing associated with the template that match the tag template tmpl. If a tag is assigned multiple times, it is only counted once. The tag template must use the standard "group.id" syntax and may contain a wildcard.

Example: result = this.tagunique[skill.?]

tagexpr[expr] (Right, Number) Returns non-zero if the tags assigned to the pick/thing associated with the template match the tag expression expr, else zero is returned. The expr parameter must be a valid tag expression.

Example: result = this.tagexpr[class.wizard & (val:spelllevel.wizard? > 5)]

tagcountstr[str] (Right, Number) This target reference is identical to "tagcount", except that the str parameter is a string expression that is evaluated within the script. This allows the tag template to be dynamically determined via the script instead of being hard-wired at compilation.

Example: result = this.tagcountstr["skill.?"]

tagvaluestr[str] (Right, Number) This target reference is identical to "tagvalue", except that the str parameter is a string expression that is evaluated within the script. This allows the tag template to be dynamically determined via the script instead of being hard-wired at compilation.

Example: result = this.tagvaluestr["spelllevel.wizard?"]

tagminstr[str] (Right, Number) This target reference is identical to "tagmin", except that the str parameter is a string expression that is evaluated within the script. This allows the tag template to be dynamically determined via the script instead of being hard-wired at compilation.

Example: result = this.tagminstr["spelllevel.wizard?"]

tagmaxstr[str] (Right, Number) This target reference is identical to "tagmax", except that the str parameter is a string expression that is evaluated within the script. This allows the tag template to be dynamically determined via the script instead of being hard-wired at compilation.

Example: result = this.tagmaxstr["spelllevel.wizard?"]

taguniquestr[str] (Right, Number) This target reference is identical to "tagunique", except that the str parameter is a string expression that is evaluated within the script. This allows the tag template to be dynamically determined via the script instead of being hard-wired at compilation.

Example: result = this.taguniquestr["skill.?"]

isidentity[grp] (Right, Number) Returns non-zero if the indicated identity tag has been assigned to the pick/thing associated with the template. The identity tag sought must be from the tag group grp and the tag id is dictated by the initial context of the script. For more details, please check here.

Example: result = this.isidentity[groupid]

autoplace[gap] (Right, Number) Automatically places the template within the containing layout, subject to the standard rules for automatic placement. The gap parameter specifies the gap to be used between this template and the previous placed element. The parameter can be omitted, in which case the established "autogap" is utilized. Automatic placement for templates can only be used within layouts. A value of zero is always returned.

Example: perform this.autoplace[42]
Example: perform this.autoplace

batchadd[gap] (Right, Number) Queues the template for batch placement within the containing layout, subject to the standard rules for batch placement. As with "autoplace", the gap parameter specifies the gap to be used between this template and the previous placed element. The parameter can be omitted, in which case the established "autogap" is utilized. Batch placement for templates can only be used within layouts. A value of zero is always returned.

Example: perform this.batchadd[42]
Example: perform this.batchadd