blob: 48537cd876420510939ed0218d798a5b8ccee26e [file] [log] [blame]
/*
*
* 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();
}
}