neft
Version:
Universal Platform
112 lines (78 loc) • 2.36 kB
text/coffeescript
'use strict'
utils = require 'src/utils'
module.exports = (impl) ->
pointer = impl.pointer = require('./item/pointer') impl
NOP = ->
DATA =
elem: null
bindings: null
anchors: null
capturePointer: 0
childrenCapturesPointer: 0
DATA: DATA
createData: impl.utils.createDataCloner DATA
create: (data) ->
setItemParent: (val) ->
insertItemBefore: (val) ->
# remove this item
impl.setItemParent.call @, null
@_parent = null
# remove all items to the given value
parent = val.parent
{children} = parent
tmp = []
child = val
while child
if child isnt @
impl.setItemParent.call child, null
child._parent = null
tmp.push child
child = child.aboveSibling
impl.setItemParent.call @, parent
@_parent = parent
for item in tmp
impl.setItemParent.call item, parent
item._parent = parent
return
setItemBackground: (val) ->
setItemVisible: (val) ->
setItemClip: (val) ->
setItemWidth: (val) ->
setItemHeight: (val) ->
setItemX: (val) ->
setItemY: (val) ->
setItemScale: (val) ->
setItemRotation: (val) ->
setItemOpacity: (val) ->
setItemLinkUri: (val) ->
doItemOverlap: (item) ->
a = @
b = item
tmp = null
x1 = a._x; y1 = a._y
x2 = b._x; y2 = b._y
parent1 = a
while tmp = parent1._parent
x1 += tmp._x
y1 += tmp._y
parent1 = tmp
parent2 = b
while tmp = parent2._parent
x1 += tmp._x
y1 += tmp._y
parent2 = tmp
parent1 is parent2 and
x1 + a._width > x2 and
y1 + a._height > y2 and
x1 < x2 + b._width and
y1 < y2 + b._height
attachItemSignal: (name, signal) ->
if name is 'pointer'
pointer.attachItemSignal.call @, signal
setItemPointerEnabled: (val) ->
pointer.setItemPointerEnabled.call @, val
setItemPointerDraggable: (val) ->
pointer.setItemPointerDraggable.call @, val
setItemPointerDragActive: (val) ->
pointer.setItemPointerDragActive.call @, val
setItemKeysFocus: (val) ->