neft
Version:
Universal Platform
92 lines (68 loc) • 2.49 kB
text/coffeescript
# Column
```javascript
Column {
spacing: 5
Rectangle { color: 'blue'; width: 50; height: 50; }
Rectangle { color: 'green'; width: 20; height: 50; }
Rectangle { color: 'red'; width: 50; height: 20; }
}
```
'use strict'
assert = require 'src/assert'
utils = require 'src/utils'
# **Class** Column : *Item*
module.exports = (Renderer, Impl, itemUtils) -> class Column extends Renderer.Item
@__name__ = 'Column'
@__path__ = 'Renderer.Column'
## *Column* Column.New([*Component* component, *Object* options])
@New = (component, opts) ->
item = new Column
itemUtils.Object.initialize item, component, opts
item.effectItem = item
item
constructor: ->
super()
@_padding = null
@_spacing = 0
@_alignment = null
@_includeBorderMargins = false
@_effectItem = null
utils.defineProperty @::, 'effectItem', null, ->
@_effectItem
, (val) ->
if val?
assert.instanceOf val, Renderer.Item
oldVal = @_effectItem
@_effectItem = val
Impl.setColumnEffectItem.call @, val, oldVal
## *Item.Margin* Column::padding
## *Signal* Column::onPaddingChange(*Item.Margin* padding)
Renderer.Item.createMargin @,
propertyName: 'padding'
## *Float* Column::spacing = `0`
## *Signal* Column::onSpacingChange(*Float* oldValue)
itemUtils.defineProperty
constructor: @
name: 'spacing'
defaultValue: 0
implementation: Impl.setColumnSpacing
setter: (_super) -> (val) ->
# state doesn't distinguish column and grid
if utils.isObject val
val = 0
assert.isFloat val
_super.call @, val
## *Item.Alignment* Column::alignment
## *Signal* Column::onAlignmentChange(*Item.Alignment* oldValue)
Renderer.Item.createAlignment @
## *Boolean* Column::includeBorderMargins = `false`
## *Signal* Column::onIncludeBorderMarginsChange(*Boolean* oldValue)
itemUtils.defineProperty
constructor: @
name: 'includeBorderMargins'
defaultValue: false
implementation: Impl.setColumnIncludeBorderMargins
developmentSetter: (val) ->
assert.isBoolean val
# Glossary
- [Column](#class-column)