diff --git a/src/overlay.js b/src/overlay.js index aef365c5..a0c0c1ee 100644 --- a/src/overlay.js +++ b/src/overlay.js @@ -1,107 +1,123 @@ (function( $ ){ -$.Overlay = function(elmt, loc, placement) { - this.elmt = elmt; - this.scales = (loc instanceof $.Rect); - this.bounds = new $.Rect(loc.x, loc.y, loc.width, loc.height); - this.placement = loc instanceof $.Point ? placement : $.OverlayPlacement.TOP_LEFT; // rects are always top-left - this.position = new $.Point(loc.x, loc.y); - this.size = new $.Point(loc.width, loc.height); - this.style = elmt.style; -}; -$.Overlay.prototype = { + $.OverlayPlacement = { + CENTER: 0, + TOP_LEFT: 1, + TOP: 2, + TOP_RIGHT: 3, + RIGHT: 4, + BOTTOM_RIGHT: 5, + BOTTOM: 6, + BOTTOM_LEFT: 7, + LEFT: 8 + }; - adjust: function(position, size) { - switch (this.placement) { - case $.OverlayPlacement.TOP_LEFT: - break; - case $.OverlayPlacement.TOP: - position.x -= size.x / 2; - break; - case $.OverlayPlacement.TOP_RIGHT: - position.x -= size.x; - break; - case $.OverlayPlacement.RIGHT: - position.x -= size.x; - position.y -= size.y / 2; - break; - case $.OverlayPlacement.BOTTOM_RIGHT: - position.x -= size.x; - position.y -= size.y; - break; - case $.OverlayPlacement.BOTTOM: - position.x -= size.x / 2; - position.y -= size.y; - break; - case $.OverlayPlacement.BOTTOM_LEFT: - position.y -= size.y; - break; - case $.OverlayPlacement.LEFT: - position.y -= size.y / 2; - break; - case $.OverlayPlacement.CENTER: - default: - position.x -= size.x / 2; - position.y -= size.y / 2; - break; - } - }, - destroy: function() { - var elmt = this.elmt; - var style = this.style; + $.Overlay = function(elmt, loc, placement) { + this.elmt = elmt; + this.scales = (loc instanceof $.Rect); + this.bounds = new $.Rect(loc.x, loc.y, loc.width, loc.height); + this.position = new $.Point(loc.x, loc.y); + this.size = new $.Point(loc.width, loc.height); + this.style = elmt.style; + // rects are always top-left + this.placement = loc instanceof $.Point ? + placement : + $.OverlayPlacement.TOP_LEFT; + }; - if (elmt.parentNode) { - elmt.parentNode.removeChild(elmt); + $.Overlay.prototype = { + + adjust: function(position, size) { + switch (this.placement) { + case $.OverlayPlacement.TOP_LEFT: + break; + case $.OverlayPlacement.TOP: + position.x -= size.x / 2; + break; + case $.OverlayPlacement.TOP_RIGHT: + position.x -= size.x; + break; + case $.OverlayPlacement.RIGHT: + position.x -= size.x; + position.y -= size.y / 2; + break; + case $.OverlayPlacement.BOTTOM_RIGHT: + position.x -= size.x; + position.y -= size.y; + break; + case $.OverlayPlacement.BOTTOM: + position.x -= size.x / 2; + position.y -= size.y; + break; + case $.OverlayPlacement.BOTTOM_LEFT: + position.y -= size.y; + break; + case $.OverlayPlacement.LEFT: + position.y -= size.y / 2; + break; + case $.OverlayPlacement.CENTER: + default: + position.x -= size.x / 2; + position.y -= size.y / 2; + break; + } + }, + destroy: function() { + var elmt = this.elmt; + var style = this.style; + + if (elmt.parentNode) { + elmt.parentNode.removeChild(elmt); + } + + style.top = ""; + style.left = ""; + style.position = ""; + + if (this.scales) { + style.width = ""; + style.height = ""; + } + }, + drawHTML: function(container) { + var elmt = this.elmt; + var style = this.style; + var scales = this.scales; + + if (elmt.parentNode != container) { + container.appendChild(elmt); + } + + if (!scales) { + this.size = $.Utils.getElementSize(elmt); + } + + var position = this.position; + var size = this.size; + + this.adjust(position, size); + + position = position.apply(Math.floor); + size = size.apply(Math.ceil); + + style.left = position.x + "px"; + style.top = position.y + "px"; + style.position = "absolute"; + + if (scales) { + style.width = size.x + "px"; + style.height = size.y + "px"; + } + }, + update: function(loc, placement) { + this.scales = (loc instanceof $.Rect); + this.bounds = new $.Rect(loc.x, loc.y, loc.width, loc.height); + this.placement = loc instanceof $.Point ? + placement : $.OverlayPlacement.TOP_LEFT; // rects are always top-left } - style.top = ""; - style.left = ""; - style.position = ""; - - if (this.scales) { - style.width = ""; - style.height = ""; - } - }, - drawHTML: function(container) { - var elmt = this.elmt; - var style = this.style; - var scales = this.scales; - - if (elmt.parentNode != container) { - container.appendChild(elmt); - } - - if (!scales) { - this.size = $.Utils.getElementSize(elmt); - } - - var position = this.position; - var size = this.size; - - this.adjust(position, size); - - position = position.apply(Math.floor); - size = size.apply(Math.ceil); - - style.left = position.x + "px"; - style.top = position.y + "px"; - style.position = "absolute"; - - if (scales) { - style.width = size.x + "px"; - style.height = size.y + "px"; - } - }, - update: function(loc, placement) { - this.scales = (loc instanceof $.Rect); - this.bounds = new $.Rect(loc.x, loc.y, loc.width, loc.height); - this.placement = loc instanceof $.Point ? - placement : $.OverlayPlacement.TOP_LEFT; // rects are always top-left - } - -}; + }; }( OpenSeadragon )); diff --git a/src/overlayplacement.js b/src/overlayplacement.js deleted file mode 100644 index 1e83640d..00000000 --- a/src/overlayplacement.js +++ /dev/null @@ -1,20 +0,0 @@ - -(function( $ ){ - - $.OverlayPlacement = function() { - throw Error.invalidOperation(); - }; - - $.OverlayPlacement = { - CENTER: 0, - TOP_LEFT: 1, - TOP: 2, - TOP_RIGHT: 3, - RIGHT: 4, - BOTTOM_RIGHT: 5, - BOTTOM: 6, - BOTTOM_LEFT: 7, - LEFT: 8 - }; - -}( OpenSeadragon ));