neft
Version:
Universal Platform
78 lines (59 loc) • 2.05 kB
text/coffeescript
# Item.Spacing
'use strict'
assert = require 'src/assert'
utils = require 'src/utils'
# **Class** Spacing
module.exports = (Renderer, Impl, itemUtils) -> (ctor) -> class Spacing extends itemUtils.DeepObject
= 'Spacing'
itemUtils.defineProperty
constructor: ctor
name: 'spacing'
defaultValue: 0
valueConstructor: Spacing
setter: (_super) -> (val) ->
{spacing} = @
if utils.isObject(val)
spacing.column = val.column if val.column?
spacing.row = val.row if val.row?
else
spacing.column = spacing.row = val
_super.call @, val
return
constructor: (ref) ->
super ref
= 0
= 0
Object.preventExtensions @
## *Float* Spacing::column = `0`
## *Signal* Spacing::onColumnChange(*Float* oldValue)
itemUtils.defineProperty
constructor: @
name: 'column'
defaultValue: 0
namespace: 'spacing'
parentConstructor: ctor
implementation: Impl["set#{ctor.__name__}ColumnSpacing"]
developmentSetter: (val) ->
assert.isFloat val
## *Float* Spacing::row = `0`
## *Signal* Spacing::onRowChange(*Float* oldValue)
itemUtils.defineProperty
constructor: @
name: 'row'
defaultValue: 0
namespace: 'spacing'
parentConstructor: ctor
implementation: Impl["set#{ctor.__name__}RowSpacing"]
developmentSetter: (val) ->
assert.isFloat val
## *Float* Spacing::valueOf()
valueOf: ->
if is
else
throw new Error "column and row spacing are different"
toJSON: ->
column:
row:
# Glossary
- [Item.Spacing](#class-spacing)