2015-02-21 10:56:03 +00:00
|
|
|
/* ====================================================================
|
|
|
|
|
Licensed to the Apache Software Foundation (ASF) under one or more
|
|
|
|
|
contributor license agreements. See the NOTICE file distributed with
|
|
|
|
|
this work for additional information regarding copyright ownership.
|
|
|
|
|
The ASF licenses this file to You under the Apache License, Version 2.0
|
|
|
|
|
(the "License"); you may not use this file except in compliance with
|
|
|
|
|
the License. You may obtain a copy of the License at
|
|
|
|
|
|
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
|
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
|
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
|
See the License for the specific language governing permissions and
|
|
|
|
|
limitations under the License.
|
|
|
|
|
==================================================================== */
|
|
|
|
|
|
|
|
|
|
package org.apache.poi.sl.usermodel;
|
|
|
|
|
|
2015-04-27 20:13:43 +00:00
|
|
|
import org.apache.poi.ss.usermodel.HorizontalAlignment;
|
|
|
|
|
|
2015-02-21 10:56:03 +00:00
|
|
|
|
|
|
|
|
|
2015-03-19 23:44:23 +00:00
|
|
|
public interface TextShape<T extends TextParagraph<? extends TextRun>> extends SimpleShape, Iterable<T> {
|
2015-02-21 10:56:03 +00:00
|
|
|
/**
|
|
|
|
|
* Vertical Text Types
|
|
|
|
|
*/
|
|
|
|
|
public enum TextDirection {
|
|
|
|
|
/**
|
|
|
|
|
* Horizontal text. This should be default.
|
|
|
|
|
*/
|
|
|
|
|
HORIZONTAL,
|
|
|
|
|
/**
|
|
|
|
|
* Vertical orientation.
|
|
|
|
|
* (each line is 90 degrees rotated clockwise, so it goes
|
|
|
|
|
* from top to bottom; each next line is to the left from
|
|
|
|
|
* the previous one).
|
|
|
|
|
*/
|
|
|
|
|
VERTICAL,
|
|
|
|
|
/**
|
|
|
|
|
* Vertical orientation.
|
|
|
|
|
* (each line is 270 degrees rotated clockwise, so it goes
|
|
|
|
|
* from bottom to top; each next line is to the right from
|
|
|
|
|
* the previous one).
|
|
|
|
|
*/
|
|
|
|
|
VERTICAL_270,
|
|
|
|
|
/**
|
|
|
|
|
* Determines if all of the text is vertical
|
|
|
|
|
* ("one letter on top of another").
|
|
|
|
|
*/
|
|
|
|
|
STACKED;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Specifies alist of auto-fit types.
|
|
|
|
|
* <p>
|
|
|
|
|
* Autofit specofies that a shape should be auto-fit to fully contain the text described within it.
|
|
|
|
|
* Auto-fitting is when text within a shape is scaled in order to contain all the text inside
|
|
|
|
|
* </p>
|
|
|
|
|
*/
|
|
|
|
|
public enum TextAutofit {
|
|
|
|
|
/**
|
|
|
|
|
* Specifies that text within the text body should not be auto-fit to the bounding box.
|
|
|
|
|
* Auto-fitting is when text within a text box is scaled in order to remain inside
|
|
|
|
|
* the text box.
|
|
|
|
|
*/
|
|
|
|
|
NONE,
|
|
|
|
|
/**
|
|
|
|
|
* Specifies that text within the text body should be normally auto-fit to the bounding box.
|
|
|
|
|
* Autofitting is when text within a text box is scaled in order to remain inside the text box.
|
|
|
|
|
*
|
|
|
|
|
* <p>
|
|
|
|
|
* <em>Example:</em> Consider the situation where a user is building a diagram and needs
|
|
|
|
|
* to have the text for each shape that they are using stay within the bounds of the shape.
|
|
|
|
|
* An easy way this might be done is by using NORMAL autofit
|
|
|
|
|
* </p>
|
|
|
|
|
*/
|
|
|
|
|
NORMAL,
|
|
|
|
|
/**
|
|
|
|
|
* Specifies that a shape should be auto-fit to fully contain the text described within it.
|
|
|
|
|
* Auto-fitting is when text within a shape is scaled in order to contain all the text inside.
|
|
|
|
|
*
|
|
|
|
|
* <p>
|
|
|
|
|
* <em>Example:</em> Consider the situation where a user is building a diagram and needs to have
|
|
|
|
|
* the text for each shape that they are using stay within the bounds of the shape.
|
|
|
|
|
* An easy way this might be done is by using SHAPE autofit
|
|
|
|
|
* </p>
|
|
|
|
|
*/
|
|
|
|
|
SHAPE
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @return text shape margin
|
|
|
|
|
*/
|
|
|
|
|
Insets2D getInsets();
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Compute the cumulative height occupied by the text
|
|
|
|
|
*/
|
|
|
|
|
double getTextHeight();
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Returns the type of vertical alignment for the text.
|
|
|
|
|
*
|
|
|
|
|
* @return the type of vertical alignment
|
|
|
|
|
*/
|
|
|
|
|
VerticalAlignment getVerticalAlignment();
|
|
|
|
|
|
2015-04-27 20:13:43 +00:00
|
|
|
/**
|
|
|
|
|
* Returns if the text is centered.
|
|
|
|
|
* If true and if the individual paragraph settings allow it,
|
|
|
|
|
* the whole text block will be displayed centered, i.e. its left and right
|
|
|
|
|
* margin will be maximized while still keeping the alignment of the paragraphs
|
|
|
|
|
*
|
|
|
|
|
* @return true, if the text anchor is horizontal centered
|
|
|
|
|
*/
|
|
|
|
|
boolean isHorizontalCentered();
|
|
|
|
|
|
2015-02-21 10:56:03 +00:00
|
|
|
/**
|
|
|
|
|
* @return whether to wrap words within the bounding rectangle
|
|
|
|
|
*/
|
|
|
|
|
boolean getWordWrap();
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @return vertical orientation of the text
|
|
|
|
|
*/
|
|
|
|
|
TextDirection getTextDirection();
|
|
|
|
|
}
|