use of org.terasology.rendering.nui.widgets.browser.ui.style.DocumentRenderStyle in project Terasology by MovingBlocks.
the class DocumentRenderer method getDocumentPreferredSize.
public static Vector2i getDocumentPreferredSize(DocumentData documentData, Font defaultFont, Color defaultColor, int availableWidth) {
DefaultDocumentRenderStyle defaultDocumentRenderStyle = new DefaultDocumentRenderStyle(defaultFont, defaultColor);
DocumentRenderStyle documentRenderStyle = getDocumentRenderStyle(defaultDocumentRenderStyle, documentData);
Collection<ParagraphData> paragraphs = documentData.getParagraphs();
int minParagraphsWidth = getParagraphsMinimumWidth(availableWidth, documentRenderStyle, paragraphs);
int documentSideMargins = documentRenderStyle.getDocumentMarginLeft().getValue(availableWidth) + documentRenderStyle.getDocumentMarginRight().getValue(availableWidth);
int documentWidth = Math.max(availableWidth, minParagraphsWidth + documentSideMargins);
ContainerFlowContainerRenderSpace containerRenderSpace = new ContainerFlowContainerRenderSpace(documentWidth);
int preferredHeight = Math.max(getParagraphsPreferredHeight(documentRenderStyle, paragraphs, containerRenderSpace, 0), containerRenderSpace.getNextClearYPosition(ParagraphRenderStyle.ClearStyle.BOTH));
int documentVerticalMargins = documentRenderStyle.getDocumentMarginTop().getValue(documentWidth) + documentRenderStyle.getDocumentMarginBottom().getValue(documentWidth);
// Bring back the document indents to sides
return new Vector2i(documentWidth, preferredHeight + documentVerticalMargins);
}
use of org.terasology.rendering.nui.widgets.browser.ui.style.DocumentRenderStyle in project Terasology by MovingBlocks.
the class DocumentRenderer method drawDocumentInRegion.
public static void drawDocumentInRegion(DocumentData documentData, Canvas canvas, Font defaultFont, Color defaultColor, Vector2i size, ParagraphRenderable.HyperlinkRegister register) {
DefaultDocumentRenderStyle defaultDocumentRenderStyle = new DefaultDocumentRenderStyle(defaultFont, defaultColor);
DocumentRenderStyle documentRenderStyle = getDocumentRenderStyle(defaultDocumentRenderStyle, documentData);
int documentWidth = size.x;
int documentMarginLeft = documentRenderStyle.getDocumentMarginLeft().getValue(documentWidth);
int documentMarginRight = documentRenderStyle.getDocumentMarginRight().getValue(documentWidth);
int documentMarginTop = documentRenderStyle.getDocumentMarginTop().getValue(documentWidth);
Color backgroundColor = documentRenderStyle.getBackgroundColor();
if (backgroundColor != null) {
canvas.drawFilledRectangle(canvas.getRegion(), backgroundColor);
}
Collection<ParagraphData> paragraphs = documentData.getParagraphs();
ContainerFlowContainerRenderSpace renderSpace = new ContainerFlowContainerRenderSpace(documentWidth);
renderParagraphs(canvas, register, documentRenderStyle, documentMarginLeft, documentMarginTop, documentMarginLeft, documentMarginRight, paragraphs, renderSpace);
}
Aggregations