Path: blob/trunk/third_party/closure/goog/positioning/anchoredposition.js
4122 views
/**1* @license2* Copyright The Closure Library Authors.3* SPDX-License-Identifier: Apache-2.04*/56/**7* @fileoverview Client positioning class.8*/910goog.provide('goog.positioning.AnchoredPosition');1112goog.require('goog.positioning');13goog.require('goog.positioning.AbstractPosition');14goog.requireType('goog.math.Box');15goog.requireType('goog.math.Size');16171819/**20* Encapsulates a popup position where the popup is anchored at a corner of21* an element.22*23* When using AnchoredPosition, it is recommended that the popup element24* specified in the Popup constructor or Popup.setElement be absolutely25* positioned.26*27* @param {Element} anchorElement Element the movable element should be28* anchored against.29* @param {goog.positioning.Corner} corner Corner of anchored element the30* movable element should be positioned at.31* @param {number=} opt_overflow Overflow handling mode. Defaults to IGNORE if32* not specified. Bitmap, {@see goog.positioning.Overflow}.33* @constructor34* @extends {goog.positioning.AbstractPosition}35*/36goog.positioning.AnchoredPosition = function(37anchorElement, corner, opt_overflow) {38'use strict';39/**40* Element the movable element should be anchored against.41* @type {Element}42*/43this.element = anchorElement;4445/**46* Corner of anchored element the movable element should be positioned at.47* @type {goog.positioning.Corner}48*/49this.corner = corner;5051/**52* Overflow handling mode. Defaults to IGNORE if not specified.53* Bitmap, {@see goog.positioning.Overflow}.54* @type {number|undefined}55* @private56*/57this.overflow_ = opt_overflow;58};59goog.inherits(60goog.positioning.AnchoredPosition, goog.positioning.AbstractPosition);616263/**64* Repositions the movable element.65*66* @param {Element} movableElement Element to position.67* @param {goog.positioning.Corner} movableCorner Corner of the movable element68* that should be positioned adjacent to the anchored element.69* @param {goog.math.Box=} opt_margin A margin specifin pixels.70* @param {goog.math.Size=} opt_preferredSize PreferredSize of the71* movableElement (unused in this class).72* @override73*/74goog.positioning.AnchoredPosition.prototype.reposition = function(75movableElement, movableCorner, opt_margin, opt_preferredSize) {76'use strict';77goog.positioning.positionAtAnchor(78this.element, this.corner, movableElement, movableCorner, undefined,79opt_margin, this.overflow_);80};818283