UNPKG

devexpress-richedit

Version:

DevExpress Rich Text Editor is an advanced word-processing tool designed for working with rich text documents.

38 lines (37 loc) 1.83 kB
import { updateMinMaxBounds } from '../../utils/min-max'; import { MinMaxNumber } from '@devexpress/utils/lib/class/min-max'; import { UnitConverter } from '@devexpress/utils/lib/class/unit-converter'; import { Size } from '@devexpress/utils/lib/geometry/size'; import { AnchorObjectHorizontalPositionCalculator } from './position-calculators/horizontal'; import { AnchorObjectVerticalPositionCalculator } from './position-calculators/vertical'; export class AnchoredObjectsManager { constructor(manager) { this.manager = manager; this.anchorObjectHorizontalPositionCalculator = new AnchorObjectHorizontalPositionCalculator(this.manager); this.anchorObjectVerticalPositionCalculator = new AnchorObjectVerticalPositionCalculator(this.manager); this.reset(); } reset() { this.textBoxContextSizeCalculators = {}; } } export class AnchoredTextBoxContextSizeCalculator { constructor(wrap, size, layoutInTableCell) { this.wrap = wrap; this.size = size; this.isInited = false; this.layoutInTableCell = layoutInTableCell; } calculateSize(boundsCalculator) { if (this.isInited) return; this.isInited = true; this.layoutSize = new Size(this.size.useAbsoluteWidth() ? UnitConverter.twipsToPixelsF(this.size.absoluteSize.width) : this.size.getActualRelativeWidth(boundsCalculator), this.size.useAbsoluteHeight() ? UnitConverter.twipsToPixelsF(this.size.absoluteSize.height) : this.size.getActualRelativeHeight(boundsCalculator)); if (this.wrap.info.tablePosition && this.layoutInTableCell) updateMinMaxBounds(this.paragraphMinMax, new MinMaxNumber(this.layoutSize.width, this.layoutSize.width)); } }