Template Context: Difference between revisions
New page: {{context|Kit Reference|Context Transitions}} See Also: Template Target References From within a "template" context, you can utilize the following set of valid context transitions: ... |
No edit summary |
||
(5 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{contextmulti|Kit Reference}} | ||
Jump to: [[#references|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{{anchor|transitions}}== | |||
From within a "template" context, you can utilize the following set of valid context transitions: | From within a "template" context, you can utilize the following set of valid context transitions: | ||
Line 7: | Line 11: | ||
:{| class="infotable" | :{| class="infotable" | ||
|class="leftnormal"|parent | |class="leftnormal"|parent | ||
|Transitions to the [[Layout Context | |Transitions to the [[Layout Context|layout context]] or [[Table Context|table context]] corresponding to the visual element that contains the tmeplate.<br> | ||
Example: this.parent<br> | Example: this.parent<br> | ||
{{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. | {{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''] | |portal[''id''] | ||
|Transitions to the [[Portal Context | |Transitions to the [[Portal Context|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.<br> | ||
Example: this.portal[myportal]<br> | Example: this.portal[myportal]<br> | ||
{{note}}Only portals defined directly within the template can be accessed via this transition. | {{note}}Only portals defined directly within the template can be accessed via this transition. | ||
|- | |- | ||
|field[''id''] | |field[''id''] | ||
|Transitions to the [[Value Context | |Transitions to the [[Value Context|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.<br> | ||
Example: this.field[myfield]<br> | Example: this.field[myfield]<br> | ||
{{note}}Within templates, all fields are treated as read-only, which is controlled by transitioning to a distinct "value" context instead of "field" context. | {{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 | |container | ||
|Transitions to the [[Container Context | |Transitions to the [[Container Context|container context]] corresponding to the container to which the template applies, whether it be an actor or a gizmo.<br> | ||
Example: this.container<br> | Example: this.container<br> | ||
{{note}}After transitioning, access within the new container context will be read-only and limited in what information can be retrieved.<br> | {{note}}After transitioning, access within the new container context will be read-only and limited in what information can be retrieved.<br> | ||
Line 28: | Line 32: | ||
|- | |- | ||
|hero | |hero | ||
|Transitions to the [[Hero Context | |Transitions to the [[Hero Context|hero context]] corresponding to the hero to which the template applies.<br> | ||
Example: this.hero<br> | Example: this.hero<br> | ||
{{note}}After transitioning, access within the new hero context will be read-only and limited in what information can be retrieved.<br> | {{note}}After transitioning, access within the new hero context will be read-only and limited in what information can be retrieved.<br> | ||
{{note}}This transition can only be used as the '''first''' transition when within a visual script. | {{note}}This transition can only be used as the '''first''' transition when within a visual script. | ||
|- | |||
|} | |||
==Target References{{anchor|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. | |||
:{| class="infotable" | |||
|class="leftnormal"|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.<br> | |||
Example: result = this.width<br> | |||
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.<br> | |||
Example: result = this.height<br> | |||
Example: this.height = 420 | |||
|- | |||
|left | |||
|(Left, Right, Number) Accesses the position of the left edge of the template within the containing visual element.<br> | |||
Example: result = this.left<br> | |||
Example: this.left = 42 | |||
|- | |||
|top | |||
|(Left, Right, Number) Accesses the position of the top edge of the template within the containing visual element.<br> | |||
Example: result = this.top<br> | |||
Example: this.top = 42 | |||
|- | |||
|right | |||
|(Right, Number) Returns the position of the right edge of the template within the containing visual element.<br> | |||
Example: result = this.right | |||
|- | |||
|bottom | |||
|(Right, Number) Returns the position of the bottom edge of the template within the containing visual element.<br> | |||
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.<br> | |||
Example: result = this.visible<br> | |||
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.<br> | |||
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.<br> | |||
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.<br> | |||
Example: result = this.inheader | |||
|- | |||
|scrollbar | |||
|(Right, Number) Returns the width of a scroller, in pixels.<br> | |||
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.<br> | |||
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.<br> | |||
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.<br> | |||
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.<br> | |||
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.<br> | |||
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.<br> | |||
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.<br> | |||
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.<br> | |||
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.<br> | |||
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.<br> | |||
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.<br> | |||
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.<br> | |||
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, [[Identity Target References|please check here]].<br> | |||
Example: result = this.isidentity[groupid] | |||
|- | |||
|autoplace[''gap''] | |||
|(Right, Number) Automatically places the template within the containing layout, subject to the standard rules for [[Using Automatic Placement|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.<br> | |||
Example: perform this.autoplace[42]<br> | |||
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 05:42, 20 December 2013
Context: HL Kit … Kit 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 = 420height (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 = 420left (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 = 42top (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 = 42right (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 = 1isroot (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.autoplacebatchadd[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