UNPKG

devexpress-richedit

Version:

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

25 lines (24 loc) 1.8 kB
import { LayoutPositionCreatorConflictFlags, LayoutPositionMainSubDocumentCreator, LayoutPositionOtherSubDocumentCreator } from '../layout-engine/layout-position-creator'; import { DocumentLayoutDetailsLevel } from '../layout/document-layout-details-level'; import { LayoutPoint } from '../layout/layout-point'; export function getLayoutPoint(layoutFormatterManager, subDocument, position, endOfLine, pageIndex) { if (position > subDocument.getDocumentEndPosition()) position = subDocument.getDocumentEndPosition(); const layout = layoutFormatterManager.layout; let layoutPosition; if (subDocument.isMain()) { layoutPosition = LayoutPositionMainSubDocumentCreator.ensureLayoutPosition(layoutFormatterManager, subDocument, position, DocumentLayoutDetailsLevel.Character, new LayoutPositionCreatorConflictFlags().setDefault(endOfLine), new LayoutPositionCreatorConflictFlags().setDefault(false)); } else { while (!layout.isFullyFormatted && layout.validPageCount < pageIndex) { if (!layoutFormatterManager.forceFormatPage(layout.validPageCount)) break; } layoutPosition = new LayoutPositionOtherSubDocumentCreator(layout, subDocument, position, pageIndex, DocumentLayoutDetailsLevel.Character) .create(new LayoutPositionCreatorConflictFlags().setDefault(endOfLine), new LayoutPositionCreatorConflictFlags().setDefault(false)); } if (!layoutPosition) return { layoutPoint: null, layoutPosition: null }; const layoutPoint = new LayoutPoint(layoutPosition.pageIndex, layoutPosition.getLayoutX(layoutFormatterManager.measurer), layoutPosition.getLayoutY(DocumentLayoutDetailsLevel.Box)); return { layoutPoint: layoutPoint, layoutPosition: layoutPosition }; }