/******************************************************************************* * <copyright> * * Copyright (c) 2005, 2013 SAP AG. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * SAP AG - initial API, implementation and documentation * mwenz - Bug 415884 - Cannot query size of a multi-line text * * </copyright> * *******************************************************************************/ package org.eclipse.graphiti.ui.services; import org.eclipse.graphiti.datatypes.IDimension; import org.eclipse.graphiti.mm.algorithms.AbstractText; import org.eclipse.graphiti.mm.algorithms.MultiText; import org.eclipse.graphiti.mm.algorithms.Text; import org.eclipse.graphiti.mm.algorithms.styles.Font; import org.eclipse.graphiti.services.ILayoutService; /** * Extends the layout service interface to be able to offer layout methods which * depend on UI. * * @noinstantiate This class is not intended to be instantiated by clients. * @noextend This class is not intended to be sub-classed by clients. */ public interface IUiLayoutService extends ILayoutService { /** * Calculates the width and height of the given text in the given font * ignoring any new line characters in the string. * * @param text * the string to calculate the rendering size for * @param font * the font which should be considered for the string * @return * * @see #calculateSize(org.eclipse.graphiti.mm.algorithms.GraphicsAlgorithm, * boolean) */ public IDimension calculateTextSize(String text, Font font); /** * Calculates the width and height of the given text in the given font. * * @param text * the string to calculate the rendering size for * @param font * the font which should be considered for the string * @param handleMultiline * Defines if line breaks in the string should be used in the * calculation of the size or not. In case <code>true</code>, a * new line character in the string will increase the size of the * returned dimensions by one line, in case <code>false</code> a * new line character will be ignored. * @return * * @since 0.11 */ IDimension calculateTextSize(String text, Font font, boolean handleMultiline); /** * Calculates the width and height of the given text in the font of the * gievn text. In case the given text is a {@link MultiText} new line * characters in the string will increase the height of the returned size, * otherwise (text is a {@link Text}) any new line characters will be * ignored. * * @param text * the {@link AbstractText} to calculate the rendering size for * @return * * @since 0.11 */ IDimension calculateTextSize(AbstractText text); }