| /* |
| * |
| * 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.tags; |
| |
| import org.apache.flex.swf.TagType; |
| import org.apache.flex.swf.types.KerningRecord; |
| import org.apache.flex.swf.types.Rect; |
| |
| /** |
| * Represents a <code>DefineFont2</code> tag in a SWF file. |
| * <p> |
| * The DefineFont2 tag extends the functionality of DefineFont. Enhancements |
| * include the following: |
| * <ol> |
| * <li>32-bit entries in the OffsetTable, for fonts with more than 64K glyphs.</li> |
| * <li>Mapping to device fonts, by incorporating all the functionality of |
| * DefineFontInfo.</li> |
| * <li>Font metrics for improved layout of dynamic glyph text.</li> |
| * </ol> |
| * DefineFont2 tags are the only font definitions that can be used for dynamic |
| * text. |
| */ |
| public class DefineFont2Tag extends DefineFontTag implements IFontInfo |
| { |
| /** |
| * Constructor. |
| */ |
| public DefineFont2Tag() |
| { |
| this(TagType.DefineFont2); |
| } |
| |
| /** |
| * Protected constructor for use by subclasses with other tag types. |
| */ |
| protected DefineFont2Tag(TagType tagType) |
| { |
| super(tagType); |
| fontInfo = new DefineFontInfo2Tag(); |
| } |
| |
| private ICharacterTag fontTag; |
| private IFontInfo fontInfo; |
| private boolean fontFlagsHasLayout; |
| private boolean fontFlagsWideOffsets; |
| private int languageCode; |
| private int numGlyphs; |
| private long codeTableOffset; |
| private int[] codeTable; |
| private int fontAscent; |
| private int fontDescent; |
| private int fontLeading; |
| private int[] fontAdvanceTable; |
| private Rect[] fontBoundsTable; |
| private int kerningCount; |
| private KerningRecord[] fontKerningTable; |
| |
| @Override |
| public ICharacterTag getFontTag() |
| { |
| return fontTag; |
| } |
| |
| @Override |
| public void setFontTag(ICharacterTag fontTag) |
| { |
| this.fontTag = fontTag; |
| } |
| |
| @Override |
| public String getFontName() |
| { |
| return fontInfo.getFontName(); |
| } |
| |
| @Override |
| public void setFontName(String fontName) |
| { |
| fontInfo.setFontName(fontName); |
| } |
| |
| @Override |
| public int getFontFlagsReserved() |
| { |
| return 0; |
| } |
| |
| @Override |
| public void setFontFlagsReserved(int fontFlagsReserved) |
| { |
| } |
| |
| @Override |
| public boolean isFontFlagsSmallText() |
| { |
| return fontInfo.isFontFlagsSmallText(); |
| } |
| |
| @Override |
| public void setFontFlagsSmallText(boolean fontFlagsSmallText) |
| { |
| fontInfo.setFontFlagsSmallText(fontFlagsSmallText); |
| } |
| |
| @Override |
| public boolean isFontFlagsShiftJIS() |
| { |
| return fontInfo.isFontFlagsShiftJIS(); |
| } |
| |
| @Override |
| public void setFontFlagsShiftJIS(boolean fontFlagsShiftJIS) |
| { |
| fontInfo.setFontFlagsShiftJIS(fontFlagsShiftJIS); |
| } |
| |
| @Override |
| public boolean isFontFlagsANSI() |
| { |
| return fontInfo.isFontFlagsANSI(); |
| } |
| |
| @Override |
| public void setFontFlagsANSI(boolean fontFlagsANSI) |
| { |
| fontInfo.setFontFlagsANSI(fontFlagsANSI); |
| } |
| |
| @Override |
| public boolean isFontFlagsItalic() |
| { |
| return fontInfo.isFontFlagsItalic(); |
| } |
| |
| @Override |
| public void setFontFlagsItalic(boolean fontFlagsItalic) |
| { |
| fontInfo.setFontFlagsItalic(fontFlagsItalic); |
| } |
| |
| @Override |
| public boolean isFontFlagsBold() |
| { |
| return fontInfo.isFontFlagsBold(); |
| } |
| |
| @Override |
| public void setFontFlagsBold(boolean fontFlagsBold) |
| { |
| fontInfo.setFontFlagsBold(fontFlagsBold); |
| } |
| |
| @Override |
| public boolean isFontFlagsWideCodes() |
| { |
| return fontInfo.isFontFlagsWideCodes(); |
| } |
| |
| @Override |
| public void setFontFlagsWideCodes(boolean fontFlagsWideCodes) |
| { |
| fontInfo.setFontFlagsWideCodes(fontFlagsWideCodes); |
| } |
| |
| /** |
| * @return the fontFlagsHasLayout |
| */ |
| public boolean isFontFlagsHasLayout() |
| { |
| return fontFlagsHasLayout; |
| } |
| |
| /** |
| * @param fontFlagsHasLayout the fontFlagsHasLayout to set |
| */ |
| public void setFontFlagsHasLayout(boolean fontFlagsHasLayout) |
| { |
| this.fontFlagsHasLayout = fontFlagsHasLayout; |
| } |
| |
| /** |
| * @return the fontFlagsWideOffsets |
| */ |
| public boolean isFontFlagsWideOffsets() |
| { |
| return fontFlagsWideOffsets; |
| } |
| |
| /** |
| * @param fontFlagsWideOffsets the fontFlagsWideOffsets to set |
| */ |
| public void setFontFlagsWideOffsets(boolean fontFlagsWideOffsets) |
| { |
| this.fontFlagsWideOffsets = fontFlagsWideOffsets; |
| } |
| |
| /** |
| * @return the languageCode |
| */ |
| public int getLanguageCode() |
| { |
| return languageCode; |
| } |
| |
| /** |
| * @param languageCode the languageCode to set |
| */ |
| public void setLanguageCode(int languageCode) |
| { |
| this.languageCode = languageCode; |
| } |
| |
| /** |
| * @return the numGlyphs |
| */ |
| public int getNumGlyphs() |
| { |
| return numGlyphs; |
| } |
| |
| /** |
| * @param numGlyphs the numGlyphs to set |
| */ |
| public void setNumGlyphs(int numGlyphs) |
| { |
| this.numGlyphs = numGlyphs; |
| } |
| |
| /** |
| * @return the fontInfo |
| */ |
| public IFontInfo getFontInfo() |
| { |
| return fontInfo; |
| } |
| |
| /** |
| * @param fontInfo the fontInfo to set |
| */ |
| public void setFontInfo(IFontInfo fontInfo) |
| { |
| this.fontInfo = fontInfo; |
| } |
| |
| /** |
| * @return the codeTableOffset |
| */ |
| public long getCodeTableOffset() |
| { |
| return codeTableOffset; |
| } |
| |
| /** |
| * @param value the codeTableOffset to set |
| */ |
| public void setCodeTableOffset(long value) |
| { |
| this.codeTableOffset = value; |
| } |
| |
| /** |
| * @return the fontAscent |
| */ |
| public int getFontAscent() |
| { |
| return fontAscent; |
| } |
| |
| /** |
| * @param value the fontAscent to set |
| */ |
| public void setFontAscent(int value) |
| { |
| this.fontAscent = value; |
| } |
| |
| /** |
| * @return the fontDescent |
| */ |
| public int getFontDescent() |
| { |
| return fontDescent; |
| } |
| |
| /** |
| * @param fontDescent the fontDescent to set |
| */ |
| public void setFontDescent(int fontDescent) |
| { |
| this.fontDescent = fontDescent; |
| } |
| |
| /** |
| * @return the fontLeading |
| */ |
| public int getFontLeading() |
| { |
| return fontLeading; |
| } |
| |
| /** |
| * @param fontLeading the fontLeading to set |
| */ |
| public void setFontLeading(int fontLeading) |
| { |
| this.fontLeading = fontLeading; |
| } |
| |
| /** |
| * @return the kerningCount |
| */ |
| public int getKerningCount() |
| { |
| return kerningCount; |
| } |
| |
| /** |
| * @param kerningCount the kerningCount to set |
| */ |
| public void setKerningCount(int kerningCount) |
| { |
| this.kerningCount = kerningCount; |
| } |
| |
| /** |
| * @return the codeTable |
| */ |
| @Override |
| public int[] getCodeTable() |
| { |
| return codeTable; |
| } |
| |
| /** |
| * @param value the codeTable to set |
| */ |
| @Override |
| public void setCodeTable(int[] value) |
| { |
| this.codeTable = value; |
| } |
| |
| /** |
| * @return the fontAdvanceTable |
| */ |
| public int[] getFontAdvanceTable() |
| { |
| return fontAdvanceTable; |
| } |
| |
| /** |
| * @param value the fontAdvanceTable to set |
| */ |
| public void setFontAdvanceTable(int[] value) |
| { |
| this.fontAdvanceTable = value; |
| } |
| |
| /** |
| * @return the fontBoundsTable |
| */ |
| public Rect[] getFontBoundsTable() |
| { |
| return fontBoundsTable; |
| } |
| |
| /** |
| * @param value the fontBoundsTable to set |
| */ |
| public void setFontBoundsTable(Rect[] value) |
| { |
| this.fontBoundsTable = value; |
| } |
| |
| /** |
| * @return the fontKerningTable |
| */ |
| public KerningRecord[] getFontKerningTable() |
| { |
| return fontKerningTable; |
| } |
| |
| /** |
| * @param value the fontKerningTable to set |
| */ |
| public void setFontKerningTable(KerningRecord[] value) |
| { |
| this.fontKerningTable = value; |
| } |
| } |