neft
Version:
Universal Platform
124 lines (100 loc) • 2.77 kB
text/coffeescript
'use strict'
utils = require 'src/utils'
assert = require 'src/assert'
module.exports = (impl) ->
{bridge} = impl
{outActions, pushAction, pushItem, pushBoolean, pushInteger, pushFloat, pushString} = bridge
NOP = ->
DATA = utils.merge
id: 0
bindings: null
anchors: null
linkUri: ''
linkUriListens: false
, impl.pointer.DATA
DATA: DATA
createData: impl.utils.createDataCloner DATA
create: (data) ->
if data.id is 0
pushAction outActions.CREATE_ITEM
data.id = bridge.getId this
return
setItemParent: (val) ->
pushAction outActions.SET_ITEM_PARENT
pushItem @
pushItem val
return
insertItemBefore: (val) ->
pushAction outActions.INSERT_ITEM_BEFORE
pushItem @
pushItem val
return
setItemBackground: (val) ->
pushAction outActions.SET_ITEM_BACKGROUND
pushItem @
pushItem val
return
setItemVisible: (val) ->
pushAction outActions.SET_ITEM_VISIBLE
pushItem @
pushBoolean val
return
setItemClip: (val) ->
pushAction outActions.SET_ITEM_CLIP
pushItem @
pushBoolean val
return
setItemWidth: (val) ->
pushAction outActions.SET_ITEM_WIDTH
pushItem @
pushFloat val
return
setItemHeight: (val) ->
pushAction outActions.SET_ITEM_HEIGHT
pushItem @
pushFloat val
return
setItemX: (val) ->
pushAction outActions.SET_ITEM_X
pushItem @
pushFloat val
return
setItemY: (val) ->
pushAction outActions.SET_ITEM_Y
pushItem @
pushFloat val
return
setItemScale: (val) ->
pushAction outActions.SET_ITEM_SCALE
pushItem @
pushFloat val
return
setItemRotation: (val) ->
pushAction outActions.SET_ITEM_ROTATION
pushItem @
pushFloat val
return
setItemOpacity: (val) ->
pushAction outActions.SET_ITEM_OPACITY
pushItem @
pushInteger val * 255 | 0
return
setItemLinkUri: do ->
onClick = (event) ->
{linkUri} =
if linkUri
impl.Renderer.onLinkUri.emit linkUri
else
event.stopPropagation = false
return
(val) ->
.linkUri = val
unless .linkUriListens
.linkUriListens = true
.onClick onClick, @
return
setItemKeysFocus: (val) ->
pushAction outActions.SET_ITEM_KEYS_FOCUS
pushItem @
pushBoolean val
return