diff --git a/web/app/ui.js b/web/app/ui.js index c023a097..4bec387f 100644 --- a/web/app/ui.js +++ b/web/app/ui.js @@ -4,7 +4,8 @@ TCAD.ui = {}; TCAD.ui.Window = function(el, winManager) { this.root = el; var root = this.root; - this.root.find('.tool-caption').each(function() { + var caption = this.root.find('.tool-caption'); + caption.each(function() { var closeBtn = ''; $(this).append(closeBtn); }); @@ -13,6 +14,7 @@ TCAD.ui.Window = function(el, winManager) { }); var DIRS = TCAD.ui.DIRECTIONS; winManager.registerResize(this.root, DIRS.NORTH | DIRS.SOUTH | DIRS.WEST | DIRS.EAST); + winManager.registerDrag(this.root, caption); }; TCAD.ui.WinManager = function() { @@ -29,6 +31,16 @@ TCAD.ui.WinManager = function() { }); }; +TCAD.ui.WinManager.prototype.captureDrag = function(el, e) { + var origin = {x : e.pageX, y : e.pageY}; + var originLocation = el.offset(); + this.moveHandler = function(e) { + var dx = e.pageX - origin.x; + var dy = e.pageY - origin.y; + el.offset({left : originLocation.left + dx, top : originLocation.top + dy}); + }; +}; + TCAD.ui.WinManager.prototype.captureResize = function(el, dirMask, e, onResize) { var origin = {x : e.pageX, y : e.pageY}; @@ -155,6 +167,13 @@ TCAD.ui.WinManager.prototype.registerResize = function(el, dirMask, onResize) { }); }; +TCAD.ui.WinManager.prototype.registerDrag = function(el, dragger) { + var wm = this; + dragger.mousedown(function(e) { + wm.captureDrag(el, e); + }); +}; + TCAD.ui.bindOpening = function(btn, win) { btn.click(function(e) {