summaryrefslogtreecommitdiff
path: root/assets/javascripts/rectangles/util/mouse.js
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-06-03 16:24:10 -0400
committerJules Laplace <jules@okfoc.us>2014-06-03 16:24:28 -0400
commit607f69c67a5b4dc72d2754192e3cdf67d0ad11d0 (patch)
tree6556e7922c5bedb274bb1650e5dd100643a7895d /assets/javascripts/rectangles/util/mouse.js
parentd31259291d807c851de4396921e0c26b6dd8dce2 (diff)
partitioning client and serveR
Diffstat (limited to 'assets/javascripts/rectangles/util/mouse.js')
-rw-r--r--assets/javascripts/rectangles/util/mouse.js165
1 files changed, 0 insertions, 165 deletions
diff --git a/assets/javascripts/rectangles/util/mouse.js b/assets/javascripts/rectangles/util/mouse.js
deleted file mode 100644
index 3aa7cfc..0000000
--- a/assets/javascripts/rectangles/util/mouse.js
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- usage:
-
- base.mouse = new mouse({
- el: document.querySelector("#map"),
- down: function(e, cursor){
- // do something with val
- // cursor.x.a
- // cursor.y.a
- },
- move: function(e, cursor, delta){
- // delta.a (x)
- // delta.b (y)
- },
- up: function(e, cursor, new_cursor){
- // cursor.x.a
- // cursor.y.a
- },
- })
-
-*/
-
-function mouse (opt) {
- var base = this
-
- opt = defaults(opt, {
- el: null,
- down: null,
- move: null,
- drag: null,
- enter: null,
- up: null,
- rightclick: null,
- propagate: false,
- locked: false,
- use_offset: true,
- val: 0,
- })
-
- base.down = false
-
- base.creating = false
- base.dragging = false
-
- base.cursor = new Rect(0,0,0,0)
-
- base.tube = new Tube ()
- opt.down && base.tube.on("down", opt.down)
- opt.move && base.tube.on("move", opt.move)
- opt.drag && base.tube.on("drag", opt.drag)
- opt.enter && base.tube.on("enter", opt.enter)
- opt.leave && base.tube.on("leave", opt.leave)
- opt.up && base.tube.on("up", opt.up)
- opt.rightclick && base.tube.on("rightclick", opt.rightclick)
-
- var offset = (opt.use_offset && opt.el) ? opt.el.getBoundingClientRect() : null
-
- base.init = function (){
- base.bind()
- }
-
- base.on = function(){
- base.tube.on.apply(base.tube, arguments)
- }
-
- base.off = function(){
- base.tube.off.apply(base.tube, arguments)
- }
-
- base.bind = function(){
- if (opt.el) {
- opt.el.addEventListener("mousedown", base.mousedown)
- opt.el.addEventListener("contextmenu", base.contextmenu)
- }
- window.addEventListener("mousemove", base.mousemove)
- window.addEventListener("mouseup", base.mouseup)
- }
-
- base.bind_el = function(el){
- el.addEventListener("mousedown", base.mousedown)
- el.addEventListener("mousemove", base.mousemove)
- }
- base.unbind_el = function(el){
- el.removeEventListener("mousedown", base.mousedown)
- el.removeEventListener("mousemove", base.mousemove)
- }
-
- function positionFromMouse(e) {
- if (offset) {
- return new vec2(offset.left - e.pageX, e.pageY - offset.top)
- }
- else {
- return new vec2(e.pageX, e.pageY)
- }
- }
-
- base.mousedown = function(e){
- e.stopPropagation()
-
- if (opt.use_offset) {
- offset = this.getBoundingClientRect()
- }
-
- var pos = positionFromMouse(e)
-
- var x = pos.a, y = pos.b
- base.cursor = new Rect (x,y, x,y)
- base.down = true
-
- base.tube("down", e, base.cursor)
- }
- base.mousemove = function(e){
- e.stopPropagation()
-
- if (opt.use_offset && ! offset) return
-
- var pos = positionFromMouse(e)
-
- if (e.shiftKey) {
- pos.quantize(10)
- }
-
- var x = pos.a, y = pos.b
-
- if (base.down) {
- base.cursor.x.b = x
- base.cursor.y.b = y
- base.tube("drag", e, base.cursor)
- }
- else {
- base.cursor.x.a = base.cursor.x.b = x
- base.cursor.y.a = base.cursor.y.b = y
- base.tube("move", e, base.cursor)
- }
- }
- base.mouseenter = function(e, el){
- if (! base.down) return
- if (opt.use_offset && ! offset) return
- base.tube("enter", e, el, base.cursor)
- }
- base.mouseleave = function(e, el){
- if (! base.down) return
- if (opt.use_offset && ! offset) return
- base.tube("leave", e, el, base.cursor)
- }
- base.mouseup = function(e){
- var pos, new_cursor
-
- if (base.down) {
- e.stopPropagation()
- base.down = false
- pos = positionFromMouse(e)
- new_cursor = new Rect (pos.a, pos.b)
- base.tube("up", e, base.cursor, new_cursor)
- base.cursor = new_cursor
- }
- }
- base.contextmenu = function(e){
- e.preventDefault()
- base.tube("rightclick", e, base.cursor)
- }
-
- base.init()
-}
-