Position Script: Difference between revisions
No edit summary |
No edit summary |
||
Line 3: | Line 3: | ||
==Description== | ==Description== | ||
The location of visual elements on the display | The location of visual elements on the display is controlled via the Position script. This script is used the same way within scenes, layouts, and templates. Through this script, the visual elements contained within are sized and positioned. For example, a Position script for a template will coordinate the sizing and positioning of the various portals that are defined within the template. | ||
Most visual elements are sized and positioned by their containing element. For example, a layout is often told by the containing scene how much space it gets to utilize and then it sizes it contents to fit within that space. However, there are times when visual elements must size themselves, so it is also possible for a visual element to size itself within its Position script. An example of this is where you have a template within a table that needs to determine its own height based on the information being shown within. | |||
Within a visual container, the position of elements is always relative to the upper left corner of the container. If the container has a margin assigned, then upper left corner is adjusted accordingly. This ensures that the visual container can be positioned anywhere within its container, and the visual elements within don't need any knowledge of the container's position. | |||
{{note}}The Position script is read-only with respect to the contents of the portfolio, although visual elements may be modified. Within this script, all aspects of the hierarchy can be accessed, but nothing can be changed. | {{note}}The Position script is read-only with respect to the contents of the portfolio, although visual elements may be modified. Within this script, all aspects of the hierarchy can be accessed, but nothing can be changed. | ||
Line 31: | Line 35: | ||
==Example== | ==Example== | ||
Assume we have a template that contains two portals: a label portal and an edit portal. The template is used to let the user edit the name of something, so the label portal displays "Name:" and the edit portal allows the user to edit the name. The label portal will be automatically sized to the width of its text, so all we need to do is size the edit portal and position both portals. The Position script for a simple template like this might look like the following. | |||
<pre> | <pre> | ||
portal[ | ~center both portals vertically | ||
portal[ | perform portal[label].centervert | ||
portal[ | perform portal[edit].centervert | ||
~pick a width for the edit portal | |||
portal[edit].width = 150 | |||
~put the label on the left and the edit portal on its right | |||
portal[label].left = 0 | |||
perform portal[edit].alignrel[ltor,label,10] | |||
</pre> | </pre> |
Revision as of 00:41, 8 December 2008
Context: HL Kit … Kit Reference … Script Types
Description
The location of visual elements on the display is controlled via the Position script. This script is used the same way within scenes, layouts, and templates. Through this script, the visual elements contained within are sized and positioned. For example, a Position script for a template will coordinate the sizing and positioning of the various portals that are defined within the template.
Most visual elements are sized and positioned by their containing element. For example, a layout is often told by the containing scene how much space it gets to utilize and then it sizes it contents to fit within that space. However, there are times when visual elements must size themselves, so it is also possible for a visual element to size itself within its Position script. An example of this is where you have a template within a table that needs to determine its own height based on the information being shown within.
Within a visual container, the position of elements is always relative to the upper left corner of the container. If the container has a margin assigned, then upper left corner is adjusted accordingly. This ensures that the visual container can be positioned anywhere within its container, and the visual elements within don't need any knowledge of the container's position.
NOTE! The Position script is read-only with respect to the contents of the portfolio, although visual elements may be modified. Within this script, all aspects of the hierarchy can be accessed, but nothing can be changed.
Technical Details
The Position script utilizes the following special symbols:
-None- There are no special symbols for a Position script
Example
Assume we have a template that contains two portals: a label portal and an edit portal. The template is used to let the user edit the name of something, so the label portal displays "Name:" and the edit portal allows the user to edit the name. The label portal will be automatically sized to the width of its text, so all we need to do is size the edit portal and position both portals. The Position script for a simple template like this might look like the following.
~center both portals vertically perform portal[label].centervert perform portal[edit].centervert ~pick a width for the edit portal portal[edit].width = 150 ~put the label on the left and the edit portal on its right portal[label].left = 0 perform portal[edit].alignrel[ltor,label,10]