Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
branch: master
Fetching contributors…

Cannot retrieve contributors at this time

79 lines (57 sloc) 1.836 kb
class CoordTitle extends Spine.Controller
className: 'coordTitle'
change: (area) ->
@html("x: #{area.left}px   y: #{area.top}px")
move: (position) ->
@el.css(left: position.left, top: position.top)
class Dragging extends Spine.Controller
events:
'mousedown .selected': 'listen'
constructor: (@stage) ->
super(el: @stage.el)
listen: (e) =>
e.preventDefault()
# Copy elements when alt dragging
if e.altKey
clones = @stage.cloneSelected()
@stage.selection.refresh(clones)
@stage.history.record()
@dragPosition = {left: e.pageX, top: e.pageY}
@active = false
$(document).mousemove(@drag)
$(document).mouseup(@drop)
drag: (e) =>
if @active is false
@trigger('start.dragging')
@active = true
difference =
left: e.pageX - @dragPosition.left
top: e.pageY - @dragPosition.top
@dragPosition = {left: e.pageX, top: e.pageY}
@stageArea = @stage.area()
@selectionArea = @stage.selection.area()
if e.altKey or e.metaKey
@stage.snapping.release()
else
# Check vertical/center stage snapping
difference = @stage.snapping.snap(@selectionArea, difference)
# Setup CoordTitle
@moveCoordTitle(e)
@stage.selection.moveBy(difference)
@el.trigger('move.dragging')
drop: (e) =>
$(document).unbind('mousemove', @drag)
$(document).unbind('mouseup', @drop)
@el.trigger('end.dragging') if @active
# Reset coordTitle
@coordTitle?.release()
@coordTitle = null
moveCoordTitle: ->
unless @coordTitle
@append(@coordTitle = new CoordTitle)
@coordTitle.move(
left: @dragPosition.left - @stageArea.left + 10,
top: @dragPosition.top - @stageArea.top + 10
)
@coordTitle.change(@selectionArea)
module.exports = Dragging
Jump to Line
Something went wrong with that request. Please try again.