 	exportable: true
 	# default: fallback
 	get: -> @style[cssProperty]
-	set: (value) -> 
+	set: (value) ->
 		@style[cssProperty] = value
 		@emit "change:#{cssProperty}", value
 
 frameProperty = (name) ->
 	exportable: false
 	get: -> @frame[name]
-	set: (value) -> 
+	set: (value) ->
 		frame = @frame
 		frame[name] = value
 		@frame = frame

		# Convert a point on screen to this views coordinate system
		# TODO: needs tests
		Utils.convertPoint point, null, @
		
	screenFrame: ->
		# Get this views absolute frame on the screen
		# TODO: needs tests
		Utils.convertPoint @frame, @, null
	
	contentFrame: ->
		Utils.frameMerge @subLayers.map (layer) -> layer.frame.properties

	centerFrame: ->
		# Get the centered frame for its superview
		# We always make these pixel perfect
		# TODO: needs tests
		if @superView
			frame = @frame
			frame.midX = parseInt @superView.width / 2.0
			frame.midY = parseInt @superView.height / 2.0
			return frame
		
		else
			frame = @frame
			frame.midX = parseInt window.innerWidth / 2.0
			frame.midY = parseInt window.innerHeight / 2.0
			return frame
	
	center: -> @frame = @centerFrame() # Center  in superLayer
	centerX: -> @x = @centerFrame().x # Center x in superLayer
	centerY: -> @y = @centerFrame().y # Center y in superLayer
	
	pixelAlign: ->
		@x = parseInt @x
		@y = parseInt @y

	## ANIMATION

	animate: (options) ->

		options.layer = @
		options.curveOptions = options

