neft
Version:
Universal Platform
52 lines (40 loc) • 1.56 kB
text/coffeescript
utils = require 'src/utils'
assert = require 'src/assert'
module.exports = (impl) ->
{bridge} = impl
{outActions, pushAction, pushItem, pushBoolean, pushInteger, pushFloat, pushString} = bridge
createPointerListener = (action) ->
(event) ->
pushAction action
pushItem @
pushFloat event.x
pushFloat event.y
return
onPointerPress = createPointerListener outActions.ON_NATIVE_ITEM_POINTER_PRESS
onPointerRelease = createPointerListener outActions.ON_NATIVE_ITEM_POINTER_RELEASE
onPointerMove = createPointerListener outActions.ON_NATIVE_ITEM_POINTER_MOVE
bridge.listen bridge.inActions.NATIVE_ITEM_WIDTH, (reader) ->
item = bridge.getItemFromReader reader
oldVal = item.width
item._width = reader.getFloat()
item.onWidthChange.emit oldVal
return
bridge.listen bridge.inActions.NATIVE_ITEM_HEIGHT, (reader) ->
item = bridge.getItemFromReader reader
oldVal = item.height
item._height = reader.getFloat()
item.onHeightChange.emit oldVal
return
DATA = {}
DATA: DATA
createData: impl.utils.createDataCloner 'Item', DATA
create: (data) ->
if data.id is 0
pushAction outActions.CREATE_NATIVE_ITEM
pushString .__name__
data.id = bridge.getId this
.onPress onPointerPress, @
.onRelease onPointerRelease, @
.onMove onPointerMove, @
return