The <boxmodel> mixin adds CSS2 box model support to <view>
<boxmodel> implements a subset of the CSS2 box model spec
http://www.w3.org/TR/CSS2/box.html
Example 32. Simple view with boxmodel
<canvas height="200" bgcolor="antiquewhite">
<stylesheet>
#thebox {
padding: 1 3 5 7;
border-width: 2 4 6 8;
border-color: cornflowerblue;
margin: 3 7 11 15;
}
text { color: navy; }
.margin { background-color: aliceblue; }
.borderwidth { color: white; background-color: cornflowerblue; }
.padding { background-color: skyblue; }
.content { background-color: white; }
colortext { border-width: 1; }
colortext.margin, colortext.borderwidth { border-bottom-width: 0 }
</stylesheet>
<class name="colorview" extends="view">
<attribute name="bgcolor" style="background-color" value="transparent"/>
<attribute name="fgcolor" style="color" value="black"/>
</class>
<class name="colortext" extends="text" with="boxmodel" width="100%" multiline="true">
<attribute name="bgcolor" style="background-color" value="transparent"/>
<attribute name="fgcolor" style="color" value="black"/>
</class>
<colorview styleclass="margin" x="5" y="5">
<colorview id="thebox" with="boxmodel" styleclass="padding" width="250">
<colorview styleclass="content" layout="axis: y; spacing:0" width="100%">
<text>Click me to demonstrate updating:</text>
<text name="op"/>
<colortext styleclass="margin">
<handler name="onmargin" reference="thebox" method="display"/>
<handler name="oninit" method="display"/>
<method name="display" args="ignore">
this.format("margin: %s", thebox.presentAttribute('margin'));
</method>
</colortext>
<colortext styleclass="borderwidth">
<handler name="onborderwidth" reference="thebox" method="display"/>
<handler name="oninit" method="display"/>
<method name="display" args="ignore">
this.format("borderwidth: %s", thebox.presentAttribute('borderwidth'));
</method>
</colortext>
<colortext styleclass="padding">
<handler name="onpadding" reference="thebox" method="display"/>
<handler name="oninit" method="display"/>
<method name="display" args="ignore">
this.format("padding: %s", thebox.presentAttribute('padding'));
</method>
</colortext>
<attribute name="attribute" type="string"/>
<attribute name="amount" type="number"/>
<handler name="onclick" method="doit"/>
<handler name="oninit" method="doit"/>
<method name="doit" args="ignore">
if (this.attribute) {
thebox.setAttribute(this.attribute, thebox[this.attribute] + amount);
}
var r = Math.floor(Math.random()*3);
var prefix = ['margin', 'border', 'padding'][r];
var suffix = ['','width',''][r];
this.attribute = prefix+['top','right','bottom','left'][Math.floor(Math.random()*4)]+suffix;
this.amount = Math.round(Math.random()*10);
op.format("%s += %w", attribute, amount);
</method>
</colorview>
</colorview>
</colorview>
</canvas>
boxmodel is a mixin intended for use with <view> and its subclasses.
| Name (CSS property) | Type (tag) | Type (js) | Default | Category |
|---|---|---|---|---|
borderbottomwidth
|
number | Number | 0 | read/write |
| border-bottom-width | The bottom border width of the view, in pixels | |||
bordercolor
|
color | Color | black | read/write |
| border-color | The bordercolor of the view | |||
borderleftwidth
|
number | Number | 0 | read/write |
| border-left-width | The left border width of the view, in pixels | |||
borderrightwidth
|
number | Number | 0 | read/write |
| border-right-width | The right border width of the view, in pixels | |||
bordertopwidth
|
number | Number | 0 | read/write |
| border-top-width | The top border width of the view, in pixels | |||
borderwidth
|
boxsidedimensions | Boxsidedimensions | 0 | read/write |
| border-width | The border width of the view, in pixels | |||
margin
|
boxsidedimensions | Boxsidedimensions | 0 | read/write |
| margin | The margin of the view, in pixels | |||
marginbottom
|
number | Number | 0 | read/write |
| margin-bottom | The bottom margin of the view, in pixels | |||
marginleft
|
number | Number | 0 | read/write |
| margin-left | The left margin of the view, in pixels | |||
marginright
|
number | Number | 0 | read/write |
| margin-right | The right margin of the view, in pixels | |||
margintop
|
number | Number | 0 | read/write |
| margin-top | The top margin of the view, in pixels | |||
padding
|
boxsidedimensions | Boxsidedimensions | 0 | read/write |
| padding | The padding of the view, in pixels | |||
paddingbottom
|
number | Number | 0 | read/write |
| padding-bottom | The bottom padding of the view, in pixels | |||
paddingleft
|
number | Number | 0 | read/write |
| padding-left | The left padding of the view, in pixels | |||
paddingright
|
number | Number | 0 | read/write |
| padding-right | The right padding of the view, in pixels | |||
paddingtop
|
number | Number | 0 | read/write |
| padding-top | The top padding of the view, in pixels | |||
Copyright © 2002-2010 Laszlo Systems, Inc. All Rights Reserved. Unauthorized use, duplication or distribution is strictly prohibited. This is the proprietary information of Laszlo Systems, Inc. Use is subject to license terms.