| /* |
| * |
| * 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.flex.swf.types; |
| |
| import java.util.Collections; |
| |
| import org.apache.flex.swf.tags.ICharacterReferrer; |
| import org.apache.flex.swf.tags.ICharacterTag; |
| import org.apache.flex.swf.tags.CharacterIterableFactory; |
| |
| /** |
| * A TEXTRECORD sets text styles for subsequent characters. It can be used to |
| * select a font, change the text color, change the point size, insert a line |
| * break, or set the x and y position of the next character in the text. The new |
| * text styles apply until another TEXTRECORD changes the styles. |
| * <p> |
| * The TEXTRECORD also defines the actual characters in a text object. |
| * Characters are referred to by an index into the current font's glyph table, |
| * not by a character code. Each TEXTRECORD contains a group of characters that |
| * all share the same text style, and are on the same line of text. |
| */ |
| public class TextRecord implements IDataType, ICharacterReferrer |
| { |
| private boolean styleFlagsHasFont; |
| private boolean styleFlagsHasColor; |
| private boolean styleFlagsHasYOffset; |
| private boolean styleFlagsHasXOffset; |
| private ICharacterTag fontTag; |
| private RGB textColor; |
| private int xOffset; |
| private int yOffset; |
| private int textHeight; |
| private int glyphCount; |
| private GlyphEntry[] glyphEntries; |
| |
| /** |
| * @return the styleFlagsHasFont |
| */ |
| public boolean isStyleFlagsHasFont() |
| { |
| return styleFlagsHasFont; |
| } |
| |
| /** |
| * @param styleFlagsHasFont the styleFlagsHasFont to set |
| */ |
| public void setStyleFlagsHasFont(boolean styleFlagsHasFont) |
| { |
| this.styleFlagsHasFont = styleFlagsHasFont; |
| } |
| |
| /** |
| * @return the styleFlagsHasColor |
| */ |
| public boolean isStyleFlagsHasColor() |
| { |
| return styleFlagsHasColor; |
| } |
| |
| /** |
| * @param styleFlagsHasColor the styleFlagsHasColor to set |
| */ |
| public void setStyleFlagsHasColor(boolean styleFlagsHasColor) |
| { |
| this.styleFlagsHasColor = styleFlagsHasColor; |
| } |
| |
| /** |
| * @return the styleFlagsHasYOffset |
| */ |
| public boolean isStyleFlagsHasYOffset() |
| { |
| return styleFlagsHasYOffset; |
| } |
| |
| /** |
| * @param styleFlagsHasYOffset the styleFlagsHasYOffset to set |
| */ |
| public void setStyleFlagsHasYOffset(boolean styleFlagsHasYOffset) |
| { |
| this.styleFlagsHasYOffset = styleFlagsHasYOffset; |
| } |
| |
| /** |
| * @return the styleFlagsHasXOffset |
| */ |
| public boolean isStyleFlagsHasXOffset() |
| { |
| return styleFlagsHasXOffset; |
| } |
| |
| /** |
| * @param styleFlagsHasXOffset the styleFlagsHasXOffset to set |
| */ |
| public void setStyleFlagsHasXOffset(boolean styleFlagsHasXOffset) |
| { |
| this.styleFlagsHasXOffset = styleFlagsHasXOffset; |
| } |
| |
| /** |
| * @return the fontTag |
| */ |
| public ICharacterTag getFontTag() |
| { |
| return fontTag; |
| } |
| |
| /** |
| * @param fontTag the fontTag to set |
| */ |
| public void setFontTag(ICharacterTag fontTag) |
| { |
| this.fontTag = fontTag; |
| } |
| |
| /** |
| * @return the textColor |
| */ |
| public RGB getTextColor() |
| { |
| return textColor; |
| } |
| |
| /** |
| * @param textColor the textColor to set |
| */ |
| public void setTextColor(RGB textColor) |
| { |
| this.textColor = textColor; |
| } |
| |
| /** |
| * @return the xOffset |
| */ |
| public int getxOffset() |
| { |
| return xOffset; |
| } |
| |
| /** |
| * @param xOffset the xOffset to set |
| */ |
| public void setxOffset(int xOffset) |
| { |
| this.xOffset = xOffset; |
| } |
| |
| /** |
| * @return the yOffset |
| */ |
| public int getyOffset() |
| { |
| return yOffset; |
| } |
| |
| /** |
| * @param yOffset the yOffset to set |
| */ |
| public void setyOffset(int yOffset) |
| { |
| this.yOffset = yOffset; |
| } |
| |
| /** |
| * @return the textHeight |
| */ |
| public int getTextHeight() |
| { |
| return textHeight; |
| } |
| |
| /** |
| * @param textHeight the textHeight to set |
| */ |
| public void setTextHeight(int textHeight) |
| { |
| this.textHeight = textHeight; |
| } |
| |
| /** |
| * @return the glyphCount |
| */ |
| public int getGlyphCount() |
| { |
| return glyphCount; |
| } |
| |
| /** |
| * @param glyphCount the glyphCount to set |
| */ |
| public void setGlyphCount(int glyphCount) |
| { |
| this.glyphCount = glyphCount; |
| } |
| |
| /** |
| * @return the glyphEntries |
| */ |
| public GlyphEntry[] getGlyphEntries() |
| { |
| return glyphEntries; |
| } |
| |
| /** |
| * @param glyphEntries the glyphEntries to set |
| */ |
| public void setGlyphEntries(GlyphEntry[] glyphEntries) |
| { |
| this.glyphEntries = glyphEntries; |
| } |
| |
| @Override |
| public Iterable<ICharacterTag> getReferences() |
| { |
| if (styleFlagsHasFont) |
| return CharacterIterableFactory.from(fontTag); |
| else |
| return Collections.emptyList(); |
| } |
| } |