10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 package java.awt.font; 26 27 import java.awt.Font; 28 29 /** 30 * The <code>MultipleMaster</code> interface represents Type 1 31 * Multiple Master fonts. 32 * A particular {@link Font} object can implement this interface. 33 */ 34 public interface MultipleMaster { 35 36 /** 37 * Returns the number of multiple master design controls. 38 * Design axes include things like width, weight and optical scaling. 39 * @return the number of multiple master design controls 40 */ 41 public int getNumDesignAxes(); 42 43 /** 44 * Returns an array of design limits interleaved in the form [from→to] 45 * for each axis. For example, 46 * design limits for weight could be from 0.1 to 1.0. The values are 47 * returned in the same order returned by 48 * <code>getDesignAxisNames</code>. 49 * @return an array of design limits for each axis. 50 */ 51 public float[] getDesignAxisRanges(); 52 53 /** 54 * Returns an array of default design values for each axis. For example, 55 * the default value for weight could be 1.6. The values are returned 56 * in the same order returned by <code>getDesignAxisNames</code>. 57 * @return an array of default design values for each axis. 58 */ 59 public float[] getDesignAxisDefaults(); 60 61 /** 62 * Returns the name for each design axis. This also determines the order in 63 * which the values for each axis are returned. 64 * @return an array containing the names of each design axis. 65 */ 66 public String[] getDesignAxisNames(); 67 68 /** 69 * Creates a new instance of a multiple master font based on the design 70 * axis values contained in the specified array. The size of the array 71 * must correspond to the value returned from 72 * <code>getNumDesignAxes</code> and the values of the array elements 73 * must fall within limits specified by 74 * <code>getDesignAxesLimits</code>. In case of an error, 75 * <code>null</code> is returned. 76 * @param axes an array containing axis values 77 * @return a {@link Font} object that is an instance of 78 * <code>MultipleMaster</code> and is based on the design axis values 79 * provided by <code>axes</code>. 80 */ 81 public Font deriveMMFont(float[] axes); 82 83 /** 84 * Creates a new instance of a multiple master font based on detailed metric 85 * information. In case of an error, <code>null</code> is returned. 86 * @param glyphWidths an array of floats representing the desired width 87 * of each glyph in font space 88 * @param avgStemWidth the average stem width for the overall font in 89 * font space 90 * @param typicalCapHeight the height of a typical upper case char 91 * @param typicalXHeight the height of a typical lower case char 92 * @param italicAngle the angle at which the italics lean, in degrees 93 * counterclockwise from vertical 94 * @return a <code>Font</code> object that is an instance of 95 * <code>MultipleMaster</code> and is based on the specified metric 96 * information. 97 */ 98 public Font deriveMMFont( 99 float[] glyphWidths, 100 float avgStemWidth, 101 float typicalCapHeight, 102 float typicalXHeight, 103 float italicAngle); 104 105 106 } | 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 package java.awt.font; 26 27 import java.awt.Font; 28 29 /** 30 * The {@code MultipleMaster} interface represents Type 1 31 * Multiple Master fonts. 32 * A particular {@link Font} object can implement this interface. 33 */ 34 public interface MultipleMaster { 35 36 /** 37 * Returns the number of multiple master design controls. 38 * Design axes include things like width, weight and optical scaling. 39 * @return the number of multiple master design controls 40 */ 41 public int getNumDesignAxes(); 42 43 /** 44 * Returns an array of design limits interleaved in the form [from→to] 45 * for each axis. For example, 46 * design limits for weight could be from 0.1 to 1.0. The values are 47 * returned in the same order returned by 48 * {@code getDesignAxisNames}. 49 * @return an array of design limits for each axis. 50 */ 51 public float[] getDesignAxisRanges(); 52 53 /** 54 * Returns an array of default design values for each axis. For example, 55 * the default value for weight could be 1.6. The values are returned 56 * in the same order returned by {@code getDesignAxisNames}. 57 * @return an array of default design values for each axis. 58 */ 59 public float[] getDesignAxisDefaults(); 60 61 /** 62 * Returns the name for each design axis. This also determines the order in 63 * which the values for each axis are returned. 64 * @return an array containing the names of each design axis. 65 */ 66 public String[] getDesignAxisNames(); 67 68 /** 69 * Creates a new instance of a multiple master font based on the design 70 * axis values contained in the specified array. The size of the array 71 * must correspond to the value returned from 72 * {@code getNumDesignAxes} and the values of the array elements 73 * must fall within limits specified by 74 * {@code getDesignAxesLimits}. In case of an error, 75 * {@code null} is returned. 76 * @param axes an array containing axis values 77 * @return a {@link Font} object that is an instance of 78 * {@code MultipleMaster} and is based on the design axis values 79 * provided by {@code axes}. 80 */ 81 public Font deriveMMFont(float[] axes); 82 83 /** 84 * Creates a new instance of a multiple master font based on detailed metric 85 * information. In case of an error, {@code null} is returned. 86 * @param glyphWidths an array of floats representing the desired width 87 * of each glyph in font space 88 * @param avgStemWidth the average stem width for the overall font in 89 * font space 90 * @param typicalCapHeight the height of a typical upper case char 91 * @param typicalXHeight the height of a typical lower case char 92 * @param italicAngle the angle at which the italics lean, in degrees 93 * counterclockwise from vertical 94 * @return a {@code Font} object that is an instance of 95 * {@code MultipleMaster} and is based on the specified metric 96 * information. 97 */ 98 public Font deriveMMFont( 99 float[] glyphWidths, 100 float avgStemWidth, 101 float typicalCapHeight, 102 float typicalXHeight, 103 float italicAngle); 104 105 106 } |